代码之家  ›  专栏  ›  技术社区  ›  Sunil Agarwal

将docker守护进程日志重定向到elasticsearch

  •  0
  • Sunil Agarwal  · 技术社区  · 7 年前

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

    但无法获取docker守护进程日志。有人能指导我实现这个目标吗。

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

    2 回复  |  直到 7 年前
        1
  •  1
  •   Paul Rey    7 年前

    您可以使用Filebeat插件将守护进程日志文件中的日志发送到您的ELK( plugin presentation page .

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

    编辑1:

    因为在您的环境中,可以使用 journalctl ,我在网上找到了一个ELK插件,它允许您从 journald : https://github.com/logstash-plugins/logstash-input-journald

    我希望这会有帮助。

        2
  •  1
  •   Joao Cunha    7 年前

    第一: 您需要找出docker守护进程保存日志的位置,这取决于linux发行版。查看此响应,并列出可能的位置:

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

    第二: 你可以用保罗·雷伊的建议和菲力拍。另外,我还建议使用 Fluentd ,通常您可以使用它来代替Logstash,然后使用EFK代替ELK,或者只是作为ELK环境的额外工具。

    它还可以使用 tail input plugin

    它还可以使用 elasticsearch out plugin

    本教程教您如何记录容器,但是您需要将输入插件从该文件更改为tail: Docker logging via EFK

    我还想补充一点,如果您对记录守护进程感兴趣,那么即使docker无法启动,也可能需要记录。所以我会直接在主机上安装Fluentd。 不是 在一个容器里。

    推荐文章