rsyslog条件RepeatedMsgReduction

Pet*_*ter 7 configuration postfix-mta rsyslog

我需要在Linux服务器上停用RepeatedMsgReduction,以允许fail2ban评估每次失败的登录尝试.(参见此错误报告:http://bugs.debian.org/cgi-bin/bugreport.cgi? bug = 440037)

由于我不想充斥我的日志文件,我希望仅在那些fail2ban扫描的日志文件上具有该功能,尤其是mail.warn.

有没有办法在rsyslog.conf中设置条件规则/过滤器来设置

$RepeatedMsgReduction = off
Run Code Online (Sandbox Code Playgroud)

如果邮件绑定到mail.warn?

Pet*_*ter 11

好的,一次又一次地阅读手册和文档现在让我找到了解决方案:

阅读http://www.rsyslog.com/doc/rsconf1_repeatedmsgreduction.html告诉你,该指令

$RepeatedMsgReduction off
Run Code Online (Sandbox Code Playgroud)

在指定下一个指令之前保持有效.

这意味着,如果您想要mail.warn的所有消息,但希望减少所有其他消息(mail.info和mail.err),请将配置更改为这样(假设消息减少全局打开):

mail.info                       -/var/log/mail.info
$RepeatedMsgReduction off
mail.warn                       -/var/log/mail.warn
$RepeatedMsgReduction on
mail.err                        /var/log/mail.err
Run Code Online (Sandbox Code Playgroud)

有了这个,mail.warn将包含所有记录的消息,而其他日志级别(和文件)将包含着名的"最后消息重复n次"行.这允许例如fail2ban检查mail.warn以查找恶意活动,而其他日志文件保持"干净".


COD*_*EaD 5

我很欣赏这里提供的研究,展示了如何有选择地禁用 rsyslog 消息减少。然而,我认为重要的是要认识到存在支持完全禁用归约的论点。

\n\n

背景:

\n\n

Syslog 的MARK工具旨在通过定期记录条目来提供 syslog(并推断服务器本身)正在运行的证据:

\n\n

Sep 5 11:41:28 servername rsyslogd: -- MARK --

\n\n

我提出这个问题是因为消息减少通过聚合我的标记消息违背了MARK的目的:

\n\n

Sep 5 12:33:46 servername rsyslogd: message repeated 48 times: [-- MARK --]

\n\n

即,上述消息代替48条周期性消息被记录,从而使它们作为跟踪信息的效用无效。

\n\n

分析:

\n\n

因此,最初我计划仅对MARK消息禁用缩减。然而,读完这篇文章后,我倾向于完全关闭RepeatedMsgReduction

\n\n
\n
    \n
  • 虽然打开此功能可以节省一些日志空间,但大多数日志分析工具都需要查看重复的消息,它们可以\xe2\x80\x99t处理\n \xe2\x80\x9clast消息重复\xe2\x80\x9d格式。

  • \n
  • 这是几十年前的一个功能,当时日志很小并且由人工审核,但在工具处理的大量日志上它会严重失败。

  • \n
\n
\n\n

结论:

\n\n

我建议简单地禁用减少。为什么?现在磁盘空间很便宜,我们越来越依赖像fail2ban这样的自动化工具这样的自动化工具,减少配置的好处被配置复杂性和信息丢失的成本所抵消。

\n