如何判断auditd是否暂停了日志logging?

如果将以下内容放在auditd.conf ,则当磁盘上有50MB或更less空间时, auditd将挂起日志logging:

 admin_space_left = 50 admin_space_left_action = SUSPEND 

外部程序如monit check如何知道auditd是否已经达到这个挂起状态?

(我意识到,你也可以使用EXEC行动来做auditd暂停日志,但不符合我的目的。

在一个CentOS系统上,我必须提交,当满足各种磁盘空间限制时,应该怎么办?

 space_left = 75 space_left_action = SYSLOG admin_space_left = 74 admin_space_left_action = SUSPEND 

这会导致将此消息发布到系统日志,当审计日志分区上的可用空间低于75MB时

5月21日08:53:01 c6test auditd [5851]:审核守护程序的磁盘空间不足以进行日志logging

类似地,当空间低于74MB时,这个消息被发给syslog

5月21日08:54:01 c6test auditd [5851]:由于磁盘空间不足,审核守护进程正在挂起日志logging。

所以要回答你的问题,它会向syslog写入一条消息,然后发现它进入你的系统日志,monit可以被configuration为查找它。

实际的信息是什么,它被写入的日志文件可能依赖于操作系统和/或发行版。

查看源代码(版本2.6.7),没有办法检索当前的“暂停”状态,除了将debugging器附加到进程并使其转储logging_suspended内部variables的值。

您可以发送testing消息,并检查它是否被logging。 这样,你会检查暂停的状况,但也阻止任何事情的发生。 也就是说,你会validation它一直工作正常。

 msg="audit test $(uuidgen)" || exit # generate unique message auditctl -m "$msg" || exit # send the unique message sleep 1 # enough time for the message to be logged ausearch -ts recent -m USER | grep -Fqe "$msg" && echo OK