博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最佳实践系列丨Docker EE 日志记录最佳实践(一)
阅读量:5997 次
发布时间:2019-06-20

本文共 1425 字,大约阅读时间需要 4 分钟。

hot3.png

本文首发自“Docker公司”公众号(ID:docker-cn)

编译丨小东
每周一、三、五 与您不见不散!

在传统上,设计和实现集中的日志记录总是成为马后炮。要等到各种问题出现,集中的日志记录成为优先事项,人们才会想到用这样的解决方案查询、查看和分析日志,以找到问题的根本原因。但是到了容器时代,在设计使用 Docker 企业版 (Docker EE) 的容器即服务 (CaaS) 平台时,优先解决集中式日志记录是至关重要的。随着在容器中部署的微服务数量不断增多,它们以日志(或事件)形式产生的数据量会发生指数增长。

您将学到的知识

此参考架构提供了关于 Docker 日志记录功能如何工作的概述,说明了 Docker 日志的两大类别,然后讨论了 Docker 日志记录最佳实践。

了解 Docker 日志记录

在研究设计要素之前,先了解 Docker 日志记录的基本知识很重要。

Docker 支持不同的日志记录驱动,用于存储和/或流式传输主容器进程 (pid 1) 的容器 stdout 和 stderr 日志。默认情况下,Docker 使用 json-file 日志记录驱动,但也可以配置它使用许多其他驱动,方法是在 /etc/docker/daemon.json 中设置 log-driver 的值,然后重启 Docker 守护进程以重新加载其配置。

日志记录驱动设置会应用于重新配置守护进程之后启动的所有容器(在重新配置日志记录驱动之后重启现有容器并不会导致容器使用更新过的配置)。要覆盖默认的容器日志记录驱动,应使用 --log-driver 和 --log-opt 选项运行容器。另一方面,可以使用 docker service update --log-driver--log-opt 对 swarm mode 服务进行运行中更新,使其改用不同的日志记录驱动。

那么 Docker 引擎日志呢?这些日志通常由默认的系统管理节点日志记录器处理。现代的大多数发行版(CentOS 7、RHEL 7、Ubuntu 16 等)都使用 systemd,后者使用 journald 记录日志,使用 journalctl 访问日志。要访问引擎日志,可使用 journalctl -u docker.service。

Docker 日志类别和源

说过 Docker 日志记录的基础知识之后,本节将说明它们的类别和源。

Docker 日志通常可分为两种类别:基础架构管理日志或应用日志。大多数日志根据需访问日志者的角色自然地归入这两种类别。

  • 运维人员最关心平台的稳定性以及服务的可用性。
  • 开发人员比较关心其应用代码以及服务的性能。

为了实现自助服务平台,运维人员和开发人员都应该有权访问他们为了履行职责而需要访问的日志。开发运维的实践表明,在服务可用性和性能方面,大家要共同承担总体责任。但是,不应该让每一个人都有权访问平台上的每个日志。例如,开发人员应该只需要访问关于其服务和集成点的日志。运维人员则更关心 Docker 守护进程日志、UCP 和 DTR 可用性,以及服务可用性。两者的访问范围有一些重叠,因为开发人员和运维人员都应该了解服务可用性。让每个角色都能访问需要的日志,可以在发生问题时简化故障排除,并缩短解决故障平均时间 (MTTR)。

转载于:https://my.oschina.net/u/3611008/blog/1823849

你可能感兴趣的文章
Python显示进度条的方法
查看>>
P2709 小B的询问-莫队
查看>>
leetcode-56-合并区间
查看>>
查询当前数据库用户会话信息
查看>>
两个[\\s\\S]*?之间可为空元素没有意义
查看>>
freemarker中Could not resolve view with nam 'test.ftl' in servlet with name‘
查看>>
python 设计模式之观察者模式
查看>>
python seek()方法报错:“io.UnsupportedOperation: can't do nonzero cur-relative seeks”
查看>>
Android与服务器端数据交互(基于SOAP协议整合android+webservice)
查看>>
Windows8 Apps引发的思考
查看>>
js基础知识3
查看>>
网易2017春招笔试真题编程题集合(12)——分饼干
查看>>
linker command failed with exit code 1 (use -v to see invocation) 变量重名
查看>>
vue-框架模板的源代码注释
查看>>
第8章 Java类的三大特性之一:封装
查看>>
ZOJ-2571 Big String Outspread 模拟
查看>>
数据结构 第5章 树的二叉树 单元小结(2)遍历二叉树和线索二叉树
查看>>
VC中的字符串转换宏
查看>>
挂载tftp服务注意事项!
查看>>
poj 1151 Atlantis(矩形面积并)
查看>>