【发布时间】:2019-11-18 19:00:16
【问题描述】:
构建一个 Elastic 堆栈,我必须在其中连接到 SQL Server 数据库。因此,我构建了自己的 Logstash 映像,并在其中将 JDBC 驱动程序导入到容器中。
FROM docker.elastic.co/logstash/logstash:6.3.0
USER root
COPY mssql-jdbc-6.4.0.jre9.jar /opt/
# Add your logstash plugins setup here
RUN logstash-plugin install logstash-input-jdbc
# Example: RUN logstash-plugin install logstash-filter-json
然后我启动我的 docker-compose 文件。
# Elastic and Kibana config remove for clarity
logstash:
# image: docker.elastic.co/logstash/logstash:${TAG}
build: logstash/
container_name: Logstash
environment:
LS_JAVA_OPTS: "-Xmx256m -Xms256m"
env_file:
- .env
ports:
- '5001:5001'
volumes:
- ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml
- ./logstash/pipeline:/usr/share/logstash/pipeline
depends_on:
- elasticsearch1
networks:
- esnet
这里是我的 logstash.conf
input {
jdbc {
jdbc_driver_library => "/opt/mssql-jdbc-6.4.0.jre9.jar"
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
jdbc_connection_string => "jdbc:sqlserver://****.database.windows.net"
jdbc_user => "${DB_USERNAME}"
jdbc_password => "${DB_PASSWORD}"
statement => "select * from *****.dbo.association"
}
}
output {
elasticsearch {
hosts => ["http://elasticsearch1:9200", "http://elasticsearch2:9200"]
}
stdout {
codec => rubydebug
}
}
然后我得到了这个错误:
错误:com.microsoft.sqlserver.jdbc.SQLServerDriver 未加载。您确定在 :jdbc_driver_library 中包含了正确的 jdbc 驱动程序吗?
【问题讨论】:
-
我明白了……别看中了……这张图片中安装的是 Java 8 而不是 9。
标签: sql-server docker logstash