SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

【linux】 メールの送信ログが maillogに残らないことがある?

問題

maillogをしらべたのですが、メールを送ったはずの時刻にログがありませんでした。

そういうことってあり得ますか?

答え

CentOS6からrsyslog が採用されている。

rsyslog は同じプロセスから基準値を超える大量のログが送り込まれると切り捨てる機能がある(rate-limit)。

ログが切り捨てられると、以下のようなメッセージが /var/log/messages に残ります。

Feb  4 20:08:21 host-xxxx rsyslogd-2177: imuxsock begins to drop messages from pid 14456 due to rate-limiting
Feb  4 20:08:22 host-xxxx rsyslogd-2177: imuxsock lost 13 messages from pid 14456 due to rate-limiting

maillog が syslog経由で記録されているとき(/etc/syslog.conf にそのように書いてあれば)、rate-limit に引っかかると、メールは送信されたけども、maillogは残っていないといったことがありそうです。

基本的にはログは切り捨てないで保存して欲しいときは、以下の設定を /etc/syslog.conf に追加する。

# 制限を全くしない場合
$SystemLogRateLimitInterval 0

基準値を操作するには以下を設定する。

# 10秒以内に500件もログが発生した時に制限
$SystemLogRateLimitInterval 10
$SystemLogRateLimitBurst 500

CentOS5ではsysklogdが採用されていたので、CentOS6からの問題。

関連するメモ

コメント