在Docker中使用fluentd日志记录驱动程序时的副作用

时间:2019-06-14 16:15:42

标签: docker docker-compose fluentd efk

我正在建立一个EFK堆栈,该堆栈可以按预期工作,但存在一些我想解决的缺点。

  1. 如果我的fluentd实例未运行,则使用fluetnd日志驱动程序的其他容器将无法启动。这是一个很大的问题,因为主应用程序现在依赖于我的日志聚合器。
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. 使用流畅的日志记录驱动程序时,在运行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

1 个答案:

答案 0 :(得分:2)

在Docker社区版本中,只有很少的日志记录驱动程序支持“双重日志记录”:本地,json文件,已记录日志。

因此,有几种选择:

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

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

检查此链接以获取更多详细信息docs.docker.com/config/containers/logging/configure