我的/var/log/mail.log
电脑不断收到如下 Dovecot 连接/断开连接消息:
Mar 29 18:15:48 summit dovecot: IMAP([email protected]): Disconnected: Logged out bytes=63/2126
Mar 29 18:15:50 summit dovecot: imap-login: Login: user=<[email protected]>, method=PLAIN, rip=4.3.2.1, lip=1.2.3.4, TLS
这些日志会无限重复(每天产生 11MB 的日志),而且它们会掩盖更重要的身份验证失败和 Postfix 发送/接收。我检查过Dovecot 的日志记录维基页面,但没有选项可以停止这些消息。我是否可以在其中设置任何配置变量dovecot.conf
来停止将这些消息发送到mail.log
?
澄清:我仍然希望 Dovecot 能够记录mail.log
;我只是不希望它记录这些无关紧要的连接/断开连接消息。
答案1
如果您使用 rsyslog 或 syslog-ng,则可以过滤 syslog 消息。以下是来自 rsyslog 帮助的一个示例:
简单来说:
:msg, contains, "imap-login" ~
或者使用 if-else 脚本语言:
if $programname == 'dovecot' then {
action(type="omfile" file="/var/log/dovecot.log")
if $msg contains 'imap-login' then
action(type="omfile" file="/var/log/dovecot-login.log")
else
action(type="omfile" file="/var/log/dovecot.log")
}
答案2
启用使用 log_path 和/或 info_log_path 记录到文件的功能,然后注释掉 syslog_facility。
或者
更改 syslog_facility 并使用 /etc/syslog.conf 控制输出。
:/etc/dovecot.conf
## 日志记录 ## # 用于记录错误消息的日志文件,而不是将它们发送到系统日志。 # /dev/stderr 可用于登录到 stderr。 #log_path = /var/log/dovecot.log # 用于信息和调试消息的日志文件。 # 默认与 log_path 相同。 #info_log_path = /var/log/dovecot-info.log ... # 如果您要登录到 syslog,则使用 Syslog 工具。通常如果您不 # 想要使用“邮件”,您将使用 local0..local7。还有其他标准 支持 # 个设施。 syslog_facility = 邮件
答案3
摆脱 dovecot 登录/注销消息的最简单方法是创建文件 49-dovecot-ignore-info.conf/etc/rsyslog.d和:
mail.=info ~
这基本上意味着丢弃来自邮件设施(dovecot 使用)的所有信息消息。更多信息:http://manpages.ubuntu.com/manpages/hardy/man5/rsyslog.conf.5.html, 在下面丢弃部分。
然后做一个
sudo service dovecot restart
并且消息不再存储在日志文件中。
答案4
“连接/断开连接”消息是来自 dovecot 的信息消息,因此您可以将 dovecot 配置为不记录信息消息:
# /etc/dovecot/conf.d/10-logging.conf
info_log_path = /dev/null
# same for debug messages
debug_log_path = /dev/null
# if you set a file path, it will log to this file and not to syslog anymore
info_log_path = /var/log/mail.log