Debian系统日志清理与保留的最佳实践
一 核心原则
二 标准做法
journalctl --disk-usagejournalctl --vacuum-time=7d(示例保留最近 7 天)journalctl --vacuum-size=500M(示例保留最多 500MB)sudo mkdir -p /var/log/journalSystemMaxUse=1G、SystemKeepFree=1G、MaxRetentionSec=1monthsudo systemctl daemon-reload && sudo systemctl restart systemd-journaldrotate 7、daily、compress、delaycompress、missingok、notifempty、create 640 root adm/var/log/nginx/*.log { daily; rotate 7; compress; delaycompress; missingok; notifempty; create 640 root adm; postrotate /usr/sbin/service nginx reload >/dev/null; endscript }sudo logrotate -f /etc/logrotate.d/nginxtail -f /var/log/syslog、journalctl -f、journalctl -u nginx.service三 推荐保留策略与示例配置
| 日志类型 | 建议保留期 | 建议策略 | 示例与说明 |
|---|---|---|---|
| systemd journal | 7–30 天 | 容量上限 + 时间上限 | SystemMaxUse=1G、MaxRetentionSec=1month;紧急释放用 --vacuum-size/--vacuum-time |
| /var/log 文本日志(syslog、auth.log、kern.log 等) | 7–14 天 | 每日轮转、压缩、保留 7–14 份 | 全局 daily; rotate 14; compress; delaycompress; missingok; notifempty; create 640 root adm |
| 高吞吐服务日志(如 nginx、应用) | 7 天 | 按日轮转、压缩、按需保留更少 | /var/log/nginx/*.log { daily; rotate 7; compress; delaycompress; missingok; notifempty; create 640 root adm; postrotate reload; } |
| 审计/安全相关日志(auth.log) | ≥30 天 | 尽量延长保留并集中备份 | 结合远程日志与离线归档,满足合规与取证需求 |
说明:保留期应结合磁盘容量、合规要求与故障排查需要综合确定;对高价值审计日志优先做远程集中与脱敏。
四 安全与合规建议
五 排错与应急
df -h 查看分区占用;du -h /var/log | sort -hr | head 找出大文件;journalctl --disk-usage 检查 journal 用量。sudo journalctl --vacuum-time=2d 或 sudo journalctl --vacuum-size=500M;必要时先 sudo journalctl --rotate 再清理。sudo systemctl daemon-reload && sudo systemctl restart systemd-journald;sudo logrotate -f /etc/logrotate.d/<config> 并确认服务 reload 成功。rm -rf /var/log/* 这类无差别删除;删除前确认日志已备份/归档且不再需要。