【问题标题】:Side Effects When Using fluentd logging driver with Docker在 Docker 中使用 fluentd 日志记录驱动程序时的副作用
【发布时间】:2019-10-29 07:29:24
【问题描述】:

我正在设置一个 EFK 堆栈,该堆栈按预期工作,但有一些我想解决的缺点。

  1. 如果我的 fluentd 实例未运行,则使用该 fluentd 日志驱动程序的其他容器将无法启动。这是一个相当大的问题,因为主应用程序现在依赖于我的日志聚合器。
ERROR: for sharedcontainers_mongo_s3_backup_1  Cannot start service mongo_s3_backup: b'failed to initialize logging driver: dial tcp [::1]:24224: connect: connection refused'
  1. 使用 fluentd 日志记录驱动程序时,在运行docker-compose logs 时,我不再能够在命令行中查看日志。虽然这在很多时候都可以,但日志聚合器可能存在问题(可能是破坏了所有容器的情况),您现在无法轻松查看日志。您能否使用多个日志记录驱动程序或其他解决方法?
redis_1               | WARNING: no logs are available with the 'fluentd' log driver

docker-compose.yml:

logging:
  driver: "fluentd"
  options:
    fluentd-address: localhost:24224

【问题讨论】:

    标签: docker docker-compose fluentd efk


    【解决方案1】:

    在 docker 社区版本中,您只有少数支持“双重日志记录”的日志记录驱动程序:local、json-file、journald。

    所以,有几种选择:

    1. 为 docker 使用 journald 日志驱动程序,这样您就可以使用 docker logs 命令和 journalctl 查看日志。 为了将日志转发到 fluentd,我们在主机上配置 syslog 将所有日志转发到 fluentd 端口。

    2. 使用 docker 企业版。此版本为其他驱动程序(包括 fluentd 日志驱动程序)提供“双重”日志记录。

    查看此链接了解更多详情docs.docker.com/config/containers/logging/configure

    【讨论】:

    • 我对使用 journalctl 没有任何要求,也不喜欢这种方法,尽管它比我在帖子中提到的问题要好。我会记住这一点的。
    • 在 docker 社区版本中,您只有少数支持“双重日志记录”的日志记录驱动程序:本地、json-file、journald。如果您想对其他驱动程序(包括 fluentd,用户 docker Enterprise 版本)进行“双重”日志记录。
    猜你喜欢
    • 2015-12-17
    • 2023-03-14
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    相关资源
    最近更新 更多