美文网首页
logstash-input-jdbc插件链接oracle驱动遇

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

作者: 一路清寒 | 来源:发表于2020-03-03 14:32 被阅读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"

    相关文章

      网友评论

          本文标题:logstash-input-jdbc插件链接oracle驱动遇

          本文链接:https://www.haomeiwen.com/subject/ykoclhtx.html