0%

logrotate配置与使用

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容器日志

  1. 统一限制
# 修改docker配置:vim /etc/docker/daemon.json
{
  "log-driver":"json-file",
  "log-opts": {"max-size":"500m", "max-file":"3"}
}
# 重启
systemctl daemon-reload
systemctl restart docker
  1. 单独限制
docker run --name test --log-opt max-size=100m --log-opt max-file=2 -d nginx