Docker CE 和系统日志

Posted

技术标签:

【中文标题】Docker CE 和系统日志【英文标题】:Docker CE and syslog 【发布时间】:2020-10-07 14:54:10 【问题描述】:

Docker 日志记录驱动程序是在线指定的,以及这些限制。

日志记录驱动程序的限制

Docker Enterprise 的用户可以使用“双重日志记录”,这使您可以对任何日志记录驱动程序使用 docker logs 命令。有关使用 docker logs 在本地读取许多第三方日志记录解决方案的容器日志的信息,请参阅使用远程日志记录驱动程序时读取日志,包括:

系统日志

凝胶

流利

aws日志

splunk

etwlogs

gcplogs

日志

使用 Docker 社区引擎时,docker logs 命令仅适用于以下驱动程序:

本地

json 文件

杂志

读取日志信息需要解压轮换的日志文件,这会导致磁盘使用量暂时增加(直到从轮换文件中读取日志条目),并在解压时增加 CPU 使用率。

Docker数据目录所在主机存储的容量决定了日志文件信息的最大大小。

我正在使用 Docker CE,但我对此文档有疑问。这是否意味着,使用 CE,我根本不能做 syslog?或者只是我不能做 syslog 并且有 docker 日志?

【问题讨论】:

【参考方案1】:

没有什么可以阻止您在容器中使用 syslog,但您无法使用“docker logs”命令读取这些日志。也没有什么能阻止您将日志写入标准输出并将您的日志通过管道传输给任意数量的日志托运人。

这是一篇解释如何在 docker 容器中执行 syslog 的文章:https://medium.com/better-programming/docker-centralized-logging-with-syslog-97b9c147bd30

鉴于 fluentd 和 fluent-bit 提供给 msg 字段的结构,我认为如今 fluentd 和 fluent-bit 是比 syslog 更好的选择,尽管 syslog-ng 看起来很有趣。不过 Fluent-bit 非常好,所以你可能想看看它。

【讨论】:

以上是关于Docker CE 和系统日志的主要内容,如果未能解决你的问题,请参考以下文章

日志系统之基于flume收集docker容器日志

日志系统之基于flume收集docker容器日志

Linux系统Centos7 基于Docker搭建ELK分布式日志系统

部署 Graylog 日志系统 - 每天5分钟玩转 Docker 容器技术(92)

使用Docker搭建ELK日志搜集系统

K8s + Docker 部署ELK日志系统