docker log 配置

参考链接:
https://www.cnblogs.com/hadex/p/6837688.html
https://www.cnblogs.com/jingjulianyi/p/6637801.html

docker 的日志管理有多种方式,这里使用 systemd-journald 管理 Docker 容器日志

1. 编辑 /etc/sysconfig/docker 文件:

OPTIONS 中添加如下内如:

--log-driver=journald

然后运行命令:

systemctl daemon-reload
systemctl restart docker.service

2. 配置journald.conf

[Journal]
#日志存储到磁盘
Storage=persistent 
#压缩日志
Compress=yes 
#为日志添加序列号
Seal=yes 
#每个用户分别记录日志
SplitMode=uid 
#日志同步到磁盘的间隔,高级别的日志,如:CRIT、ALERT、EMERG 三种总是实时同步
SyncIntervalSec=1m 

#即制日志的最大流量,此处指 30s 内最多记录 100000 条日志,超出的将被丢弃
RateLimitInterval=30s 
#与 RateLimitInterval 配合使用
RateLimitBurst=100000

#限制全部日志文件加在一起最多可以占用多少空间,默认值是10%空间与4G空间两者中的较小者
SystemMaxUse=64G 
#默认值是15%空间与4G空间两者中的较大者
SystemKeepFree=1G 

#单个日志文件的大小限制,超过此限制将触发滚动保存
SystemMaxFileSize=128M 

#日志滚动的最大时间间隔,若不设置则完全以大小限制为准
MaxFileSec=1day
#日志最大保留时间,超过时限的旧日志将被删除
MaxRetentionSec=100year 

#是否转发符合条件的日志记录到本机的其它日志管理系统,如:rsyslog
ForwardToSyslog=yes 
ForwardToKMsg=no
#是否转发符合条件的日志到所有登陆用户的终端
ForwardToWall=yes 
MaxLevelStore=debug 
MaxLevelSyslog=err 
MaxLevelWall=emerg 
ForwardToConsole=no 
#TTYPath=/dev/console
#MaxLevelConsole=info
#MaxLevelKMsg=notice

3. 创建目录,设置权限

mkdir /var/log/journal
chmod 775 /var/log/journal

systemctl restart systemd-journald

启动 docker 容器就可以在 /var/log/journal 生成了对应的日志文件

日志查看工具 journalctl 的用法:

journalctl
    -u/--unit=docker.service \ #可以多次使用该选项,按 OR 逻辑筛选显示
    -o/--output=export \ #指定显示格式,常用三种: export、json-pretty、cat    
    -r/--reverse \ #反向显示,即较新的日志显示在最上面
    --no-pager \ #不要使用 less 或 more 分页显示
    -f/--follow \ #类似 tail -f 效果
    --flush \ #将内存中日志同步到磁盘
    -D/--directory=DIR \ #指定读取日志的路径
    --file=zLogFilePath \ #同上,指定具体文件路径,可同时使用多次指定多个文件
    --priority= "emerg" (或 0), "alert" (1), "crit" (2), "err" (3), "warning" (4), "notice" (5), "info" (6), "debug" (7) \ #指定要显示的日志等级
    --since= "2012-10-30 18:17:16" \
    --until= "2017-10-30 18:17:16" \
    --disk-usage \ #显示所有日志占用的磁盘空间
#export 格式显示的特定进程的标识字段均可以用作筛选,例如:
    CONTAINER_ID= \ #以指定容器 ID 为标识显示日志
    CONTAINER_NAME= \ #同上,指定容器名称
    _PID= \ #以容器进程 ID 为标识显示日志
    _UID= \ #显示以某个用户 ID 身份运行的所有容器日志

你可能感兴趣的:(docker log 配置)