ITPub博客

首页 > 应用开发 > IT综合 > Docker logging drivers

Docker logging drivers

原创 IT综合 作者:百联达 时间:2018-04-08 17:25:24 0 删除 编辑
一:前言

1.Docker拥有多种日志机制来收集容器及其内部运行的服务的日志信息,这些机制统称为logging drivers。  Docker daemon 拥有一个默认的logging driver(json-file),容器默认采用这个logging driver.

2.Docker处理日志的方法是 Docker daemon捕捉每一个容器进程的STDOUT和STDERR, 通过logging driver将它们输出保存在磁盘上。 然后用户就能使用docker logs 来进行查询。

3.这些日志跟随容器而产生的,如果删除了某个容器,相应的日志文件也会随着被删除。


4.容器日志的输出形式
  • stdout 标准输出
  • stderr 标准错误
  • 以json格式存放在容器对于到日志文件中
5.docker日志内容类型
  • docker自身运行时Daemon的日志内容
  • docker容器的日志内容
二:logging driver类型


三:容器日志收集的方式

1.容器外收集。将宿主机的目录挂载为容器的日志目录,然后在宿主机上收集。

2.容器内收集。在容器内运行一个后台日志收集服务。

3.单独运行日志容器。单独运行一个容器提供共享日志卷,在日志容器中收集日志。

4.网络收集。容器内应用将日志直接发送到日志中心,比如java程序可以使用log4j 2转换日志格式并发送到远端。

5.通过修改docker的--log-driver。可以利用不同的driver把日志输出到不同地方,将log-driver设置为syslog、fluentd、splunk等日志收集服务,然后发送到远端。

四:容器日志收集的Sidecar模式

五:Kubernetes中的日志收集架构



  通过在每台node上部署?个以DaemonSet?式运?的fluentd来收集每台node上的?志。Fluentd将docker?志?录 /var/lib/docker/containers 和 /var/log ?录挂载到Pod中,然后Pod会在node节点的 /var/log/pods ?录中创建新的?录,可以区别不同的容器?志输出,该?录下有?个?志?件链接到 /var/lib/docker/contianers ?录下的容器?志输出。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28624388/viewspace-2152682/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
15年以上互联网经验,先后从事过制造业,证券业,物业行业和物流行业信息系统和互联网产品的设计落地实施,8年系统架构经验。最近关注企业数字化转型、财务数字化服务共享、大语言模型、Kubernetes微服务架构和Istio微服务治理框架。

注册时间:2013-02-05

  • 博文量
    332
  • 访问量
    1265609