sendmail の統計を取る mailstats コマンド
sendmail にはメールの送受信量の統計を取る機能がついています。CentOS の sendmail なら、まず /etc/mail/sendmail.mc で統計ファイルの指定を有効にします。
define(`STATUS_FILE', `/var/log/mail/statistics')dnl #行頭にdnl という文字列があれば削除する。
次に /var/log/mail/statistics を作れば準備完了です。
# touch /var/log/mail/statistics # service sendmail restart
sendmail.mc ファイルで異なるファイルを指定した場合は読み替えてください。なお、sendmail.mc で統計ファイルを指定しない場合は、 /etc/mail/statistics が使われるようです。(CentOS 4.5 の sendmail-8.13.1 の場合)
これで何通かメールを送受信したあと、mailstats コマンドを実行すると、統計データが表示されます。
mailstats Statistics from Mon Jun 1 10:12:52 2009 M msgsfr bytes_from msgsto bytes_to msgsrej msgsdis msgsqur Mailer 0 0 0K 589 2415K 0 0 0 prog 4 1884 18827K 20 59K 32 0 0 esmtp 9 1866578 24076114K 61021 607600K 0 0 0 local ===================================================================== T 1868462 24094941K 61630 610074K 32 0 0 C 20542 1645 32
数値の見方は、M はプログラム番号で、Mailer と対応しています。msgsfrはメールプログラムからの送信メッセージ数です。上記であれば esmtp が 1884 通です。bytes_fromはメールプログラムからの送信バイト数です。local プログラムからの送信が多いですが、これはメーリングリストのソフトがローカルの mail コマンドを使って配送しているためだと思われます。
msgsto は、メールプログラムの受信メール数です。bytes_to はメールプログラムの受信バイト数です。
msgsrej は拒否されたメール数です。32通のメールが拒否されています。msgsdis は破棄されたメールの数です。msgsqur は隔離されたメーセージ数です。
自動実行してメールで統計情報を送信する
cron で毎日統計情報を送信するように設定します。root で /etc/cron.d/mailstatsとして、
0 0 * * * /usr/sbin/mailstats | mail -s "Daily mail stats" hoge@example.com && cp /dev/null /var/log/mail/statistics
のように記述しています。/dev/null で統計ファイルを上書きするのは、統計情報をクリアするためです。
また、私の場合は毎日の合計数をテキストファイルに記録するようにしています。
0 0 * * * /usr/sbin/mailstats | mail -s "Daily mail stats" hoge@example.com && echo `date +%Y/%m/%d` `/usr/sbin/mailstats -p | grep " T "` >> /var/tmp/msgsum.dat
mailstats コマンドにオプションで -p を指定すると、プログラムが読み取る形式で情報を出力し、統計情報をクリアします。 このコマンドを実行すれば /dev/null をコピーする手間は省けます。T の行のみ抜き出し、msgsum.dat ファイルに追記していきます。ファイルの中身は次のようになります。
2009/09/29 T 1954 51945 8169 186279 27 0 1 2009/09/30 T 1951 52454 5806 218901 15 0 8 2009/10/01 T 1861 56054 5272 143113 25 0 0 2009/10/02 T 1374 17809 4437 45725 11 0 2 2009/10/03 T 663 6657 3129 25439 21 0 2
半角スペースで区切られていますが、それぞれ日付、T(固定)、msgsfr、bytes_from、msgsto、bytes_to、msgsrej、msgsdis、msgsqur の値となっています。これを加工すればメール送受信量のグラフ作成などに使えるでしょう。
コメントはまだありません
No comments yet.
Sorry, the comment form is closed at this time.