elasticsearch Logstash JDBC:更新行问题
我在Logstash中使用下面的JDBC代码来更新Elasticsearch中已经存在的索引,而不复制行或将更新的行添加为另一新行。 版本:Elasticsearch、Logstash和Kibana是v7.1.0elasticsearch Logstash JDBC:更新行问题,elasticsearch,jdbc,logstash,elasticsearch,Jdbc,Logstash,我在Logstash中使用下面的JDBC代码来更新Elasticsearch中已经存在的索引,而不复制行或将更新的行添加为另一新行。 版本:Elasticsearch、Logstash和Kibana是v7.1.0 input { jdbc { jdbc_connection_string => "jdbc:sqlserver://DB01:1433;databasename=testdb;integratedSecurity=true" jdbc_d
input {
jdbc {
jdbc_connection_string => "jdbc:sqlserver://DB01:1433;databasename=testdb;integratedSecurity=true"
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
jdbc_driver_library => "C:\Program Files\sqljdbc_6.2\enu\mssql-jdbc-6.2.2.jre8.jar"
jdbc_user => nil
statement => "SELECT * from data WHERE updated_on > :sql_last_value ORDER BY updated_on"
use_column_value =>true
tracking_column =>updated_on
tracking_column_type => "timestamp"
}
}
output {
elasticsearch { hosts => ["localhost:9200"]
index => "datau"
action=>update
document_id => "%{id}"
doc_as_upsert =>true}
stdout { codec => rubydebug }
}
当我在logstash(logstash-f myfile.conf)中运行上述操作时
下面的错误显示
[2019-08-21T10:46:33,864][ERROR][logstash.outputs.elasticsearch] Failed to insta ll template. {:message=>"Got response code '400' contacting Elasticsearch at URL 'http://localhost:9200/_template/logstash'", :class=>"LogStash::Outputs::Elasti cSearch::HttpClient::Pool::BadResponseCodeError", :backtrace=>["D:/ELK 6.4.0/log stash-6.4.0/logstash-6.4.0/vendor/bundle/jruby/2.3.0/gems/logstash-output-elasti csearch-9.2.0-java/lib/logstash/outputs/elasticsearch/http_client/manticore_adap ter.rb:80:in `perform_request'", "D:/ELK 6.4.0/logstash-6.4.0/logstash-6.4.0/ven dor/bundle/jruby/2.3.0/gems/logstash-output-elasticsearch-9.2.0-java/lib/logstas h/outputs/elasticsearch/http_client/pool.rb:291:in `perform_request_to_url'"...
我哪里错了?问题在于版本兼容性。 我在7.1 Elasticsearch上使用了6.4 logstash。 一旦我的日志库升级,问题就解决了
谢谢 从此行中删除
}
:
doc_as_upsert =>true}
您正在运行哪个版本的Logstash和Elasticsearch?Elastic search 7.1.0和Logstash 6.4.0@这就是问题所在!您需要使用Logstash 7.1.0,否则Logstash尝试安装的Elasticsearch索引模板将无法工作。@Val,ES 7.1.0是否与Logstash 7.0.0兼容?我在7.1.0 Logstash中遇到了一些问题。我得到了以下错误:
错误:无法找到或加载主类7.1.0\Logstash-7.0.0\Logstash-7.0.0\Logstash-core\lib\jars\animal-sniffer-annotations-1.14.jar;D:\ELK
因此,至少初始问题(版本不匹配)已得到解决!现在完全不同了。您应该关闭此问题,并用新问题创建一个新问题。