web-dev-qa-db-ja.com

システムログからPostfixアンビル統計を抑制するにはどうすればよいですか?

メールサーバー経由で送信されるすべてのメールの後に、postfix/anvilは次のようなものを追加します。

Nov  9 15:09:11 keutenberg postfix/anvil[30006]: statistics: max connection rate 1/60s for (smtp:103.28.42.75) at Nov  9 15:02:42
Nov  9 15:09:11 keutenberg postfix/anvil[30006]: statistics: max connection count 1 for (smtp:103.28.42.75) at Nov  9 15:02:42
Nov  9 15:09:11 keutenberg postfix/anvil[30006]: statistics: max message rate 1/60s for (smtp:103.28.42.75) at Nov  9 15:02:43
Nov  9 15:09:11 keutenberg postfix/anvil[30006]: statistics: max cache size 1 at Nov  9 15:02:42

これらのメッセージがログに記録される理由を理解しています(制限を設定しました)が、anvilのログレベルを変更する方法を見つけることができません(つまり、mail.logからのこれらの情報メッセージを抑制するため)。これらの統計メッセージを無効にするためにmain.cfで使用できる設定はありますか?私は、syslog設定でそれらを抑制するよりも、ソースでそれらを停止したいです。

5
squircle

ログの頻度を変更する場合は、anvil_status_update_timemain.cfを設定できます。デフォルトは600秒です。 http://www.postfix.org/postconf.5.html#anvil_status_update_time

私にとっては、デフォルトの10分を使用するよりも2時間の方がうまくいきましたが、明らかに環境によって異なります。

anvil_rate_time_unit = 60s
anvil_status_update_time =  2h

また、受信メールのログ記録で長い遅延があった問題を解決するために、次の設定を構成する必要がありました。受信メールログが更新されていないのに気付いた場合は、次のことを試してください。

smtpd_error_sleep_time = 2s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20

*サーバーが600秒あたり1通未満のメールを受信した場合

Anvilデーモンは、デフォルトで終了時に統計を記録します。デフォルトのアイドル時間は600秒なので、メールが受信されない場合は、10分ごとにアンビルログを受信し続けます。

これは、-o max_idlemaster.cfに追加することで、より長い期間に変更できます。

anvil     unix  -       -       n       -       1       anvil -o max_idle=3600s
7
Hunter Frazier

この設定は クライアント接続を制限する機能を上書きすることに注意してください。

main.cfには、アンビルプロセスをsuppressするパラメーターがあります。このパラメーターは smtpd_client_event_limit_exceptions と呼ばれます。このパラメーターの目的は、一部のクライアントをsmtpd_client _ * _ count/rate_limit制限から除外することです。あなたの場合、main.cfで指定する必要があります

smtpd_client_event_limit_exceptions = static:all

これにより、すべてのIPアドレスがクライアントとしてリストされ、smtpd_client _ * _ count/rate_limit制限から除外されます。したがって、ログに記録するものがないため、この設定はアンビルログをsuppressします。

出典: Postfixメーリングリストの同様の質問

3
masegaloeh

rsyslogd(8)を使用して、特定のメッセージを別のログファイルに入れています。

たとえば、次の内容で新しいファイル/etc/rsyslog.d/maillog-stats.confを作成します。

# extract then discard stats from anvil daemon
:msg, contains, "statistics: max"              /var/log/maillog-stats
:msg, contains, "statistics: max"              stop

/etc/rsyslog.dディレクトリ内のファイルは/etc/rsyslog.confの前に読み取られるため、これらのフィルターはメイン構成ファイルの前に発生します。

最初のプロパティベースのフィルターは/var/log/maillog-statsに「statistics:max」を含むメッセージを書き込み、2番目のフィルターはstopアクションでさらに処理するためにメッセージを破棄します。

残りのメッセージは、/etc/rsyslog.confのルールによって以前と同様に処理されます。

# Log all the mail messages in one place.
mail.*                                    -/var/log/maillog

たとえば、ファイル/etc/logrotate.d/maillogを作成して、ローテーションルールを設定することもできます。

/var/log/maillog-stats
{
    weekly
    rotate 10
    missingok
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}
1