0

我正在尝试创建与自定义交互的Docker图像。想知道什么是为将要读取的日志位置设置物流的方法。该进程在 EC2 上运行,并将利用基于文件的输入从 Apache、HAProxy、Jboss 应用程序中读取数据。如果有人能对此有所了解,将不胜感激。LogstashhttpLogstashLogstash

4

1 回答 1

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

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

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

您可以查看我是如何为Logz.io 日志托运人Docker 映像做的与此映射类似的事情。

于 2015-07-27T19:39:59.340 回答