容器日志和监控

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

内容简介:对于一个容器来说,当应用把日志输出到 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的方案部署日志收集组件,做到业务容器的完全无侵入,节省服务器资源,不必为每个业务容器都启动一个日志收集组件。


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

查看所有标签

猜你喜欢:

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

High Performance JavaScript

High Performance JavaScript

Nicholas C. Zakas / O'Reilly Media / 2010-4-2 / USD 34.99

If you're like most developers, you rely heavily on JavaScript to build interactive and quick-responding web applications. The problem is that all of those lines of JavaScript code can slow down your ......一起来看看 《High Performance JavaScript》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具