容器日志和监控

栏目: 编程工具 · 发布时间: 5年前

内容简介:对于一个容器来说,当应用把日志输出到 stdout 和 stderr 之后,容器项目在默认情况下就会把这些日志输出到宿主机上的一个 JSON 文件里对于应用的标准输出(stdout)日志,Docker Daemon 在运行这个容器时就会创建一个协程(goroutine),负责标准输出日志。由于此 goroutine 绑定了整个容器内所有进程的标准输出文件描述符,因此容器内应用的所有标准输出日志,都会被 goroutine 接收。goroutine 接收到容器的标准输出内容时,立即将这部分内容,写入与此容器

简介(持续更新)

docker 日志

对于一个容器来说,当应用把日志输出到 stdout 和 stderr 之后,容器项目在默认情况下就会把这些日志输出到宿主机上的一个 JSON 文件里

「Allen 谈 Docker 系列」之 docker logs 实现剖析

对于应用的标准输出(stdout)日志,Docker Daemon 在运行这个容器时就会创建一个协程(goroutine),负责标准输出日志。由于此 goroutine 绑定了整个容器内所有进程的标准输出文件描述符,因此容器内应用的所有标准输出日志,都会被 goroutine 接收。goroutine 接收到容器的标准输出内容时,立即将这部分内容,写入与此容器—对应的日志文件中,日志文件位于 /var/lib/docker/containers/<container_id> ,文件名为 -json.log。

容器日志和监控

Docker 则通过 docker logs 命令向用户提供日志接口。 docker logs 实现原理的本质均基于与容器一一对应的 -json.log,`kubectl logs`类似

从这可以看到几个问题

  1. app 同时输出文件日志和stdout 是一种浪费
  2. stdout 日志在 /var/lib/docker/containers/<container_id> 下可以被清理, 也可以配置 docker daemon 设置 log-driver 和 log-opts 参数

    "log-driver":"json-file",
       	 "log-opts": {"max-size":"500m", "max-file":"3"}
  3. 将日志输出到stdout 貌似是容器环境下的方案,这与物理机时代非常不同
  4. 你如何限定开发小伙伴不向文件写日志? 限定写文件权限

kubernetes 日志

Kubernetes 里面对容器日志的处理方式,都叫作 cluster-level-logging,即:这个日志处理系统,与容器、Pod 以及 Node 的生命周期都是完全无关的。这种设计当然是为了保证,无论是容器挂了、Pod 被删除,甚至节点宕机的时候,应用的日志依然可以被正常获取到。

  1. 第一种,在 Node 上部署 logging agent,将日志文件转发到后端存储里保存起来。
  2. 当容器的日志只能输出到某些文件里的时候,我们可以通过一个 sidecar 容器把这些日志文件重新输出到 sidecar的 stdout 和 stderr 上,这样就能够继续使用第一种方案了。
  3. 通过一个 sidecar 容器,直接把应用的日志文件发送到远程存储里面去

一些观点

猪八戒网DevOps容器云与流水线

容器日志和监控

比较常见的有这么几种,可能也有项目日志直接写入ES集群,不需要容器内收集的。

作者推荐使用第三种收集方案,以DaemonSet的方案部署日志收集组件,做到业务容器的完全无侵入,节省服务器资源,不必为每个业务容器都启动一个日志收集组件。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

CLR via C#

CLR via C#

(美)Jeffrey Richter / 周靖 / 清华大学出版社 / 2010-9 / 99.00元

本书针对CLR和.NET Framework 4.0进行深入、全面的探讨,并结合实例介绍了如何利用它们进行设计、开发和调试。全书5部分29章。第Ⅰ部分介绍CLR基础,第Ⅱ部分解释如何设计类型,第Ⅲ部分介绍基本类型,第Ⅳ部分以实用特性为主题,第Ⅴ部分花大量篇幅重点介绍线程处理。 通过本书的阅读,读者可以掌握CLR和.NET Framework的精髓,轻松、高效地创建高性能应用程序。一起来看看 《CLR via C#》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

MD5 加密
MD5 加密

MD5 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具