[英]JDBC Logstash Elastic Kibana
我正在使用 JDBC 输入插件将数据从 mongodb 提取到 ElasticSearch。我的配置是:
`input {
jdbc {
jdbc_driver_class => "mongodb.jdbc.MongoDriver"
jdbc_driver_library => "/usr/share/logstash/logstash-core/lib/jars/mongodb_unityjdbc_free.jar"
jdbc_user => ""
jdbc_password => ""
jdbc_connection_string => "jdbc:mongodb://localhost:27017/pritunl"
schedule => "* * * * *"
jdbc_page_size => 100000
jdbc_paging_enabled => true
statement => "select * from servers_output"
}
}
filter {
mutate {
copy => { "_id" => "[@metadata][id]"}
remove_field => ["_id"]
}
}
output {
elasticsearch {
hosts => "localhost:9200"
index => "pritunl"
document_id => "%{[@metadata][_id]}"
}
stdout {}
}`
在 Kibana 中,我只看到一次点击enter image description here ,但在 stdout 中,我看到许多来自 mongodb 集合的记录。 我该怎么办,才能看到他们?
问题是,您的所有文档都使用相同的“_id”保存,因此即使您向 ES 发送不同的记录,也只有一个文档在内部被覆盖——因此您在 Kibana 中获得了 1 次点击。
您的配置中存在拼写错误导致此问题。
您正在将“_id”复制到“[@metadata][ id ]”
但是您正在尝试阅读带有下划线的“[ @metadata ][_id]”。
在读取 document_id 的值时删除下划线应该可以解决您的问题。
output {
elasticsearch {
hosts => "localhost:9200"
index => "pritunl"
document_id => "%{[@metadata][id]}"
}
stdout {}
}`
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.