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以查找恶意活动,而其他日志文件保持"干净".
我很欣赏这里提供的研究,展示了如何有选择地禁用 rsyslog 消息减少。然而,我认为重要的是要认识到存在支持完全禁用归约的论点。
\n\n背景:
\n\nSyslog 的MARK工具旨在通过定期记录条目来提供 syslog(并推断服务器本身)正在运行的证据:
\n\nSep 5 11:41:28 servername rsyslogd: -- MARK --
我提出这个问题是因为消息减少通过聚合我的标记消息违背了MARK的目的:
\n\nSep 5 12:33:46 servername rsyslogd: message repeated 48 times: [-- MARK --]
即,上述消息代替48条周期性消息被记录,从而使它们作为跟踪信息的效用无效。
\n\n分析:
\n\n因此,最初我计划仅对MARK消息禁用缩减。然而,读完这篇文章后,我倾向于完全关闭RepeatedMsgReduction:
\n\n\n\n\n\n
\n- \n
虽然打开此功能可以节省一些日志空间,但大多数日志分析工具都需要查看重复的消息,它们可以\xe2\x80\x99t处理\n \xe2\x80\x9clast消息重复\xe2\x80\x9d格式。
- \n
这是几十年前的一个功能,当时日志很小并且由人工审核,但在工具处理的大量日志上它会严重失败。
结论:
\n\n我建议简单地禁用减少。为什么?现在磁盘空间很便宜,我们越来越依赖像fail2ban这样的自动化工具这样的自动化工具,减少配置的好处被配置复杂性和信息丢失的成本所抵消。
\n