如何让 Ossec 感知 logrotate

如何让 Ossec 感知 logrotate

我在我的几台服务器上以监视器/代理配置安装了 Ossec。一切运行良好。

唯一令我烦恼的是,在 logrotate 轮换我所观察的日志后,我不断收到警报。

现在我的邮箱里堆满了 Rule: 550 fired (level 7) -> "Integrity checksum changed."邮件,信噪比下降了。如果一天收到十几个误报,我怕我不会仔细看那些警报。

我该如何处理这种情况?我如何让 ossec 知道日志轮换,这样它就不会每次发生这种情况时都给我发邮件?

答案1

您可以创建另一条 OSSEC 规则,以响应 550。假设您的 logrotate 每周二午夜滚动日志。根据OSSEC 规则语法,您可以指定“时间”和“工作日”标签以将 logrotate 列入白名单。因此,如果该规则在当天和时间触发,我们将禁用电子邮件并将其降级为 2 级。

当然,这假设日志轮换是实际执行移动的程序。您可以进一步扩展它以自定义报告。例如,如果白名单规则在 10 分钟内触发多次,则升级到 14 级(logrotate 在做什么?)。

答案2

在您的本地规则.xml文件。

<rule id="550" level="7" overwrite="yes"> <category>ossec</category> <decoded_as>syscheck_integrity_changed</decoded_as> <hostname>your_server_name</hostname> <match>logrotate</match> <options>no_email_alert</options> <description>No email alerts for Integrity checksum changed for logrotate.</description> <group>syscheck,</group> </rule>

OSSEC 将研究本地规则.xml在查看其他规则之前,它会首先应用该<options>no_email_alert</options>指令,但仅适用于<hostname>指令中定义的主机/服务器,以及与logrotate警报中的关键字匹配的主机/服务器。

相关内容