Linux 日志占用过大,通常是由日志产生过多、未轮转、配置不当或异常程序导致的。下面从常见原因到排查方法系统说明。
logrotate 未配置或配置错误cron / systemd timer 没跑)常见于:
/var/log/messages/var/log/syslog示例:
ERROR ...
ERROR ...
ERROR ...(每秒几百条)
rsyslog / journald 配置过于详细debug 级别日志systemd-journald 未限制大小/var/log/journal 可能占用十几 GB:
原因:
SystemMaxUseDocker 默认 不限制日志大小:
/var/lib/docker/containers/*/*-json.log
可能单个容器日志几 GB。
du -sh /var/log/*
journalctl --disk-usage
find /var/log -type f -size +100M
du -sh /var/lib/docker/containers/*
journalctl --vacuum-size=500M
或修改:
# /etc/systemd/journald.conf
SystemMaxUse=500M
然后:
systemctl restart systemd-journald
/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
delaycompress
sharedscripts
postrotate
systemctl reload nginx
endscript
}
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
*.*error_log warn;Linux 日志过大,本质是**“写得太多 + 没轮转 + 没限制”**。
如果你愿意,可以告诉我:
我可以帮你精准定位并给出配置方案。