Logstash Docker到MySql Docker连接失败

问题描述

我试图将数据从 MysqL 拉到logstash,最后将数据填充到 elasticSearch

Logstash.conf -我们正试图从MysqL获取结果并将其推入ES。

input {
    jdbc {
        jdbc_driver_library => "${LOGSTASH_JDBC_DRIVER_JAR_LOCATION}"
        jdbc_driver_class => "${LOGSTASH_JDBC_DRIVER}"
        jdbc_connection_string => "${LOGSTASH_JDBC_URL}"
        jdbc_user => "${LOGSTASH_JDBC_USERNAME}"
        jdbc_password => "${LOGSTASH_JDBC_PASSWORD}"
        schedule => "* * * * *"
        statement => "SELECT * FROM testtable;"
    }
}

output {
    stdout { codec => rubydebug }
    elasticsearch {
        hosts => "http://elasticsearch:9200"
        index => "testtable"
        #document_type => "testtable"
        document_id => "%{PersonID}"
        #user => "elastic"
        #password => "changeme"
    }
}

使用docker-compose.yml填充的JDBC详细信息

MysqL:
    container_name: MysqL
    image: MysqL:5.6
    ports: 
      - 13306:3306
    environment:
      - MysqL_ROOT_PASSWORD=pass
      - MysqL_DATABASE=db
      - MysqL_USER=root
      - MysqL_PASSWORD=pass
    volumes:
      - MysqL_data:/var/lib/MysqL
    networks: 
      - logstash_network

logstash:
    #image: docker.elastic.co/logstash/logstash:6.6.0
    container_name: logstash
    image: logstash-input-jdbc-MysqL:7.8.0
    environment:
      ELASTICSEARCH_URL: http://elasticsearch:9200
      xpack.monitoring.enabled: 'false'
      LOGSTASH_JDBC_URL: jdbc:MysqL://localhost:13306/db?autoReconnect=true&useSSL=false
      LOGSTASH_JDBC_DRIVER: com.MysqL.cj.jdbc.Driver
      LOGSTASH_JDBC_DRIVER_JAR_LOCATION: /usr/share/logstash/logstash-core/lib/jars/mysql-connector-java-8.0.21.jar
      LOGSTASH_JDBC_USERNAME: root
      LOGSTASH_JDBC_PASSWORD: pass
      xpack.monitoring.enabled: 'false'
      xpack.monitoring.elasticsearch.url: http://elasticsearch:9200
    ports: 
      - 5044:5044
      - 5001:5001
    networks:
      - logstash_network
    volumes: 
      - ./logstash-input-jdbc.conf:/usr/share/logstash/pipeline/logstash.conf
      - /var/elasticsearch/logstash/pipeline:/usr/share/logstash/pipeline
    depends_on: 
      - elasticsearch
      - MysqL

错误

[ERROR]logstash.inputs.jdbcUnable to connect to database. Tried 1 times {:error_message=>"Java::Javasql::sqlNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up."}
{ 2054 rufus-scheduler intercepted an error:
  2054   job:
  2054     Rufus::Scheduler::CronJob "* * * * *" {}
  2054     2054
  2054     Sequel::DatabaseConnectionError
  2054     Java::Javasql::sqlNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.

我尝试将jdbc url主机用作MysqL:13306,仍然无效!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...