Logstash jdbc输入插件多次从mysql获取数据,并继续在Elasticsearch中创建文档
对于mysql中的600行,它在elasticsearch中创建了8581812个文档
我创建了多个配置文件以从mysql中的每个表中获取数据,并将其放在/etc/logstash/conf.d文件夹中 作为sudo systemctl启动logstash服务启动logstash 运行以下命令执行文件 / usr / share / logstash / bin / logstash -f /etc/logstash/conf.d/spt_audit_event.conf 数据成功获取
input{
jdbc {
jdbc_driver_library => "/usr/share/jdbc_driver/mysql-connector-java-5.1.47.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://:3306/"
jdbc_user => ""
jdbc_password => ""
statement => "select * from spt_identity"
}
}
output {
elasticsearch {
"hosts" => "localhost:9200"
"index" => ""
}
stdout {}
}
实际结果
elasticsearch中的文档数量不断增加,达到了8581812,但是mysql表中只有600行 是插件中的错误还是我做错了什么?
答案 0 :(得分:0)
您需要提及elasticsearch的unqiue ID
为了避免在elasticsearch
出现重复问题,您可能需要在elasticsearch
添加文档的唯一ID。
通过在输出中添加logstash.conf
来修改"document_id" => "%{studentid}"
,如下所示。
output {
stdout { codec => json_lines }
elasticsearch {
"hosts" => "localhost:9200"
"index" => "test-migrate"
"document_id" => "%{studentid}"
}
对于您而言,它不是学生身份,而是其他。找到相同的内容并将其添加到您的配置中。