首页/安全/等保与合规速查/整改实操:用 logrotate 把日志留满 180 天
测评与整改57 条

整改实操:用 logrotate 把日志留满 180 天

通过 logrotate 轮转份数与周期组合实现留存:按周轮转保留 30 份约 210 天,配合集中存储形成双保险。

等保与合规速查安全更新于 2026-10-13

这项整改解决什么

日志留存不足通常不是没开日志,而是轮转策略把旧记录覆盖了。logrotate 通过「轮转周期 × 保留份数」决定实际留存天数:按周轮转保留 30 份约等于 210 天,按天轮转保留 30 份只有 30 天。所以整改的第一件事是算清这两个参数的乘积,第二件事是确认磁盘放得下,第三件事是用集中存储做双保险。

logrotate 配置示例

logrotate 配置示例
# /etc/logrotate.d/secure
/var/log/secure {
    weekly
    rotate 30
    compress
    delaycompress
    missingok
    notifempty
    create 0600 root root
}
# 日志量大的系统建议加 maxsize,避免单文件无限制增长
# maxsize 200M

校验与执行

校验与执行
# 语法与行为演练(不实际轮转)
logrotate -d /etc/logrotate.d/secure
# 强制轮转一次,确认新文件与压缩文件都正常
logrotate -f /etc/logrotate.d/secure
# 查看轮转结果与文件权限
ls -l /var/log/secure* | head
# 按天轮转的系统可改用 daily + rotate 180

基本信息

适用平台Linux(logrotate 为各发行版标配)
配置路径/etc/logrotate.conf 与 /etc/logrotate.d/ 下的片段
留存计算轮转周期 × 保留份数;按周 30 份约 210 天
权限要求root
磁盘核算日均写入量乘以留存天数,再留增长余量

配套要做的三件事

  • 容量估算:按每日写入量推算留存期所需空间,避免整改后写满磁盘
  • 集中转发:本机轮转加集中平台留存,形成双保险,本机只做短期缓冲
  • 验证方法:用日志检索命令抽查三十天前的记录仍可命中
  • 权限收紧:日志文件仅审计相关账号可读,普通运维不可删改
  • 告警兜底:磁盘水位与转发链路状态都要有告警

典型使用场景

  • 测评整改:审计记录保护与留存条款的常规落地动作
  • 合规留存:满足相关法规对网络日志不少于六个月的要求
  • 故障排查:保留足够长的历史,便于回溯偶发问题
  • 安全事件溯源:日志期覆盖事件发生前的观察窗口
delaycompress 会让最近一份轮转文件保持未压缩状态,方便排查问题时直接阅读;缺点是占用稍多空间,按需取舍。
不同日志目录的轮转策略要分别核对:只改了安全日志,应用日志仍按天轮转保留数份,整体留存依然不达标。

易错点

  • 保留份数与轮转周期不匹配:按日轮转保留 30 份实际只有 30 天
  • 忘了日志文件权限设置:日志含敏感信息却全局可读
  • 只改策略不核算磁盘容量:留存期一到磁盘写满,采集整体中断
  • 只覆盖单一类日志:应用、数据库与设备日志的留存周期仍不足

数据来源与参考

  • man 8 logrotate、man 5 logrotate.conf
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌