1. 检查日志文件大小与磁盘使用情况
首先确认日志文件的大小以及磁盘使用情况。
# 查看日志文件大小
ls -lh /var/log/audit/
# 检查磁盘使用情况
df -h
如果日志文件过大或磁盘空间不足,需要清理日志。
2. 启用日志轮换机制
通过 logrotate
管理日志文件,定期压缩和删除旧日志。
# 编辑 logrotate 配置文件
sudo nano /etc/logrotate.d/audit
添加以下内容:
/var/log/audit/audit.log {
daily
rotate 7
compress
missingok
notifempty
create 0640 root root
sharedscripts
postrotate
/bin/killall -USR1 auditd 2>/dev/null || true
endscript
}
daily
:每天轮换一次日志。rotate 7
:保留最近 7 天的日志。compress
:压缩旧日志以节省空间。
保存后测试配置:
sudo logrotate -d /etc/logrotate.d/audit
3. 手动清理旧日志
如果磁盘空间紧急,可以手动清理旧日志文件。
# 示例:删除超过 30 天的日志
sudo find /var/log/audit/ -type f -mtime +30 -exec rm {} \;
# 示例:清空当前日志文件
sudo truncate -s 0 /var/log/audit/audit.log
注意:手动清理前需确认日志已备份或不再需要。
4. 调整日志存储策略
根据需求调整日志存储策略,避免日志文件过大。
-
限制单个日志文件大小
修改auditd
配置文件/etc/audit/auditd.conf
:max_log_file = 10 # 单个日志文件最大大小(单位:MB) num_logs = 5 # 保留的日志文件数量 max_log_file_action = ROTATE # 达到最大大小时轮换日志
保存后重启服务:
sudo systemctl restart auditd
-
集中式日志管理
将日志发送到远程服务器或云存储,减少本地存储压力:# 示例:配置 rsyslog 发送日志到远程服务器 sudo nano /etc/rsyslog.conf
添加以下内容:
*.* @log-server:514
保存后重启服务:
sudo systemctl restart rsyslog
5. 监控磁盘空间
设置磁盘空间监控机制,及时发现并处理空间不足问题。
# 示例:使用 df 命令监控磁盘空间
df -h | awk '$5 > 80 {print "磁盘空间不足"}'
# 示例:设置定时任务发送告警
crontab -e
添加以下内容:
0 * * * * df -h | awk '$5 > 80 {print "磁盘空间不足"}' | mail -s "磁盘告警" admin@example.com
6. 防止误删重要日志
在清理日志时,确保不会误删重要数据。
-
备份后再清理
在删除日志前,先将日志备份到其他位置:sudo tar -czf /backup/audit_logs_$(date +%F).tar.gz /var/log/audit/
-
设置文件保护属性
对重要日志文件设置不可更改属性:sudo chattr +i /var/log/audit/audit.log
7. 查看日志排查问题
如果清理后仍存在问题,可以通过日志排查原因。
# 查看系统日志
journalctl -xe | grep audit
# 查看 logrotate 日志
cat /var/log/syslog | grep logrotate
根据日志中的错误信息,采取相应措施。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容