我想我错过了连接docker容器的东西。 我有2个容器,1个运行Jenkins和1个运行elk堆栈。
从主机我可以轻松地将日志传递给elk ..并通过--link
将Jenkins容器链接到elk,将一些通用事件传入elk堆栈。
但是我希望我真的想要Jenkins容器(通过Jenkins Notification plugin)将构建日志记录到elk中,无论我尝试使用tcp还是http,我在docker主机上使用的端口都没有显示。
在主机上,端口3333输入到elk容器(3333
是logstash的端口)。
从docker主机我可以做一些像"echo "hello new World" | nc localhost 3333"
这样的事情,麋鹿会把它拿起来。
我先用这个开始麋鹿:
docker run -d --name elk-docker -p 8686:80 -p 3333:3333 -p 9200:9200 elk-docker
然后詹金斯带着这个:
docker run -p 8585:8080 -v $PWD/docker/jenkins/jenkins_home:/var/lib/jenkins -t jenkins-docker
我也尝试过将两者联系起来但没有成功。
docker run -p 8585:8080 --link elk-docker:elk -v $PWD/docker/jenkins/jenkins_home:/var/lib/jenkins -t jenkins-docker
在Jenkins中,我安装了作业通知程序插件,我尝试使用简单的TCP端口333,并使用URL 172.17.0.5:3333
在Elk中显示Jenkins作业的主要事件。 172.17.0.5
是logstash容器的IP。