网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
当日志中频繁出现“audit: printk limit exceeded”的告警信息时,这通常意味着系统的审计(audit)子系统生成的日志消息数量过多,超过了内核日志缓冲区的限制。这可能是由于系统上的某些活动触发了大量的审计事件,例如大量的文件访问、网络请求或其他系统调用。以下是一些处理这个问题的步骤:
1. 查看当前审计规则:
使用`auditctl -l`命令查看当前设置的审计规则。了解哪些类型的系统调用或事件被审计可以帮助你定位问题的根源。
2. 调整审计日志的缓冲区大小:
如果你确定需要审计这些事件,但缓冲区太小,可以尝试增加审计日志的缓冲区大小。这可以通过修改`/etc/audit/auditd.conf`文件中的`log_file_max_size`和`space_left_action`等参数来实现。然而,请注意,这可能会增加系统内存的使用量。
3. 优化或删除不必要的审计规则:
如果某些审计规则对于你的系统来说不是必需的,考虑删除它们。使用`auditctl -D`可以删除所有审计规则,但请谨慎使用,因为它会移除所有现有的规则。更具体地,你可以使用`auditctl -d
4. 查看和清除旧的审计日志:
使用`ausearch`、`aureport`等工具来查看审计日志,并确定是否有可以清除的旧日志数据。你可以使用`augenrules --delete`命令来删除所有旧的审计日志。
5. 调整日志级别:
如果可能,尝试调整审计日志的级别,以便仅记录重要的或感兴趣的事件。虽然审计系统本身可能不直接支持日志级别的调整,但你可以通过修改审计规则来减少日志的生成量。
6. 监控和调优系统性能:
如果这个问题是由系统性能问题(如CPU过载、磁盘I/O瓶颈等)引起的,那么解决这些问题可能会减少审计日志的生成量。使用系统监控工具(如`top`、`htop`、`vmstat`、`iostat`等)来检查系统的性能指标。
7. 升级或修补审计系统:
如果你正在使用的审计系统(如auditd)存在已知的漏洞或问题,考虑升级到最新版本或应用可用的补丁。
8. 联系支持:
如果你尝试了上述所有步骤但问题仍未解决,可能需要联系你的系统管理员或供应商以获取进一步的帮助。
通过这些步骤,你应该能够诊断并解决“audit: printk limit exceeded”的告警信息问题。
解决办法
1.可以尝试增大 audit buffer 来解决该问题。
Linux 默认内存分页大小为 4096 Bytes,通过下面命令可以获取分页大小:getconf PAGE_SIZE,可以设置为分页的N倍数
查看帮助信息
auditctl -h
查看当前默认配置
auditctl -s
backlog_limit 320 #我Centos7.1默认只为320
优化audit服务修改buffer大小
auditctl -b 8192
如果不设置系统默认为64Bytes
设置永久生效:
方法1)修改规则配置
vim /etc/audit/audit.rules
-D
-b 8192
-f 1
参数说明:
-D 删除所有规则
-b 设置audit缓冲大小,若缓冲占满了,则kernel会发出一个失败标记
-f [0|1|2] 设置audit获取错误的等级。有0/1/2三个值。0是不输出日志;1为输出printk日志;2为最高级、会输出大量日志信息
-e [0|1] 启用/禁用audit审核
2.
也可以直接在自启动中设置
chmod u+x /etc/rc.d/rc.local
vim /etc/rc.d/rc.local
auditctl -b 8192
添加我为好友,拉您入交流群!
请使用微信扫一扫!