将docker daemon日志重定向到elasticsearch

时间:2018-07-26 13:27:17

标签: docker docker-swarm elastic-stack

我有一个docker swarm集群,并且能够将所有docker“容器”日志获取到ELK堆栈。

但是无法获取docker daemon日志。有人可以指导我实现这一目标。

仅供参考:我的堆栈在Linux中。

2 个答案:

答案 0 :(得分:1)

您可以使用Filebeat插件将日志从守护程序日志文件发送到ELK(plugin presentation page

关于这一点on the elasic.co blog,有一篇文章。您的配置将有所不同,因为您不希望容器日志,而希望在路径/var/log/docker.log/var/log/daemon.log上找到Docker守护程序日志。

编辑1:

由于在您的环境中,日志可以用journalctl读取,因此我在Internet上进行了挖掘,并找到了一个ELK插件,该插件可让您从journald发送日志:{{3} }

希望会有所帮助。

答案 1 :(得分:1)

第一个:,您需要找出docker守护程序将日志保存在哪里,这取决于linux发行版。请参阅以下响应以及可能的位置列表:

https://stackoverflow.com/a/30970134/3165889

第二个:,您可以使用Paul Rey的建议并使用Filebeat。作为替代方案,我还建议使用Fluentd,通常可以使用它代替Logstash,然后使用EFK代替ELK,或者只是作为ELK环境的附加工具。

它也可以使用tail input plugin

从文件中读取

它也可以使用elasticsearch out plugin

将数据插入Elasticsearch

本教程介绍了如何记录容器,但是您需要将输入插件更改为该文件的结尾:Docker logging via EFK

我还要补充一点,如果您想记录守护程序,即使docker无法启动,您也可能希望记录。因此,我将直接在主机上安装Fluentd。 在容器中。