Filebeat监视容器内几个容器的日志

时间:2018-07-05 15:48:41

标签: docker logging logstash containers filebeat

我有一个问题,日志文件位于容器内部的情况下,有什么方法可以运送每个容器的日志。实际上,当前流程将有助于运送位于默认路径(var / lib / docker / containers / / .log)中的日志文件。我想自定义filebeat.yaml以将日志从每个容器发送到logstash,而不是默认路径。

1 个答案:

答案 0 :(得分:2)

如果您可以将容器设置为登录到stdout而不是文件,则filebeat似乎具有autodiscover mode,它将捕获每个容器的docker logs

ELK世界中的另一种常见设置是在主机上配置logstash,并设置Docker的日志记录选项以将容器stdout上的所有输出发送到logstash。这使docker logs无法正常工作,但是您的所有日志输出都可以通过Kibana获得。

如果容器进程始终写入日志文件,则可以使用docker run -v选项或Docker Compose volumes:选项将主机目录安装到单个容器的/var/log目录上。然后,日志文件将在主机上可见,并且您可以使用任何基于文件的收集器来捕获它们。这是例行更改的领域,要求您先停止并删除现有容器,然后再使用其他选项启动它们。