logstash-input-jdbc插件链接oracle驱动遇

2020-03-03  本文已影响0人  一路清寒

      oracle驱动找不到

报错信息:
[2020-03-03T12:48:00,187][ERROR][logstash.inputs.jdbc ] Failed to load /home/epm/logstash-7.3.2/oracle/ojdbc10.jar {:exception=>#<TypeError: failed to coerce jdk.internal.loader.ClassLoaders$AppClassLoader to java.net.URLClassLoader>}

{ 2016 rufus-scheduler intercepted an error:

  2016  job:

  2016    Rufus::Scheduler::CronJob "* * * * *" {}

  2016  error:

  2016    2016

  2016    LogStash::ConfigurationError

  2016    Java::oracle.jdbc.driver.OracleDriver not loaded. Are you sure you've included the correct jdbc driver in :jdbc_driver_library?

  2016      /home/epm/logstash-7.3.2/vendor/bundle/jruby/2.5.0/gems/logstash-input-jdbc-4.3.13/lib/logstash/plugin_mixins/jdbc/jdbc.rb:163:in `open_jdbc_connection'

  2016      /home/epm/logstash-7.3.2/vendor/bundle/jruby/2.5.0/gems/logstash-input-jdbc-4.3.13/lib/logstash/plugin_mixins/jdbc/jdbc.rb:221:in `execute_statement'

  2016      /home/epm/logstash-7.3.2/vendor/bundle/jruby/2.5.0/gems/logstash-input-jdbc-4.3.13/lib/logstash/inputs/jdbc.rb:277:in `execute_query'

  2016      /home/epm/logstash-7.3.2/vendor/bundle/jruby/2.5.0/gems/logstash-input-jdbc-4.3.13/lib/logstash/inputs/jdbc.rb:258:in `block in run'

  2016      /home/epm/logstash-7.3.2/vendor/bundle/jruby/2.5.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:234:in `do_call'

  2016      /home/epm/logstash-7.3.2/vendor/bundle/jruby/2.5.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:258:in `do_trigger'

  2016      /home/epm/logstash-7.3.2/vendor/bundle/jruby/2.5.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:300:in `block in start_work_thread'

  2016      /home/epm/logstash-7.3.2/vendor/bundle/jruby/2.5.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:299:in `block in start_work_thread'

  2016      org/jruby/RubyKernel.java:1425:in `loop'

  2016      /home/epm/logstash-7.3.2/vendor/bundle/jruby/2.5.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:289:in `block in start_work_thread'

配置文件信息:

input {

    jdbc {

        jdbc_connection_string => "jdbc:oracle:thin:@192.168.95.30:1521:orcl"

        jdbc_user => "DOC_ADM"

        jdbc_password => "Lzgdjt#2019$Doc"

        jdbc_driver_library =>"/x/x/logstash-7.3.2/oracle/ojdbc10.jar"

        jdbc_driver_class =>"Java::oracle.jdbc.driver.OracleDriver"

        jdbc_paging_enabled => "true"

        jdbc_page_size => "50000"

        statement_filepath => "/x/x/logstash-7.3.2/oracle/jdbc.sql"

      schedule => "* * * * *"

}

}

output {

  elasticsearch {

  hosts => "192.168.x.x:9200"

  index => "doctest"

  document_id => "%{id}"

  }

  stdout {

  codec => json_lines

  }

}

解决:

 jdbc_driver_library 配置

ojdbc10.jar 是我在官网下载的驱动,启动还是找不到,然后我又换了一个ojdbc8.jar 还是不行。

最后去oracle数据库那台服务器上。找驱动(所在oracle机器的安装位置)

命令搜索: find / -name ojdbc8.jar

[root@xx ~]# find / -name "ojdbc8.jar"

/home/oracle/database/stage/ext/jlib/ojdbc8.jar

/home/oracle/ora_home/oracle/product/12.2.0/dbhome_1/inventory/Scripts/ext/jlib/ojdbc8.jar

/home/oracle/ora_home/oracle/product/12.2.0/dbhome_1/inventory/backup/2019-07-17_03-11-45PM/Scripts/ext/jlib/ojdbc8.jar

/home/oracle/ora_home/oracle/product/12.2.0/dbhome_1/jdbc/lib/ojdbc8.jar

找到对应哪个jar  /home/oracle/ora_home/oracle/product/12.2.0/dbhome_1/jdbc/lib/ojdbc8.jar

然后把它拷贝到之前服务器上对应目录下。就启动成功了。

 jdbc_driver_class配置

jdbc_driver_class=>"Java::oracle.jdbc.driver.OracleDriver"

上一篇下一篇

猜你喜欢

热点阅读