Linux
強制 Dovecot 不記錄連接/斷開連接消息
我
/var/log/mail.log
經常被 Dovecot 連接/斷開連接消息淹沒,如下所示:Mar 29 18:15:48 summit dovecot: IMAP(foo@bar.baz): Disconnected: Logged out bytes=63/2126 Mar 29 18:15:50 summit dovecot: imap-login: Login: user=<baz@bar.foo>, method=PLAIN, rip=4.3.2.1, lip=1.2.3.4, TLS
這些是無限重複的(每天大約 11MB 的日誌),它們掩蓋了更重要的身份驗證失敗和 Postfix 傳遞/接收。我已經檢查了Dovecot 的 wiki 頁面的日誌記錄,但沒有選項可以阻止這些消息。我可以在其中設置任何配置變數
dovecot.conf
來阻止將這些消息發送到mail.log
嗎?*澄清:*我仍然希望 Dovecot 登錄到
mail.log
; 我只是不希望它記錄這些無聊的連接/斷開連接消息。
如果您使用 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") }
使用 log_path 和/或 info_log_path 啟用對文件的日誌記錄,然後註釋掉 syslog_facility。
或者
更改 syslog_facility 並使用 /etc/syslog.conf 控制輸出。
:/etc/dovecot.conf
## ## 日誌記錄 ## # 用於錯誤消息的日誌文件,而不是將它們發送到 syslog。 # /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 = 郵件