【问题标题】:rsyslog conditional RepeatedMsgReductionrsyslog 条件 RepeatedMsgReduction
【发布时间】:2013-12-30 19:41:14
【问题描述】:
【问题讨论】:
标签:
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 这样的自动化工具,减少的好处被配置复杂性和信息丢失的成本所抵消。