- clientmqueueとは、
/var/spool/clientmqueueにメールが溜まる。
キューなのでここにメールがあると、何度もMTAが再送を試みる。
今回、sendmailを停めているサーバ(RHEL5.5)のclientmqueueが何故かメールが大量に溜まっていた為
調査を実施。
- ファイルの意味
qfqで始まるファイル … メールのヘッダー
dfqxxxxxxxxxxxxxとqfqxxxxxxxxxxxxxの文字列が同じものがペアとなる。
原因①
- rhn-virtualization-host のパッケージ
RHNに通知する。
メール本文
libvir: Remote error : unable to connect to '/var/run/libvirt/libvirt-sock':libvir(仮想マシンのライブラリ)に
No such file or directory
「リモート出来ないよ。/var/run/libvirt/libvirt-sockなんてファイルもディレクトリもないよ」
って怒られてます。
rhn-virtualizationパッケージのcronを見てみる。
# cat /etc/cron.d/rhn-virtualization.cron仮想マシンも使用していないのに何故かパッケージが入っており、sendmailが起動して無いのに
0-59/2 * * * * root python /usr/share/rhn/virtualization/poller.py
2分毎にメールを送り続けていた為。今回はこれが一番容量を圧迫していた。
- 解決方法
「rhn-virtualization-host」パッケージを削除、または/etc/cron.d/rhn-virtualization.cron
のファイルを別のディレクトリに移動する。
- Logwatchのログ報告メール
RHEL(他のLinuxも結構そうらしい)に標準でインストールされているLogwatchが毎日のログをメールしてくれます。
デフォルトだとroot宛に送ります。
これもsendmailを使用していないので、毎日のログの報告メールがそのままclientmqueueに溜まってました。- 解決方法
1.設定ファイルを書きかえる。
/usr/share/logwatch/default.conf/logwatch.confの内容を書き換えます。
初期設定では、
mailto = root
になっているので、とりあえず「mailto = ""」にしてみました。
手動で、/etc/cron.daily/0logwatchを実行してみる。
ヘッダーにそんなアドレスないです。ってエラー吐かれましたけどclientmqueueを確認してみると# /etc/cron.daily/0logwatch
No recipient addresses found in header
メール届いてないので、問題だったメールは届かなくなりました。
次にメーラーを指定している
mailer = "sendmail -t"
を書き換えてみました。デフォルトだとsendmailが設定されていて-tのオプションが付いています。
-tのオプションはヘッダーを解析するものらしいので「mailer = "sendmail"」に書き換えてみた。
もう一度手動で実行。
# /etc/cron.daily/0logwatch今度は、受信者を指定しろ。って言われました。
Recipient names must be specified
ここでこの方法を試すのは辞めましたが、そもそもメーラーさえ指定しなければいいのかもしれない。
メールを送らないようにするだけならこの方法でもいい気もする。
送信できない事に関するエラーメール等はなかったかが、ログは確認してない。
2.権限を無くす。
/etc/cron.daily/0logwatchの0logwatchの実行権限をなくしてしまう。
# chmod -x /etc/cron.daily/0logwatchこれで実行が出来なくなりメールも送られないが、それに関してのエラー、ログ等は未確認。
3.0logwatchを消す。
ホントに要らないのであれば、バックアップファイルでも作成してから0logwatchを消してしまう。
# rm /etc/cron.daily/0logwatchある意味一番影響範囲が少ない気もするが、現環境では今後どうするかわからないので行わなかった。
こんな感じで、clientmqueueに増えるメールはかなり減少した。
定期的に出力されるものについてはほとんどなくなった。
全メール要らなかったので、
clientmqueueをリネームして、同じ構成でclienetmqueueを作成し
リネームしたディレクトリをディレクトリ毎メールを削除し一応作業完了。
追記:
/var/spool/clientmqueueについてのメモ 2 ※cronのjobについて追記
人気ブログランキングへ