Java Logstash输入插件JDBC的Mongodb驱动程序类
我正在使用Logstash将数据库从MongoDB回复到使用Logstash 6.0.0的Elasticsearch,以下是我的配置文件:Java Logstash输入插件JDBC的Mongodb驱动程序类,java,mongodb,jdbc,logstash,logstash-input-jdbc,Java,Mongodb,Jdbc,Logstash,Logstash Input Jdbc,我正在使用Logstash将数据库从MongoDB回复到使用Logstash 6.0.0的Elasticsearch,以下是我的配置文件: input{ jdbc{ jdbc_driver_library => "/usr/share/logstash/driver/mongodb-driver-3.6.1.jar" jdbc_driver_class => "mongodb.jdbc.MongoDriver" jdbc_con
input{
jdbc{
jdbc_driver_library => "/usr/share/logstash/driver/mongodb-driver-3.6.1.jar"
jdbc_driver_class => "mongodb.jdbc.MongoDriver"
jdbc_connection_string => "jdbc:mongodb://mongo:27017/DevDb"
jdbc_user => ""
statement => "*"
}
}
output {
elasticsearch {
hosts => 'http://user:xxxx@elasticsearch:9200'
index => 'mongo'
}
stdout { codec => rubydebug }
}
我使用的是官方的MongoDB java驱动程序,从以下链接下载:,但出现以下错误:
Error: mongodb.jdbc.MongoDriver not loaded. Are you sure you've included the correct jdbc driver in :jdbc_driver_library?
Exception: LogStash::ConfigurationError
那么我应该使用什么类名呢
input {
jdbc {
jdbc_driver_library => "mongojdbc1.3.jar"
jdbc_driver_class => "com.dbschema.MongoJdbcDriver"
jdbc_connection_string => "jdbc:mongodb://username:password@mongourl:27017/database_name?authSource=admin"
jdbc_user => ""
jdbc_password => ""
schedule => "* * * * * *"
statement => "db.collection_name.find({},{'_id': false});"
}
}
output {
elasticsearch {
hosts => ["http://elasticsearch:9200"]
index => "vm_server_%{+YYYY.MM.dd}"
user => "elastic"
password => "changeme"
}
}
这个配置适合我,配置文件中的驱动程序看起来不像jdbc驱动程序。因此,请寻找JDBCJAR
如果您是从mongo查询,您的json格式可能与mongo中的格式不一样。
为此,您可以查看链接
MongoDB驱动程序有许多依赖项,您还需要包括这些依赖项才能使其正常工作,另请参见