docker日志引擎说明
docker原生支持众多的日志引擎,适用于各种不同的应用场景,本篇文档对其作一个简单的说明。
Docker日志引擎说明
docker支持的日志引擎如下:
none:关闭docker的回显日志, docker logs 看不到任何输出。使用这种方式也就意味着无法查看任何容器输出的日志
json-file:把每个容器的回显日志打到每个容器的内部, 形式为json 文件。在实际使用中, 有些容器在启动后有大量的回显日志, 尤其在程序内部报错时打出的日志信息尤其巨大, 很可能会因为某几个容器的json 日志过大而撑爆整个宿主机的磁盘
syslog:把所有容器的回显日志打到系统的syslog中。
目前harbor私有镜像仓库使用docker-compose方式启动的话,就默认使用的这种方式。将所有容器的日志都集中收集到一个harbor-log的容器中,在执行docker logs的时候会提示
"logs" command is supported only for "json-file" and "journald" loggin drivers (got: syslog)journald:把所有容器的回显日志打到系统的journald服务中,这是推荐的方式。
fluentd:把所有容器的回显日志打到fluentd服务中
gelf 把所有容器的回显日志打到支持 GELF(Graylog Extended Log Format) 格式的服务中, 比如Graylog或Logstash
修改docker日志引擎
- 修改docker配置文件/etc/docker/daemon.json如下:
{
"log-driver": "journald"
}
- 在容器运行时指定其日志引擎:
docker run --log-driver=journald alpint /bin/sh
journald配置说明
journald配置文件说明
# /etc/systemd/jornald.conf示例:
[Journal]
#Storage=auto 存储为自动模式, 其他模式有无日志模式, 纯内存模式和纯磁盘模式
#Compress=yes 默认启动压缩功能
#Seal=yes 默认加密, 日志文件为二进制文件, 无法 vim或tail 查看
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitIntervalSec=30s
#RateLimitBurst=1000
#SystemMaxUse= 精确设置日志可以占用的最大磁盘空间
#SystemKeepFree= 保证系统剩余的空间大小
#SystemMaxFileSize=
#SystemMaxFiles=100
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
#MaxRetentionSec=
#MaxFileSec=1month
#ForwardToSyslog=no
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg
journald 默认配置下, 默认日志最大限制为所在文件系统容量的 10%
默认配置下, journald 的日志存放在 /var/log/journal 下, 如果该目录在根分区下, 且根分区空间大小为10G, 那么 journald 存放日志最大的大小为1G, 超出1G 后将删除最早的日志
也可以精确指定占用的空间大小:
SystemMaxUse=50M
journalctl基本用法
journalctl 从头查看所有日志
journalctl -b 查看本次开机后的所有系统引导日志
journalctl -b -1 显示上次开机后的系统引导日志, 以此类推
journalctl -f 类似于 tail -f或tailf
journalctl /usr/bin/dockerd 后加程序的绝对路径,可以显示该程序的所有日志信息
journalctl -xe systemd 启动程序失败时会提示你使用这个命令查看错误信息, 其中x 表示在日志输出中增加一些解释性的短文本, e表示立即跳转至日志的尾部
journald注意事项
journald配置中,有两个非常重要的优化项目:
ForwardToSyslog=yes
ForwardToWall=yes
以上两个参数默认都是 yes 意味着 journald 收集日志后还会转发到 syslog 中
由此造成的影响是: journald 虽然可以乖乖的按照上面的配置进行日志的清理, 但是 syslog 却不在 journald 的控制范围之内
在日志量很大的情况下,syslog中的日志量也变得巨大,所以我们需要把上面两个参数的值改为no
重启journald服务:
systemctl restart systemd-journald.service
参考:https://docs.lvrui.io/2017/02/19/更改docker的日志引擎为-journald/
docker日志引擎说明的更多相关文章
- Docker 日志都在哪里?怎么收集?
https://www.cnblogs.com/YatHo/p/7866029.html 日志分两类,一类是 Docker 引擎日志:另一类是 容器日志. Docker 引擎日志 Docker 引擎日 ...
- docker 日志分析
日志分两类,一类是 Docker 引擎日志:另一类是 容器日志. Docker 引擎日志 Docker 引擎日志 一般是交给了 Upstart(Ubuntu 14.04) 或者 systemd (Ce ...
- docker 日志清理
首先确认 docker 使用的存储引擎 docker info 如果使用 Logging Driver: json-file, 那么日志默认在 /var/lib/docker/contains/xxx ...
- Docker -- 日志
docker 的两总日志 引擎日志 容器日志 引擎日志 简介: Docker 引擎日志就是 dockerd 运行时的日志 在CentOS 7系统中,Docker 引擎日志一般是交给 systemd来管 ...
- docker 日志位置
日志分两类,一类是 Docker 引擎日志:另一类是 容器日志. Docker 引擎日志 Docker 引擎日志 一般是交给了 Upstart(Ubuntu 14.04) 或者 systemd (Ce ...
- Docker 日志管理最佳实践
开源Linux 回复"读书",挑选书籍资料~ Docker-CE Server Version: 18.09.6 Storage Driver: overlay2 Kernel V ...
- Docker 存储引擎
可插拔存储引擎架构 这种可插拔式的存储架构.可以让你很灵活的去选择适合自己环境的存储引擎. 每个存储引擎都是以Linux 文件系统为基础的.此外,每个存储引擎都以自己的方式自由的管理image ...
- docker日志输出文件大小设置以及文件个数限制
问题描述: 今天有同事运行了一个docker容器,不多时就导致宿主机硬盘直接撑爆,消耗了120G,发生的很是突然. 问题排查: 后续查阅资料,发现是因为docker中的某个进程一直在持续输出,而这些输 ...
- 【转帖】技术选型之Docker容器引擎
技术选型之Docker容器引擎 https://segmentfault.com/a/1190000019462392 图过不来的 原作者写的挺好的 题外话 最近对Docker和Kubernetes进 ...
随机推荐
- (第十周)Beta Review会议
项目名:食物链教学工具 组名:奋斗吧兄弟 组长:黄兴 组员:李俞寰.杜桥.栾骄阳.王东涵 Beta Review会议 时间:2016.11.14 10:00——11:30.13:30——15:00 ...
- Maya学习笔记
软件: Maya 2016 : 参考教材: Maya 2016 中文版标准教程 ; 改变视图颜色 [窗口]|[设置/首项选择]|[颜色设置]|[3D视图]: 观察视图 旋转视图 Alt + 鼠标左键 ...
- iOS UIView性能最优的设计圆角并且绘制边框颜色
//以给cell切圆角为例- (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollection ...
- keil C 51 strlen库函数使用
在keil c51 程序中,若定义数组 volatile unsigned char data[3]={'G','G','G'};使用strlen(&data);得到的长度是不对的,若定义v ...
- 学习laravel源码之中间件原理
刨析laravel源码之中间件原理 在看了laravel关于中间件的源码和参考了相关的书籍之后,写了一个比较简陋的管道和闭包实现,代码比较简单,但是却不好理解所以还是需要多写多思考才能想明白其中的意义 ...
- ajax 数据请求(一)同域
参考:http://www.css88.com/jqapi-1.9/jQuery.ajax/ http://www.cnblogs.com/haitao-fan/p/3908973.html 1.常用 ...
- Pytest - 进阶功能fixture
1. 概述 Pytest的fixture功能灵活好用,支持参数设置,便于进行多用例测试,简单便捷,颇有pythonic.如果要深入学习pytest,必学fixture. fixture函数的作用: 完 ...
- Jquery 表单提交后3s禁用
<form action="${pageContext.servletContext.contextPath}/XXX/###" method="post" ...
- js本地储存userData实例
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head ...
- 深入理解JAVA虚拟机阅读笔记4——虚拟机类加载机制
虚拟机把描述类的Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制. 在Java语言中,类型的加载.连接和初始化过程都是 ...