如何配置日志驱动

发布时间:2021-10-12 16:01:36 作者:iii
来源:亿速云 阅读:167

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

日志驱动(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}}' <CONTAINER> 查看容器的日志驱动

容器的日志保存在哪里?

/var/lib/docker/containers/<container_id>/<container_id>-json.log

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

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

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

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

推荐阅读:
  1. haproxy配置日志及自定义日志
  2. Spring Boot中怎么配置日志

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

docker linux

上一篇:什么是HTML5 Boilerplate

下一篇:批处理如何显示只有指定个数字符的行

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》