docker(10、日志管理1 )1、 Docker logs 2、Docker 支持多种日志方案driver

42 篇文章 0 订阅

高效的监控和日志管理对保持生产系统只需稳定的运行以及排查问题至关重要。

在微服务架构中,由于容器的数量众多以及快速变化的特性,使得记录日志和监控变的重要起来。考虑到容器短暂和不固定的生命周期,我们需要debug问题时有些容器可能已经不在了。因此,一套集中式的日志管理系统是生产环境中不可缺少的组成部分。

本章我们将学习监控容器的各种可用技术和方案,首先会介绍 Docker 自带的 logs 子命令

 

 一、Dokcer logs


默认配置下的docker日志功能。
对于一个运行的容器,Docker 会将日志发送到容器的标准输出设备(STDOUT)和标准错误设备(STDERR),STDOUT和STDERR实际上就是容器的控制台终端。
比如我们运行一个httpd容器,查看日志有三种方式:
 1、在当前终端运行容器,不放到后台运行,日志直接打印在屏幕上

 2、容器-d 参数以后台运行,然后使用 docker attach 进入容器查看,但是退出不方便,容器kill掉容器(ctrl+p+q)

 3、容易放到后台运行, docker logs 查看

 docker logs 打印出自容器启动以来完整的日志,并且 -f 参数继续打印出新产生的日志,效果上与 Linux 命令 tail -f 一样。

二、Docker 支持多种日志方案

将容器日志发送到 STDOUT 和 STDERR 是Docker 的默认日志行为。实际上,Docker提供了多种日志机制帮助用户从运行的容器中提取日志信息。这些机制被称作logging driver 。

Docker 的默认 logging driver 是 json-file

[root@localhost ~]# docker info | grep 'Logging Driver'
 Logging Driver: json-file
[root@localhost ~]# 

默认的 logging driver。
json-file 会将容器的日志保存在json文件中,Docker 负责格式化其内容并输出到 STDOUT 和 STDERR 
我们可以在 Host 的容器目录中找到这个文件,日志的位置在

docker inspect web03 | jq .[].HostConfig.LogConfig

 

docker inspect web03 | jq .[].LogPath

  

比如我们看之前httpd容器的json格式的日志文件

除了 json-file ,Docker 还支持多种 logging driver 。完成的列表可以访问docker官方网站查 询 https://docs.docker.com/config/containers/logging/configure/#supported-logging-drivers

none 是disable 容器日志功能
syslogs 和 journald 是linux上两种日志管理服务
awslogs 、 splunk 和 gcplogs 是第三方日志托管服务 
gelf 和 fluentd 是两种开源的日志管理方案 
容器在启动时可以通过 --log-driver 指定使用的logging driver 。如果要设置Docker 默认的 logging driver ,需要修改 Docker daemon 的启动脚本,指定 --log-driver 参数,比如下面,每种 logging driver 都有自己的 --log-opt ,用的时候去官网查询即可

ExecStart=/usr/bin/dockerd -H fd:// --log-driver=syslog --log-opt ......

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值