审计日志留存是做什么的
auditd 把内核审计事件写入 /var/log/audit/audit.log,合规场景通常要求留存不少于六个月。本地留存能力由 /etc/audit/auditd.conf 的轮转参数决定:单文件上限乘保留份数就是本机最大容量,容量不足时按 space_left_action 触发告警动作。仅靠单机轮转很难满足长期与异地要求,工程上还要叠加远程日志服务器集中留存,改完用 auditctl -s 与实际日志目录双向验证。
基本信息
| 配置文件 | /etc/audit/auditd.conf |
|---|---|
| 日志目录 | /var/log/audit/audit.log 及轮转文件 |
| 容量公式 | max_log_file(MB) × num_logs(份数) |
| 生效方式 | systemctl restart auditd(部分发行版限制后改用 service auditd restart) |
| 远程留存 | rsyslog 等转发到集中日志服务器 |
典型使用场景
- 等保与行业测评要求审计日志留存至少六个月,上线前先算容量再定轮转参数
- 审计日志快速增长导致根分区告警:调整单文件上限与保留份数,或改目录到独立分区
- 事件追溯时确认日志是否完整:核对轮转文件序列与时间范围是否有断档
- 设计集中留存方案:把审计事件转发到日志服务器,避免终端重装或磁盘损坏后证据丢失
- 排查留存量不足:用 auditctl -s 确认运行态参数与配置文件是否一致
- 变更管理:修改保留策略前评估会立即触发的历史清理动作
容量与轮转配置
容量与轮转配置
# /etc/audit/auditd.conf
# max_log_file = 200 # 单个日志文件上限,单位 MB
# num_logs = 10 # 保留的轮转份数,含当前文件
# max_log_file_action = rotate # 到达上限时轮转而非直接丢弃
# space_left_action = syslog # 磁盘空间不足时的告警动作
systemctl restart auditd # 使配置生效
systemctl status auditd --no-pager | head
auditctl -s # 查看运行态状态与参数
ls -lh /var/log/audit/ # 观察轮转文件数量与体积
du -sh /var/log/audit/ # 核对实际占用是否符合容量规划关键参数读法
| 参数 | 含义 | 设置要点 |
|---|---|---|
| max_log_file | 单个 audit.log 上限(MB) | 过大不便归档,过小导致频繁轮转 |
| num_logs | 保留的轮转份数 | 调小会立即清理最旧日志 |
| max_log_file_action | 到达上限的动作 | rotate 保留历史,syslog 仅告警 |
| space_left_action | 空间不足时的动作 | 常用 syslog 或 email 提前预警 |
| admin_space_left_action | 剩余空间危险阈值动作 | 可设 halt 但需评估业务影响 |
单机保留量等于单文件上限乘保留份数,先按「每日日志量 × 留存天数」估算所需容量,再据此设置参数,避免上线后要么被写满磁盘、要么留存不足。
num_logs 调小会立即触发最旧日志清理,在合规审计场景属于重要变更,操作前确认留存要求并留存本次变更记录;只配本机留存不能满足异地保存要求时,需配套集中日志服务器。