2015-07-20 425 views
0

正在为Logstash创建Docker图像进行实验,该图像与自定义http进行交互。想知道如何设置Logstash将从中读取的日志位置的物流。 Logstash进程在EC2上运行,并将使用基于文件的输入从Apache,HAProxy,Jboss应用程序读取。 非常感谢,如果任何人都可以投入更多的光线。为Docker Logstash设置日志位置

回答

7

由Apache,HAProxy,Jboss和其他任何你想用你的Logstash Docker容器生成的日志文件应该放在它们通常所在的位置,并且在docker run命令中特别引用。您获得:

  1. 无需更改您当前的服务配置。
  2. 无需记住/查找主机上的日志文件,以防出现问题,并且您需要直接访问文件本身。他们将在你习惯的同一个地方。

您需要做的是将日志文件从它们所在的位置映射到运行的docker容器。你可以这样做到容器内的同一个目录,或者分开目录,这取决于你。如果您没有任何文件名冲突,我会将所有文件映射到容器内的相同目录。一个例子是这样的:

docker run -v /var/log/haproxy/error.log:/host/logs/haproxy_error.log \ 
      -v /var/log/httpd/access_log:/host/logs/apache_access.log \ 
      -v /var/log/some_other_log.log:/host/logs/some_other_log.log \ 
my-logstash-docker-image:latest 

你将不得不确保泊坞窗容器内的Logstash配置查找文件在以下位置:

  • /主机/日志/ haproxy_error的.log
  • /host/logs/apache_access.log
  • /host/logs/some_other_log.log

您可以查看我如何为Docker映像的Logz.io log shipper映射执行类似操作。

+0

太棒了,谢谢! –