メールサーバー経由で送信されるすべてのメールの後に、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設定でそれらを抑制するよりも、ソースでそれらを停止したいです。
ログの頻度を変更する場合は、anvil_status_update_time
にmain.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_idle
をmaster.cf
に追加することで、より長い期間に変更できます。
anvil unix - - n - 1 anvil -o max_idle=3600s
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メーリングリストの同様の質問 。
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
}