私の/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
これらは無限に繰り返され(1日あたり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")
}
次のようなsedで行を削除するために、1時間ごとにcronジョブを実行するのはどうですか。
sed -e '/\(dovecot: IMAP.*Disconnected:.*\|dovecot: imap-login: Login: user\)/d' /var/log/mail.log > /var/log/mail.log
私はマスターでも正規表現でもsedでもないので、使用したい場合はこれをじっくりと見てください。
Dovecotのログイン/ログアウトメッセージを取り除く最も簡単な方法は、/ etc/rsyslog.dの下に49-dovecot-ignore-info.confファイルを作成することでした。
mail.=info ~
これは基本的に、メール機能(dovecotが使用する)から送信されるすべての情報メッセージを破棄することを意味します。詳細: http://manpages.ubuntu.com/manpages/hardy/man5/rsyslog.conf.5.html 、Discardセクションの下。
次に、
Sudo service dovecot restart
また、メッセージはログファイルに保存されなくなりました。
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 = mail