logstashlogstash-input-jdbc

logstash-input-jdbc: “Unknown setting 'jdbc_driver_libary' for jdbc {:level=>:error}”


I try to access to MySQL service with logstash. I installed logstash-input-jdbc (/opt/logstash/bin/logstash-plugin install logstash-input-jdbc) and created /etc/logstash/conf.d/sample.conf:

input{
 lumberjack{
 ...
 }
 jdbc{
        type => "jdbc_hfc"
        jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/test"
        jdbc_user => "root"
        jdbc_password => ""
        jdbc_validate_connection => true
        jdbc_driver_libary => "mysql-connector-java-5.1.40-bin.jar"
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        statement => "SELECT * FROM hfc"
        schedule => "00 07 * * *"
 }
 file{
 ...
 }
}
output{
  if [type] == "jdbc_hfc"
  {
    elasticsearch{
        protocl => http
        hosts => ["localhost:9200"]
        index => "logstash-jdbc-hfc-%{+YYYY.MM.dd}"
    }
  }
}

When I excute the configtest (/opt/logstash/bin/logstash --configtest -f /etc/logstash/conf.d/sample.conf), I get the next error:

Unknown setting 'jdbc_driver_libary' for jdbc {:level=>:error}
The given configuration is invalid. Reason: Something is wrong with your configuration. {:level=>:fatal}

When I comment the jdbc_connection_string line, the configtest returns:

Configuration OK

But when I executed the sample.conf file, logstash retruns me the next error:

Pipeline aborted due to error {:exception=>"LogStash::ConfigurationError", :backtrace=>["/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-input-jdbc-4.1.1/lib/logstash/plugin_mixins/jdbc.rb:159:in `prepare_jdbc_connection'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-input-jdbc-4.1.1/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}

Where is my mistake? What can I do to resolve this problem?

Thanks a lot and best regards.

PD: If you need more information please, ask me.


Solution

  • The first error says it all:

    Unknown setting 'jdbc_driver_libary' for jdbc {:level=>:error}
    

    So you just have a typo in your configuration:

        jdbc_driver_libary => "mysql-connector-java-5.1.40-bin.jar"
    

    should read

        jdbc_driver_library => "mysql-connector-java-5.1.40-bin.jar"
                       ^
                       |