logrotate
logrotate
是linux自带的一个日志轮转工具,可以自动对日志进行截断(或轮循)、压缩以及删除旧的日志文件。如:配置/var/log/nginx.log
每周轮询并删除3周前的日志.
logrotate配置
logrotate
默认配置文件:/etc/logrotate.conf
需求:配置对docker容器日志轮询
# 进入到/etc/logrotate.d/目录下,该目录下有logrotate默认配置的一些规则
# 创建一个新的文件container
# 配置规则,更多规则可以自行搜索
/var/lib/docker/containers/*/*-json.log
{
create 644 root root
missingok
weekly
copytruncate
rotate 3
size=100M
notifempty
}
限制docker容器日志大小的方式不仅仅只有logrotate方式,此处仅以容器日志为例.
测试
# debug模式测试配置文件
logrotate -d /etc/logrotate.d/xxxxx
# 手动运行
logrotate -f /etc/logrotate.d/xxxxx
限制docker容器日志
- 统一限制
# 修改docker配置:vim /etc/docker/daemon.json
{
"log-driver":"json-file",
"log-opts": {"max-size":"500m", "max-file":"3"}
}
# 重启
systemctl daemon-reload
systemctl restart docker
- 单独限制
docker run --name test --log-opt max-size=100m --log-opt max-file=2 -d nginx