设置Docker Logstash映像的日志位置

Joh*_*n C 0 logging amazon-ec2 logstash docker logstash-configuration

我正在尝试创建一个与自定义交互的Docker图像.想知道什么是一种方法来设置日志位置的物流将被读取.该过程在EC2上运行,将使用基于文件的输入从Apache,HAProxy,Jboss应用程序中读取.如果有人能够更多地了解这一点,我将非常感激.LogstashhttpLogstashLogstash

小智 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
Run Code Online (Sandbox Code Playgroud)

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

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

您可以查看我是如何为Logz.io日志托运器 Docker映像执行类似于此映射的操作.