关键在于将space_left_action、admin_space_left_action和disk_full_action设为syslog、email或suspend等非halt动作,并配置max_log_file、num_logs等参数控制日志增长,重启auditd后验证生效。

要让 auditd 在磁盘空间不足时发出告警而不是直接关机,关键在于避免将 space_left_action、admin_space_left_action 或 disk_full_action 设为 halt,改用更安全的响应动作,并配合合理的阈值设置。
明确区分三类空间阈值与对应动作
auditd 通过三个参数协同判断磁盘状态,各自职责不同:
-
space_left:常规预警线(例如
500表示剩余 500MB),触发space_left_action -
admin_space_left:紧急保留线(例如
100),触发admin_space_left_action,应留出足够空间供管理员介入 - disk_full_action:磁盘真正写满时的兜底动作,不建议设为 halt
推荐动作配置:用 SYSLOG 或 email 替代 SUSPEND/HALT
除非有强合规要求必须暂停审计,否则优先选择可追溯、不中断服务的动作:
-
space_left_action = SYSLOG:记录警告到/var/log/messages或 journal,便于监控系统捕获 -
admin_space_left_action = EMAIL:需提前配置action_mail_acct = admin@example.com和邮件服务(如 ssmtp 或 mailx) -
disk_full_action = SUSPEND:比 HALT 温和,暂停写日志但不关机;若追求更高可用性,也可设为IGNORE(需确保有外部轮转或清理机制)
配套优化:防止日志本身加剧空间压力
仅改动作不够,还需控制日志增长节奏,避免反复触发告警:
-
max_log_file = 100:单个日志限制为 100MB,避免大文件卡住轮转 -
num_logs = 10:最多保留 10 个历史文件,旧日志自动删除 -
max_log_file_action = ROTATE:强制轮转,禁用 IGNORE -
log_file = /var/log/audit/audit.log:确认路径不在根分区紧张区域(必要时可挂载独立小分区)
验证与生效
修改完 /etc/audit/auditd.conf 后执行:
-
sudo systemctl restart auditd:重启使配置生效 -
sudo auditctl -s | grep -E "(space|admin|disk)":检查运行时参数是否加载正确 - 手动腾空部分空间后观察
journalctl -u auditd是否出现预期 SYSLOG 提示










