将 docker 守护程序日志重定向到 elasticsearch
Redirect docker daemon logs to elasticsearch
我有一个 docker swarm 集群并且能够将所有 docker "container" 日志获取到 ELK 堆栈。
但无法获取 docker 守护程序日志。有人可以指导我实现这个目标吗?
仅供参考:我的堆栈在 Linux。
您可以使用 Filebeat 插件将日志从守护程序日志文件发送到您的 ELK (plugin presentation page.
关于这一点有一篇文章on the elasic.co blog。您的配置会有所不同,因为您不需要容器日志,但需要在路径 /var/log/docker.log
或 /var/log/daemon.log
.
中找到 Docker 守护程序日志
编辑 1:
因为在你的环境中,日志可以用 journalctl
读取,我在互联网上搜索了一下,发现了一个 ELK 插件,可以让你从 journald
发送日志:https://github.com/logstash-plugins/logstash-input-journald
希望对您有所帮助。
1st: 你需要找出你的 docker 守护进程保存日志的位置,这取决于 linux 分布。请参阅此回复以及可能位置的列表:
2nd: 您可以使用 Paul Rey 的建议并使用 Filebeat。作为替代方案,我还建议使用 Fluentd,通常您可以使用它代替 Logstash,然后使用 EFK 代替 ELK,或者只是作为 ELK 环境的额外工具。
它也可以使用 tail input plugin
从文件中读取
它还可以使用 elasticsearch out plugin
向 Elasticsearch 插入数据
本教程教授如何记录容器,但是您需要将输入插件更改为来自该文件的 tail:Docker logging via EFK
我还想补充一点,如果您有兴趣记录守护程序,即使 docker 无法启动,您也可能想要记录。所以我会直接在主机上安装 Fluentd。 不 在容器中。
我有一个 docker swarm 集群并且能够将所有 docker "container" 日志获取到 ELK 堆栈。
但无法获取 docker 守护程序日志。有人可以指导我实现这个目标吗?
仅供参考:我的堆栈在 Linux。
您可以使用 Filebeat 插件将日志从守护程序日志文件发送到您的 ELK (plugin presentation page.
关于这一点有一篇文章on the elasic.co blog。您的配置会有所不同,因为您不需要容器日志,但需要在路径 /var/log/docker.log
或 /var/log/daemon.log
.
编辑 1:
因为在你的环境中,日志可以用 journalctl
读取,我在互联网上搜索了一下,发现了一个 ELK 插件,可以让你从 journald
发送日志:https://github.com/logstash-plugins/logstash-input-journald
希望对您有所帮助。
1st: 你需要找出你的 docker 守护进程保存日志的位置,这取决于 linux 分布。请参阅此回复以及可能位置的列表:
2nd: 您可以使用 Paul Rey 的建议并使用 Filebeat。作为替代方案,我还建议使用 Fluentd,通常您可以使用它代替 Logstash,然后使用 EFK 代替 ELK,或者只是作为 ELK 环境的额外工具。
它也可以使用 tail input plugin
从文件中读取它还可以使用 elasticsearch out plugin
向 Elasticsearch 插入数据本教程教授如何记录容器,但是您需要将输入插件更改为来自该文件的 tail:Docker logging via EFK
我还想补充一点,如果您有兴趣记录守护程序,即使 docker 无法启动,您也可能想要记录。所以我会直接在主机上安装 Fluentd。 不 在容器中。