【问题标题】:rsyslog conditional RepeatedMsgReductionrsyslog 条件 RepeatedMsgReduction
【发布时间】:2013-12-30 19:41:14
【问题描述】:

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

由于我不想淹没我的日志文件,我希望仅在那些失败 2ban 扫描的日志文件上使用该功能,尤其是 mail.warn。

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

$RepeatedMsgReduction = off

消息是否绑定到 mail.warn?

【问题讨论】:

    标签: configuration postfix-mta rsyslog


    【解决方案1】:

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

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

    $RepeatedMsgReduction off
    

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

    这意味着,如果您想要 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
    

    这样,mail.warn 将包含所有记录的消息,而其他日志级别(和文件)将包含著名的“最后一条消息重复 n 次”行。这允许例如fail2ban 检查 mail.warn 是否有恶意活动,而其他日志文件保持“干净”。

    【讨论】:

      【解决方案2】:

      感谢here 提供的研究,该研究展示了如何选择性地禁用 rsyslog 消息缩减。但是,我认为重要的是要认识到有支持完全禁用缩减的论据。

      背景:

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

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

      我来这个 SO 问题是因为消息减少通过聚合我的标记消息来破坏 MARK 的目的:

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

      即,上述消息被记录在 48 条定期消息中代替,使其作为跟踪信息的效用无效。

      分析:

      因此,我最初计划仅对 MARK 消息禁用缩减功能。然而,在阅读了this article 之后,我倾向于完全关闭 RepeatedMsgReduction

      • 虽然开启此功能可以节省一些日志空间,但大多数日志分析工具需要查看重复消息,无法处理 “最后一条消息重复”的格式。

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

      结论:

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

      【讨论】:

        猜你喜欢
        • 2022-11-21
        • 2016-08-10
        • 1970-01-01
        • 2011-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-31
        • 1970-01-01
        相关资源
        最近更新 更多