MySQL 5.6.35 RHEL 7 Logstash版本6.2.4 MySQL驱动程序:mysql-connector-java-8.0.11.jar
运行我的logstash脚本时出现以下错误
[2018-06-18T14:39:49,395][WARN ][logstash.inputs.jdbc ] Exception when executing JDBC query {:exception=>#<Sequel::DatabaseError: Java::JavaLang::IllegalArgumentException: MONTH>}
[2018-06-18T14:39:49,667][INFO ][logstash.pipeline ] Pipeline has terminated {:pipeline_id=>"main", :thread=>"#<Thread:0x2937cfc6@/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:247 run>"}
它始终位于同一组记录中,因此我确信这是一个数据问题。
错误提到IllegalArgumentException: MONTH>
这一事实让我觉得这是一个日期问题,但我看不到数据中有任何明显的问题,而且错误信息没有给我足够的信息回家出错了。我的所有空日期都是空的而不是'0000-00-00'
有没有人知道是否有其他日志可以帮助我识别错误。
这是我的conf.d文件夹中的脚本。
input {
jdbc {
jdbc_connection_string => "jdbc:mysql://localhost:3306/hawk_aol"
#useCursorFetch=true&
# The user we wish to execute our statement as
jdbc_user => "root"
jdbc_password => ""
# The path to our downloaded jdbc driver
jdbc_driver_library => "/apps/elasticsearch/drivers/mysql-connector-java-8.0.11.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
# our query
statement => "SELECT * FROM weekly_data"
#jdbc_fetch_size => "5000"
jdbc_paging_enabled => true
jdbc_page_size => 100000
}
}
output {
stdout { codec => json_lines }
elasticsearch {
"hosts" => "localhost:9200"
"index" => "aol"
"document_type" => "weekly_data"
"document_id" => "%{id}"
}
}
答案 0 :(得分:0)
我解决了自己的问题。我认为这个问题与日期有关,我一直在我的数据库中搜索带有值的日期并将它们转换为null,但有一个日期的值为2016-00-00,一旦我清除它为null,一切都按预期开始运行。