概述
Logstash在docker中执行
1、拉取镜像
官网关于docker获取logstash文档:https://www.elastic.co/guide/en/logstash/7.10/docker.html
也可以通过docker search
查询拉取的镜像
docker search logstash
docker pull docker.elastic.co/logstash/logstash:7.10.1
2、运行Logstash
docker run -it -d
-p 5044:5044
-p 9600:9600
--name logstash
--privileged=true
--restart=always
-m 2048m
--memory-swap=2724m
-e ES_JAVA_OPTS="-Duser.timezone=Asia/Shanghai"
-v /home/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml
-v /home/logstash/config:/usr/share/logstash/config
docker.elastic.co/logstash/logstash:7.10.1
注意--privileged=true
参数,privileged=true使容器内的root拥有真正的root权限,在-v /home/logstash/config:/usr/share/logstash/config
时需要用到,否则logstash将获取不到指定的/usr/share/logstash/config
文件夹下的内容
logstash-input-jdbc插件问题
若使用7.0.x-7.4.x的版本,其自带的logstash-input-jdbc插件有bug,在JDK11的环境下运行时会无法正常加载jdbc的驱动。
详见:
https://github.com/elastic/logstash/issues/11147
https://github.com/logstash-plugins/logstash-input-jdbc/pull/356
该问题在logstash-input-jdbc的4.3.18版本被修复,而Logstash自带的logstash-input-jdbc插件是在Logstash7.51版本对logstash-input-jdbc插件进行了更新了。
如果必须要使用7.0.x-7.4.x版本的Logstash就需要通过logstash-plugin
命令Logstash更新自带的logstash-input-jdbc。
更新logstash-input-jdbc插件版本
logstash.yml中先不做conf文件路径配置
node.name: logstash
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: ["192.168.1.1:9200"]
xpack.monitoring.enabled: true
#path.config: /usr/share/logstash/config/*.conf
path.logs: /var/log/logstash
启动docker容器
docker run -it -d
-p 5044:5044
-p 9600:9600
--name logstash
--privileged=true
--restart=always
-m 2048m
--memory-swap=2724m
-e ES_JAVA_OPTS="-Duser.timezone=Asia/Shanghai"
-v /home/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml
-v /home/logstash/config:/usr/share/logstash/config
docker.elastic.co/logstash/logstash:7.2.0
进入容器执行更新
# 进入正在运行的容器
docker exec -it logstash /bin/bash
# 在容器中执行
logstash-plugin update logstash-input-jdbc
# 完成更新后退出容器
exit
插件更新完成后开启logstash.yml中的conf文件路径配置
node.name: logstash
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: ["192.168.1.1:9200"]
xpack.monitoring.enabled: true
path.config: /usr/share/logstash/config/*.conf
path.logs: /var/log/logstash
重新启动容器,加载配置文件
docker restart logstash
最后
以上就是粗暴饼干为你收集整理的Logstash在docker中执行和解决Logstash7在JDK11的运行环境下加载jdbc驱动报错的问题的全部内容,希望文章能够帮你解决Logstash在docker中执行和解决Logstash7在JDK11的运行环境下加载jdbc驱动报错的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复