问题描述
我在将 MysqL 数据库连接到 Elasticsearch(7.10.1) 时遇到问题。我已经安装了 ElasticSearch 和 Kibana(7.10.1)。现在我想使用 logstash 从我的数据库中添加我的数据。我写了一个配置文件:
input {
jdbc {
jdbc_connection_string => "jdbc:MysqL://localhost:3306/dashboard"
jdbc_user => "user"
jdbc_password => "*****"
jdbc_driver_library => "/usr/share/logstash/jdbc/mysql-connector-java-5.1.36-bin.jar"
jdbc_driver_class => "com.MysqL.jdbc.Driver"
statement => "SELECT * FROM course_total_data_latest"
}
}
output {
elasticsearch {
hosts => [ "localhost:9200" ]
index => "course_total_data"
}
}
我使用 docker-compose 来启动我的 ELK 服务器,并在容器中使用 volumn jdbc 驱动程序,但是我得到了 logstash 日志错误:
logstash_1 | Error: Java::ComMysqljdbcExceptionsJdbc4::CommunicationsException: Communications link failure
logstash_1 |
logstash_1 | The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
logstash_1 | Exception: Sequel::DatabaseConnectionError
logstash_1 | Stack: jdk.internal.reflect.GeneratedConstructorAccessor59.newInstance(jdk/internal/reflect/GeneratedConstructorAccessor59)
logstash_1 | jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(jdk/internal/reflect/DelegatingConstructorAccessorImpl.java:45)
logstash_1 | java.lang.reflect.Constructor.newInstance(java/lang/reflect/Constructor.java:490)
logstash_1 | com.MysqL.jdbc.Util.handleNewInstance(com/MysqL/jdbc/Util.java:400)
logstash_1 | com.MysqL.jdbc.sqlError.createCommunicationsException(com/MysqL/jdbc/sqlError.java:1038)
logstash_1 | com.MysqL.jdbc.MysqLIO.<init>(com/MysqL/jdbc/MysqLIO.java:339)
logstash_1 | com.MysqL.jdbc.ConnectionImpl.coreConnect(com/MysqL/jdbc/ConnectionImpl.java:2247)
logstash_1 | com.MysqL.jdbc.ConnectionImpl.connectOneTryOnly(com/MysqL/jdbc/ConnectionImpl.java:2280)
logstash_1 | com.MysqL.jdbc.ConnectionImpl.createNewIO(com/MysqL/jdbc/ConnectionImpl.java:2079)
logstash_1 | com.MysqL.jdbc.ConnectionImpl.<init>(com/MysqL/jdbc/ConnectionImpl.java:794)
logstash_1 | com.MysqL.jdbc.JDBC4Connection.<init>(com/MysqL/jdbc/JDBC4Connection.java:44)
logstash_1 | jdk.internal.reflect.GeneratedConstructorAccessor56.newInstance(jdk/internal/reflect/GeneratedConstructorAccessor56)
logstash_1 | jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(jdk/internal/reflect/DelegatingConstructorAccessorImpl.java:45)
logstash_1 | java.lang.reflect.Constructor.newInstance(java/lang/reflect/Constructor.java:490)
logstash_1 | com.MysqL.jdbc.Util.handleNewInstance(com/MysqL/jdbc/Util.java:400)
logstash_1 | com.MysqL.jdbc.ConnectionImpl.getInstance(com/MysqL/jdbc/ConnectionImpl.java:399)
logstash_1 | com.MysqL.jdbc.NonRegisteringDriver.connect(com/MysqL/jdbc/NonRegisteringDriver.java:325)
logstash_1 | jdk.internal.reflect.GeneratedMethodAccessor54.invoke(jdk/internal/reflect/GeneratedMethodAccessor54)
logstash_1 | jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(jdk/internal/reflect/DelegatingMethodAccessorImpl.java:43)
logstash_1 | java.lang.reflect.Method.invoke(java/lang/reflect/Method.java:566)
logstash_1 | org.jruby.javasupport.JavaMethod.invokeDirectWithExceptionHandling(org/jruby/javasupport/JavaMethod.java:471)
logstash_1 | org.jruby.javasupport.JavaMethod.invokeDirect(org/jruby/javasupport/JavaMethod.java:329)
logstash_1 | usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.sequel_minus_5_dot_38_dot_0.lib.sequel.adapters.jdbc.connect(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/sequel-5.38.0/lib/sequel/adapters/jdbc.rb:239)
logstash_1 | usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.sequel_minus_5_dot_38_dot_0.lib.sequel.connection_pool.make_new(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/sequel-5.38.0/lib/sequel/connection_pool.rb:122)
logstash_1 | usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.sequel_minus_5_dot_38_dot_0.lib.sequel.connection_pool.threaded.assign_connection(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/sequel-5.38.0/lib/sequel/connection_pool/threaded.rb:209)
logstash_1 | usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.sequel_minus_5_dot_38_dot_0.lib.sequel.connection_pool.threaded.acquire(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/sequel-5.38.0/lib/sequel/connection_pool/threaded.rb:139)
logstash_1 | usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.sequel_minus_5_dot_38_dot_0.lib.sequel.connection_pool.threaded.hold(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/sequel-5.38.0/lib/sequel/connection_pool/threaded.rb:91)
logstash_1 | usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.sequel_minus_5_dot_38_dot_0.lib.sequel.database.connecting.synchronize(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/sequel-5.38.0/lib/sequel/database/connecting.rb:269)
logstash_1 | usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.sequel_minus_5_dot_38_dot_0.lib.sequel.database.connecting.test_connection(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/sequel-5.38.0/lib/sequel/database/connecting.rb:278)
logstash_1 | usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.sequel_minus_5_dot_38_dot_0.lib.sequel.database.misc.initialize(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/sequel-5.38.0/lib/sequel/database/misc.rb:169)
logstash_1 | usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.sequel_minus_5_dot_38_dot_0.lib.sequel.database.connecting.connect(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/sequel-5.38.0/lib/sequel/database/connecting.rb:57)
logstash_1 | usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.sequel_minus_5_dot_38_dot_0.lib.sequel.core.connect(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/sequel-5.38.0/lib/sequel/core.rb:124)
logstash_1 | usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.logstash_minus_integration_minus_jdbc_minus_5_dot_0_dot_6.lib.logstash.plugin_mixins.jdbc.jdbc.jdbc_connect(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-integration-jdbc-5.0.6/lib/logstash/plugin_mixins/jdbc/jdbc.rb:114)
logstash_1 | org.jruby.RubyKernel.loop(org/jruby/RubyKernel.java:1442)
logstash_1 | usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.logstash_minus_integration_minus_jdbc_minus_5_dot_0_dot_6.lib.logstash.plugin_mixins.jdbc.jdbc.jdbc_connect(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-integration-jdbc-5.0.6/lib/logstash/plugin_mixins/jdbc/jdbc.rb:111)
logstash_1 | usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.logstash_minus_integration_minus_jdbc_minus_5_dot_0_dot_6.lib.logstash.plugin_mixins.jdbc.jdbc.open_jdbc_connection(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-integration-jdbc-5.0.6/lib/logstash/plugin_mixins/jdbc/jdbc.rb:139)
logstash_1 | usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.logstash_minus_integration_minus_jdbc_minus_5_dot_0_dot_6.lib.logstash.plugin_mixins.jdbc.jdbc.execute_statement(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-integration-jdbc-5.0.6/lib/logstash/plugin_mixins/jdbc/jdbc.rb:197)
logstash_1 | usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.logstash_minus_integration_minus_jdbc_minus_5_dot_0_dot_6.lib.logstash.inputs.jdbc.execute_query(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-integration-jdbc-5.0.6/lib/logstash/inputs/jdbc.rb:316)
logstash_1 | usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.logstash_minus_integration_minus_jdbc_minus_5_dot_0_dot_6.lib.logstash.inputs.jdbc.run(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-integration-jdbc-5.0.6/lib/logstash/inputs/jdbc.rb:284)
logstash_1 | RUBY.inputworker(/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:405)
logstash_1 | usr.share.logstash.logstash_minus_core.lib.logstash.java_pipeline.start_input(/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:396)
logstash_1 | org.jruby.RubyProc.call(org/jruby/RubyProc.java:318)
logstash_1 | java.lang.Thread.run(java/lang/Thread.java:834)
我很确定数据库仍然存在,但不知道为什么通信链接失败。我尝试了很多东西,但没有得到解决方案。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)