背景: 我们正在对Sync SQL Server错误日志数据进行POC到elasticsearch(ES),以将仪表板引入kibana。 我使用Logstash和jdbc输入插件将sql server表数据移动到(ES),成功了。在日志表中,大约有5000条记录,每条记录都移至ES。
问题陈述: 为了进行测试,我从ES中删除了先前由Logstash同步的索引,然后再次使用相同的输入配置文件运行Logstash。但是没有记录被移动如果我将新记录添加到SQL Server表中,这可以反映出来,但是旧记录(5000)并未更新。
配置 以下是我用于同步的配置文件
input {
jdbc {
#https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html#plugins-inputs-jdbc-record_last_run
jdbc_connection_string => "jdbc:sqlserver://localhost:40020;database=application;user=development;password=XXX$"
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
jdbc_user => nil
# The path to our downloaded jdbc driver
jdbc_driver_library => "C:\Program Files (x86)\sqljdbc6.2\enu\sqljdbc4-3.0.jar"
# The name of the driver class for SqlServer
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
# Query for testing purpose
schedule => "* * * * *"
last_run_metadata_path => "C:\Software\ElasticSearch\logstash-6.4.0\.logstash_jdbc_last_run"
record_last_run => true
clean_run => true
statement => " select * from Log"
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "application_log"
#document_id is a unique id, this has to be provided during syn, else we may get duplicate entry in ElasticSearch index.
document_id => "%{Id}"
}
}
请帮助我,解释发生了什么问题。
Logstash版本:6.4.0 Elasticsearch版本:6.3.1
预先感谢
答案 0 :(得分:0)
我找到并解决了此问题。
我发现的问题是每个字段都区分大小写,只有在小写字母时才接受。
下面是我所做的更改,它对我来说很好。
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "application_log"
#document_id is a unique id, this has to be provided during syn, else we may get duplicate entry in ElasticSearch index.
document_id => "%{Id}"
}
}
,输入部分中没有任何更改。
感谢您的支持。