问题描述
我试图将数据从 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 (将#修改为@)