我有一个docker swarm集群,并且能够将所有docker“容器”日志获取到ELK堆栈。
但是无法获取docker daemon日志。有人可以指导我实现这一目标。
仅供参考:我的堆栈在Linux中。
答案 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。 否在容器中。