web-dev-qa-db-ja.com

Dovecotに接続/切断メッセージをログに記録しないように強制する

私の/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にログを記録させたい。これらの取るに足らない接続/切断メッセージをログに記録したくないだけです。

4
squircle

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")
}

http://www.rsyslog.com/doc/rsyslog_conf_filter.html

3
Jure1873

次のようなsedで行を削除するために、1時間ごとにcronジョブを実行するのはどうですか。

sed -e '/\(dovecot: IMAP.*Disconnected:.*\|dovecot: imap-login: Login: user\)/d' /var/log/mail.log > /var/log/mail.log

私はマスターでも正規表現でもsedでもないので、使用したい場合はこれをじっくりと見てください。

0
squareborg

Dovecotのログイン/ログアウトメッセージを取り除く最も簡単な方法は、/ etc/rsyslog.dの下に49-dovecot-ignore-info.confファイルを作成することでした。

mail.=info       ~

これは基本的に、メール機能(dovecotが使用する)から送信されるすべての情報メッセージを破棄することを意味します。詳細: http://manpages.ubuntu.com/manpages/hardy/man5/rsyslog.conf.5.htmlDiscardセクションの下。

次に、

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 
 
0
wrmine