为Docker Logstash映像设置日志位置
我正在尝试创build一个Logstash
与自定义http
进行交互的Docker
镜像。 想知道如何设置Logstash
将要读取的日志位置的物stream。 Logstash
进程在EC2上运行,并将使用基于文件的input从Apache,HAProxy,Jboss应用程序读取。 如果有人能够更多地指出这一点,将非常感激。
由Apache,HAProxy,Jboss以及其他任何你想用Logstash Docker容器生成的日志文件都应该保留在它们通常所在的位置,并且在docker run命令中特别引用。 你获得:
- 无需更改您当前的服务configuration。
- 不必记住/定位主机上的日志文件,以防出现问题,而且您需要直接访问文件本身。 他们将在你习惯的地方。
您需要做的是将日志文件从原来的位置映射到正在运行的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容器内的Logstashconfiguration在以下位置查找文件:
- /host/logs/haproxy_error.log
- /host/logs/apache_access.log
- /host/logs/some_other_log.log
你可以看看我为Logz.io日志托运者 Docker镜像做了些什么类似的映射。