用产物反查留存现状
判断日志留存是否达标,最快的办法是看轮转产物:近 30 天是否存在 .gz 或 .1 之类的历史文件,以及配置里保留的份数与大小上限是否合理。一个月都没有任何轮转产物的系统,留存期基本不达标——要么日志量太小、要么轮转没在工作。核查要“产物 + 配置”两条一起看,缺一条都不能作为结论。
基本信息
| 适用平台 | Linux(logrotate、auditd、rsyslog) |
|---|---|
| 轮转配置 | /etc/logrotate.conf 与 /etc/logrotate.d/* |
| 审计配置 | /etc/audit/auditd.conf 的 num_logs、max_log_file、max_log_file_action |
| 判读 | 近 30 天有轮转产物且保留份数满足留存要求 |
| 风险等级 | 中 |
典型使用场景
- 合规核查:日志留存期是审计必查项
- 容量治理:日志目录占用异常增长时定位原因
- 故障排查:需要历史日志时确认是否还在
- 变更前评估:调整轮转策略前先记录现状
- 证据准备:为安全事件复盘确认可回溯的时间范围
核查命令
核查命令
du -sh /var/log 2>/dev/null
find /var/log -maxdepth 2 -name '*.gz' -mtime -30 2>/dev/null | head -10
ls -lt /var/log/ | head -15
ls -l /var/log/messages.1 /var/log/secure.1 2>/dev/null # 未压缩轮转文件也要看
grep -E 'num_logs|max_log_file|max_log_file_action' /etc/audit/auditd.conf 2>/dev/null
grep -E 'rotate|maxage|size|daily|weekly' /etc/logrotate.d/* 2>/dev/null | head -20核查项读法
| 核查项 | 含义 | 异常表现 |
|---|---|---|
| *.gz 近 30 天数量 | 是否有轮转在发生 | 为零说明可能未轮转或留存极短 |
| rotate 份数 | 保留的历史文件份数 | 过小则留存期不足 |
| maxage | 按天数删除旧日志 | 与留存要求冲突时需调整 |
| auditd num_logs | 审计日志保留份数 | 过小会导致审计记录过快消失 |
| 目录占用 | 当前磁盘使用量 | 异常增长需排查来源 |
抽查口径统一:轮转产物存在加上配置项合理,两条一起写结论;缺任何一条都不能判定留存达标。
落地要点
- 未压缩的轮转文件(如 .1)不会被 *.gz 匹配,需单独查看
- 日志目录若挂载独立分区,容量核对要针对该分区而不是根分区
- 把留存期要求与 rotate、maxage、num_logs 参数对齐后再定稿
- 轮转策略变更后手动触发一次 rotate -f 验证效果
- 留存要求高的系统同时配置远端集中存储,避免本地容量成为瓶颈
磁盘写满会导致日志服务写入失败甚至业务异常:容量巡检要设告警阈值,而不是等到出问题才处理。