我无法在logstash

时间:2016-10-10 14:51:28

标签: mysql elasticsearch jdbc logstash

我想用logstash从MySQL数据库输入一些数据。

这是我的jdbc.conf

input {
  jdbc {
    jdbc_driver_library => "/mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://111.11.11.111:3306/dbname"
    jdbc_user => "user"
    jdbc_password => "****"
    statement => "SELECT title from test"
  }
}

output {
  stdout { codec => json }
}

usernamepasswordhostdbnamecolumn_name都是假的。而output仅用于测试。 我的数据库位于同一个VPS服务器上。

--configtest已清除。但是,我收到了这个错误。

/opt/logstash/bin/logstash -f /opt/logstash/bin/config/jdbc.conf
Settings: Default pipeline workers: 4
Pipeline aborted due to error {
    :exception=>"LogStash::ConfigurationError", 
    :backtrace=>[
        "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-input-jdbc-3.1.0/lib/logstash/plugin_mixins/jdbc.rb:159:in `prepare_jdbc_connection'", 
        "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-input-jdbc-3.1.0/lib/logstash/inputs/jdbc.rb:187:in `register'", 
        "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/pipeline.rb:330:in `start_inputs'", 
        "org/jruby/RubyArray.java:1613:in `each'",
        "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/pipeline.rb:329:in `start_inputs'", 
        "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/pipeline.rb:180:in `start_workers'", 
        "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/pipeline.rb:136:in `run'", 
        "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/agent.rb:491:in `start_pipeline'"],
     :level=>:error}
stopping pipeline {:id=>"main"}

我得到了LogStash::ConfigurationError。我的配置错了吗?

1 个答案:

答案 0 :(得分:0)

我终于明白了。 这只是jdbc-driver的一个bug。 当我面对这个bug时,我通过mysql网页使用ver5.1.40。 在我通过yum将其更改为mysql-connector-java-5.1.17之后,它确实有效。