首页/安全/安全加固速查/日志轮转与留存现状核查

日志轮转与留存现状核查

看近期轮转产物(.gz/.1)与三处留存配置:一个月没有任何轮转产物的系统,留存期多半不达标。

安全加固速查安全更新于 2026-10-13

用产物反查留存现状

判断日志留存是否达标,最快的办法是看轮转产物:近 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 验证效果
  • 留存要求高的系统同时配置远端集中存储,避免本地容量成为瓶颈
磁盘写满会导致日志服务写入失败甚至业务异常:容量巡检要设告警阈值,而不是等到出问题才处理。

易错点

  • 只看有没有 .gz 文件:未压缩的轮转文件被漏掉,结论偏差
  • 只配置不验证:logrotate 配置语法错误时静默不生效,需要手动触发验证
  • 容量只算根分区:日志独立分区写满后,根分区看起来仍很空闲
  • 留存期与轮转参数不一致:报告写保留 180 天,配置实际只留 7 份

数据来源与参考

  • 等保 2.0:日志留存
  • CIS Linux Benchmark:日志轮转

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌