Logstash在docker中执行
1、拉取镜像
官网关于docker获取logstash文档:https://www.elastic.co/guide/en/logstash/7.10/docker.html
也可以通过docker search
查询拉取的镜像
1
2docker search logstash
1
2docker pull docker.elastic.co/logstash/logstash:7.10.1
2、运行Logstash
1
2
3
4
5
6
7
8
9
10
11
12
13docker 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文件路径配置
1
2
3
4
5
6
7node.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容器
1
2
3
4
5
6
7
8
9
10
11
12
13docker 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
进入容器执行更新
1
2
3
4
5
6
7# 进入正在运行的容器 docker exec -it logstash /bin/bash # 在容器中执行 logstash-plugin update logstash-input-jdbc # 完成更新后退出容器 exit
插件更新完成后开启logstash.yml中的conf文件路径配置
1
2
3
4
5
6
7node.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
重新启动容器,加载配置文件
1
2docker restart logstash
最后
以上就是粗暴饼干最近收集整理的关于Logstash在docker中执行和解决Logstash7在JDK11的运行环境下加载jdbc驱动报错的问题的全部内容,更多相关Logstash在docker中执行和解决Logstash7在JDK11内容请搜索靠谱客的其他文章。
发表评论 取消回复