如何配置日志驱动

本篇内容介绍了“如何配置日志驱动”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

专注于为中小企业提供网站制作、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业罗定免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了数千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

日志驱动(Logging Driver)

在 Docker 中,由多种方式存储应用程序日志,这些存储日志的方式被称为“日志驱动(Logging Driver)”。

它具有多种类型日志驱动,例如 none、local、json-file 等等,还可以实现自己的日志驱动。详细内容可参考官方「Supported logging drivers」与「Use a logging driver plugin」文档。

注意事项

本笔记内容是对官方 19.03/Configure logging drivers 文档的学习与整理,详细内容请参考官方文档。

配置默认日志驱动

默认为 json-file 日志驱动,但是可以修改。

配置全局日志驱动

修改 /etc/docker/daemon.json 配置文件(示例):

{
  "log-driver": "syslog",
  "log-opts": {
    "max-size": "500m",
    "max-file": "3",
    "labels": "production_status",
    "env": "os,customer"
  }
}

log-opts 可用属性取决于日志驱动类型(log-driver),如果日志驱动支持其他选项,则可以进行添加。

配置容器日志驱动

也可以为特定容器配置日志驱动。在启动容器时,指定 --log-driver 选项:

docker run -it --log-driver none alpine ash

配置日志分发模型

日志分发由两种模型:(1)阻塞;(2)非阻塞

“非阻塞”用于防止日志后端压力而导致应用程序崩溃。详细内容可参考官方文档。

使用日志标签

可以使用-e或--label选项指定日志标签,在生成的日志中会附加某些标签。详细内容可参考官方文档。

日志驱动限制

企业版支持“双重日志”,即不管使用哪种日志驱动,都可以使用 docker logs 命令查看,但是社区版目前(01/08/2020)只支持查看 local、json-file、journald 这三种日志驱动,因此“我们”通常也只需要关注这三中。

读取轮转日志需要消耗磁盘与 CPU 使用

最大日志文件大小由Docker数据目录大小决定

默认日志驱动、配置,以及需要我们关注的问题

服务进程(Dokcer)的日志保存在哪里?

如果使用 systemd 运行 Docker 服务,则日志由 systemd-journald 管理。使用 journalctl -u docker.service 查看 Docker 日志。

默认的日志驱动是什么?

不同版本的 Docker,默认日志驱动不同。根据官方文档 19.03/Configure the default logging driver 所述:The default logging driver is json-file。

执行命令 docker info --format "{{.LoggingDriver}}" 查看当前默认的日志驱动。

执行命令 docker inspect -f '{{.HostConfig.LogConfig.Type}}' 查看容器的日志驱动。

容器的日志保存在哪里?

/var/lib/docker/containers//-json.log

容器的日志是否会自动轮转,并释放空间?

如果容器使用 json-file 日志驱动,根据官方 19.03/JSON File logging driver 文档对 max-size 的描述,容器的日志不会论转,会一直增长。

通过在 Docker 18.09.1 测试,也是如此,日志文件 -json.log 会不断增长,因此我们需要调整日志驱动参数。

“如何配置日志驱动”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


当前文章:如何配置日志驱动
网址分享:http://scyanting.com/article/ihicdg.html