运行 docker 主机 OS 上的 filebeat 并从容器中收集日志

Running filebeat on docker host OS and collecting logs from containers

我有一个服务器,它是多个 docker 容器的主机 OS。每个容器都包含一个创建日志的应用程序。我希望使用 syslog 守护进程将这些日志发送到一个地方,然后我希望 filebeat 将这些数据传输到另一台服务器。是否可以在 HOST OS 上安装 filebeat(无需为 filebeat 创建另一个容器),并使容器应用程序的日志数据由 syslog 守护进程收集,然后整合到 /var/log 在主机上 OS?谢谢

您需要与每个容器共享一个卷,以便在主机文件系统中获取您的日志。

然后,您可以在主机上安装 filebeat 并将日志转发到您想要的位置,因为它们是 "standard" 个日志文件。

请注意,通常 docker 容器不会将日志写入真实日志文件,而是写入标准输出。这意味着您可能需要自定义图像才能解决此日志记录问题。