Linux审计日志需用logrotate按大小轮转并发送USR1信号通知auditd,配合compress、rsync备份及磁盘告警,实现合规留存与系统稳定。

Linux 审计日志(通常由 auditd 服务生成,主日志路径为 /var/log/audit/audit.log)容易因高频安全事件快速膨胀,若不干预,几天内就可能占满磁盘。管理它的核心不是“关日志”,而是用 logrotate 实现可控轮转+可靠备份——既满足合规留存要求,又避免服务中断或空间耗尽。
确认 auditd 日志路径与当前状态
先查清楚实际写入位置和权限:
sudo ls -l /var/log/audit/ # 通常看到 audit.log,有时还有 audit.log.1、audit.log.2.gz 等 sudo auditctl -s | grep "enabled" # 确保 auditd 正在运行
注意:auditd 不像 rsyslog 那样自动重开文件句柄,轮转后必须显式通知它切换日志,否则新日志仍写入旧文件(句柄未释放)。
为 audit.log 单独配置 logrotate 规则
不要改全局配置,直接在 /etc/logrotate.d/ 下新建专用文件:
sudo nano /etc/logrotate.d/auditd
填入以下内容(按大小优先,兼顾保留周期):
/var/log/audit/audit.log {
size 100M
rotate 12
compress
delaycompress
missingok
notifempty
create 0600 root root
sharedscripts
postrotate
/bin/systemctl kill --signal=USR1 auditd 2>/dev/null || true
endscript
}关键点说明:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
-
size 100M:日志一超过 100MB 就立即轮转,比daily更防突发爆涨 -
rotate 12:保留最近 12 个归档(含压缩后的.gz),约覆盖 1–2 个月高频审计数据 -
create 0600 root root:新日志严格权限,防止非 root 读取敏感审计内容 -
sharedscripts+postrotate:确保整个轮转完成后只执行一次通知,用USR1信号让auditd关闭旧句柄、打开新文件
验证配置是否生效
分两步检查:
- 语法测试(不改动文件):
sudo logrotate -d /etc/logrotate.d/auditd
看输出里是否有
rotating log /var/log/audit/audit.log及running postrotate script。 - 强制触发一次(观察实际行为):
sudo logrotate -f /etc/logrotate.d/auditd ls -lh /var/log/audit/ # 应看到 audit.log 变小,新增 audit.log.1(可能带 .gz 后缀) sudo systemctl status auditd # 确认服务仍在运行,无报错
备份审计日志到外部位置(可选但推荐)
仅本地轮转不够应对误删或磁盘故障。可在 postrotate 中追加同步逻辑:
postrotate
/bin/systemctl kill --signal=USR1 auditd 2>/dev/null || true
# 示例:推送到 NFS 或 rsync 到备份服务器
/usr/bin/rsync -a --delete /var/log/audit/ user@backup-server:/backups/audit/ 2>/dev/null || true
endscript注意:确保 rsync 能免密登录,且目标路径有足够空间;生产环境建议加时间戳或校验机制。
日常监控与兜底防护
- 设置简单告警:
# 加入 crontab 每小时检查一次 0 * * * * find /var/log/audit/ -name "audit.log" -size +500M -exec echo "ALERT: audit.log >500M" | logger \;
- 若磁盘已满,临时缓解:
sudo truncate -s 0 /var/log/audit/audit.log # 清空当前日志(慎用,会丢失未轮转数据) sudo systemctl restart auditd # 重启服务重建日志
审计日志的管理本质是平衡安全合规与系统可用性。配对 size 触发、USR1 通知、compress 存储和 rsync 备份,四步到位,就能让 audit.log 始终处于可控状态。

















