一个容器是否可以同时使用多个日志记录驱动程序 - 比如 fluentd 和 json?
谢谢。
一个容器是否可以同时使用多个日志记录驱动程序 - 比如 fluentd 和 json?
谢谢。
截至18.03版本,Docker引擎企业版(EE)支持多个日志驱动程序,但社区版(CE)不支持:
https://docs.docker.com/ee/engine/release-notes/#18031-ee-1-2018-06-27
20.10.1
以来,双重日志记录功能已经可用。18.03.1-ee-1
中提供。master
中。moby/moby
中被以下评论关闭:不可以,你只能指定一个日志记录驱动程序/容器。
如果想要为您的日志使用单独的接收器,您需要依赖于像 fluentd 这样的工具来接收日志(或读取json日志文件),并配置一个流水线来分发它们。
“日志记录驱动程序”的文档也表明了这一点:您不能指定多个日志记录驱动程序。
要将Docker守护程序配置为默认使用特定的日志记录驱动程序,请在daemon.json文件中设置log-driver的值为日志记录驱动程序的名称...
{
"log-driver": "syslog"
}
"log-driver"
需要一个字符串而不是一个数组。 docker logs
读取它们。{
"log-driver": "syslog"
}
现在可以将日志重定向到syslog服务器,但这也会使Docker不再将日志发布到本地日志驱动程序中。现在情况已经不同了,信息可以在两个位置都找到。
从Docker Engine Enterprise 18.03.1-ee-1开始,您可以使用docker logs读取容器日志,而无论配置的日志驱动程序或插件如何。有时称为双重日志记录功能,此功能允许您使用docker logs以一致的格式在本地读取容器日志,而不管使用的远程日志驱动程序是什么,因为引擎已配置为将信息记录到“本地”日志驱动程序。