【发布时间】:2020-04-19 10:14:26
【问题描述】:
我希望通过使用logstash配置将记录从一个mysql表迁移到elasticsearch。我正在检查文件 logstash_jdbc_last_run_issued 没有改变/更新,所以 sql_last_value 也没有改变。当我在表工件上添加一条记录时,索引 emp7 正在插入复制信息而不会停止。所以它的指数越来越高。除非我打破了 logstash 进程。
Logstash 配置:
input {
jdbc {
jdbc_driver_library => "e:\Data\logstash\bin\mysql-connector-java-5.1.18-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/kibana"
jdbc_user => "userdb"
jdbc_password => "passdb"
last_run_metadata_path => "e:\Data\logstash\bin\logstash_jdbc_last_run_issued"
tracking_column => "issuedDate"
tracking_column_type => "numeric"
use_column_value=>true
statement => "SELECT serial, name, issuedDate FROM artifact where issuedDate > :sql_last_value; "
schedule => " * * * * * *"
}
}
output {
elasticsearch {
hosts => "http://127.0.0.1:9200"
index => "emp7"
document_type => "doc"
user => "user"
password => "pass"
}
stdout {
codec => rubydebug
}
}
表结构信息:工件
serial varchar(40)
name varchar(40)
issuedDate bigint(20)
我给你logstash调试结果:
[2019-12-30T11:38:46,004][INFO ][logstash.inputs.jdbc ] (0.000000s) SELECT serial, name, issuedDate FROM artifact where issuedDate > 0;
[2019-12-30T11:38:46,004][WARN ][logstash.inputs.jdbc ] tracking_column not found in dataset. {:tracking_column=>"issuedDate"}
文件 logstash_jdbc_last_run_issued 内容:
--- 0
我正在使用 logstash 6.0、elasticsearch 6.0 和 kibana 6.0
我的问题是,logstash 配置缺少什么?
【问题讨论】:
-
我认为elasticsearch输出插件需要一个数组中的主机值。不确定这是否可以解决,但请尝试一下。看看这个:elastic.co/guide/en/logstash/6.8/config-examples.html
-
我更新为:hosts => ["127.0.0.1:9200"] 但结果相同。问题是logstash 只需要插入文档一次,因为我在mysql 表中添加了一条记录,但它正在复制,并且再次同一记录不停歇。
标签: mysql elasticsearch logstash kibana