设置Docker Logstash映像的日志位置

时间:2015-07-20 23:18:10

标签: logging amazon-ec2 docker logstash logstash-configuration

正在尝试为Docker与自定义Logstash互动创建http图片。想知道为Logstash将要读取的日志位置设置物流的方法是什么。 Logstash进程在EC2上运行,并将使用基于文件的输入从Apache,HAProxy,Jboss应用程序中读取。 如果有人能够更多地了解这一点,我将非常感激。

1 个答案:

答案 0 :(得分:7)

Apache,HAProxy,Jboss以及您希望使用Logstash Docker容器获取的任何其他内容生成的日志文件应保留在通常所在的位置,并在docker run命令中明确引用。你获得:

  1. 无需更改当前的服务配置。
  2. 如果出现问题并且您需要直接访问文件本身,则无需记住/找到主机上的日志文件。它们将与您习惯的地方相同。
  3. 您需要做的是将日志文件从它们所在的位置映射到正在运行的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
    

    您必须确保Docker容器中的Logstash配置在以下位置查找文件:

    • /host/logs/haproxy_error.log
    • /host/logs/apache_access.log
    • /host/logs/some_other_log.log

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