未应用鸽舍筛子的 LogWatch 过滤规则

未应用鸽舍筛子的 LogWatch 过滤规则

我安装了 Debian 10 (Buster),并安装了dovecotsievelogwatch

在我的筛子文件中,我有discard.因此,我在系统日志文件中收到了大量以下行。

Nov  2 19:46:17 xxxxx dovecot: lda(xxxxx)<12473><IOa9OvlToF+5MAAAwswyaQ>: sieve: msgid=<[email protected]>: marked message to be discarded if not explicitly delivered (discard action)

在日志观察报告中我看到了这个

**Unmatched Entries**
    dovecot: lda(xxxxx)<1003><RUjQJX2GoV/rAwAAwswyaQ>: sieve: msgid=<[email protected]>: marked message to be discarded if not explicitly delivered (discard action): 1 Time(s)
...

我检查了 /usr/share/logwatch/scripts/services/dovecot 中 logwatch 的 dovecot 过滤器代码,并且存在忽略这些消息的规则,但显然不起作用。

这是我在脚本文件中找到的内容:

   } elsif ( $ThisLine =~ /^$dovecottag (?:lda|deliver|lmtp)\(.*\): .*sieve: msgid=.* marked message to be discarded if not explicitly delivered/ ) {
   # dovecot: lda(joe): sieve: msgid=<m$01$@com>: marked message to be discarded if not explicitly delivered (discard action)
   # IGNORE
   }

我的鸽子版本是2.3.4.1。我的logwatch版本是7.4.3。

答案1

通过“体外”测试,我发现脚本规则由于<1003><RUjQJX2GoV/rAwAAwswyaQ>.如果我删除它,规则就会匹配。

通过插入解决了该问题.*。这是固定规则

   } elsif ( $ThisLine =~ /^$dovecottag (?:lda|deliver|lmtp)\(.*\).*: .*sieve: msgid=.* marked message to be discarded if not explicitly delivered/ ) {
   # dovecot: lda(joe): sieve: msgid=<m$01$@com>: marked message to be discarded if not explicitly delivered (discard action)
   # IGNORE
   }

我正在使用 Debian 10 以及 Dovecot 2.3.4.1 和 Logwatch 7.4.3。它不是 Logwatch 的最新版本,而是 Debian 上通过 apt-get 默认安装的版本。

答案2

升级到 Debian 10 后我也遇到了这个问题。

dovecot 2.3.4.1 的日志前缀已更改为默认包含 pid 和 session。 Buster 的 Logwatch 版本 (7.4.3) 没有考虑到这一点,这会导致大量不匹配的条目和错误未分组在一起。 (您可以在以下位置查看 dovecot 的规则/usr/share/logwatch/scripts/services/dovecot)即使是 Logwatch 的最新版本(截至撰写本文时为 7.5.5),似乎也没有针对每种可能性都有更正的规则。

对我来说最有效的是从 dovecot 的日志前缀中删除 pid 和会话。

mail_log_prefix将选项更改/etc/dovecot/conf.d/10-logging.conf

# Log prefix for mail processes. See doc/wiki/Variables.txt for list of
# possible variables you can use.
#mail_log_prefix = "%s(%u)<%{pid}><%{session}>: "
#  remove pid and session for compatability with logwatch
mail_log_prefix = "%s(%u): " 

重新启动 dovecot 以使更改生效

systemctl restart dovecot

相关内容