ツールを使った効率的なログ分析術:実用qmailサーバ運用・管理術(10)(2/2 ページ)
メールサーバの動作状況を知るうえで欠かせないログ。このログを効率的かつ的確に抽出・分析することが重要になる。ツールを導入して分析環境を整えよう。
集計結果のグラフ化
前半で紹介した集計方法は、サンプリング期間が1日または1週間など一定期間を対象としていました。そのため、zrxdelayコマンドの出力結果のようにある値でソートしたり、特異な状態を検出するなどの用途には向いているものの、サーバの稼働状況を時系列で観測するような用途には向いていません。
また、ApacheのAnalogのようなビジュアル性に欠けるのも寂しいところです。見た目の派手さは集計ツールの本質ではありませんが、毎日のレポートを数値で見比べるよりも、グラフを使って視覚的にとらえられる方が毎日の作業も少しは緩和されるはずです。
グラフ作成ツールはExcelやJavaアプレットを使ったものなど多数ありますが、ここではMRTGを利用した「qmailmrtg7」(http://inter7.com/qmailmrtg7/)を紹介します。qmailmrtg7は本連載で以前紹介したvpopmailと同じ開発元(inter7:http://inter7.com/)ということもあり、qmailとの親和性が高くmultilogにも対応しています。
コラム MRTG
MRTG(http://www.mrtg.jp/doc/)はネットワーク監視で広く知られており、ネットワーク機器に対するSNMPのポーリング結果のグラフ化はもちろん、数値を決まったフォーマットで記録することで、対象がSNMP対応機器でなくてもグラフ化できます。
作成したグラフはWebコンテンツとしてHTTPサーバを通して参照できます。HTTPサービスが必要になるため、状況によっては慎重に導入する必要がありますが、「ApacheによるWebサーバ構築」第3回 Apacheの基本インストールを参考にインストールを行い、運用の際はデフォルトのサービスポートを80番以外にしたりユーザー認証を併用するなど、不正アクセスへの対策は万全にしておきましょう。
GDのインストール
グラフィックライブラリ「GD」を利用することで、線や円を用いた図形を描画したり、日本語を含む文字をPNGやJPEGフォーマットで表示することが可能になります。通常は直接GDを操作することはありませんが、MRTGをはじめPerlやPHPなどのプログラミング言語のライブラリとして利用されます。
最近のディストリビューションではすでにインストールされていることも多いので、あらかじめインストール済みパッケージ一覧に含まれていないか調べておきましょう。Red Hat LinuxやTurbolinuxなど、rpmコマンドを備えているディストリビューションでは以下のようにして確認できます。
# rpm -qa | grep gd
libgdやlibgd-develがインストールされているようなら、次のMRTGのインストールに進みます。
GDをソースからインストールする場合は、次の手順で行います。http://www.boutell.com/gd/からgd-1.8.4.tar.gzを適当な作業ディレクトリにダウンロードし、展開後makeを実行します。
# tar xvfz gd-1.8.4.tar.gz # gd-1.8.4/ # make # make install
GD以外にlibpngとzlibが必要ですが、多くのディストリビューションではデフォルトでインストールされるので説明は省略します。インストールされていない場合は、パッケージの追加インストールを行うかhttp://www.mrtg.jp/doc/unix-guide.htmlを参考にソースからインストールします。
MRTGのインストール
次にMRTGのインストールを行います。2002年6月現在の最新バージョンは2.9.18になります。http://people.ee.ethz.ch/~oetiker/webtools/mrtg/pub/からmrtg-2.9.18.tar.gzをダウンロードしてインストールします。
# tar xvfz mrtg-2.9.18.tar.gz # cd mrtg-2.9.18 # ./configure # make # make install
以上の操作で、/usr/local/mrtg-2/下にbin/、doc/、lib/、man/が作成され、各ファイルがコピーされます。/usr/local/mrtg-2/以外にインストールしたい場合は、configure時に「--prefix=インストール先」を指定します。
configureの過程でエラーが出る場合は 、gdやpngのヘッダファイルやライブラリを直接指定します。
--with-gd-inc=DIR | gdライブラリを指定(/usr/local/libなど) |
---|---|
--with-gd-lib=DIR | gdヘッダファイルを指定(/usr/local/includeなど) |
--with-png-inc=DIR | pngライブラリを指定(/usr/local/libなど) |
--with-png-lib=DIR | pngヘッダファイルを指定(/usr/local/includeなど) |
このほかのオプションについては、./configure --helpで確認できます。
qmailmrtg7のインストール
最後にqmailmrtg7をインストールします。http://inter7.com/qmailmrtg7/から、最新版のqmailmrtg7-3.4.tar.gz(2002年6月時点)を適当な作業ディレクトリにダウンロードし、以下の手順でインストールします。
# tar xvfz qmailmrtg7-3.4.tar.gz # cd qmailmrtg7-3.4 # make # make install
次に設定ファイルを用意します。まず、Webコンテンツ公開用のディレクトリを用意します。Apacheのデフォルトでは/var/www/htmlや/usr/local/apache/htdocs/がドキュメントルートに指定されています。ここではドキュメントルート下にqmailmrtgディレクトリを用意することにし、qmail.mrtg.cfgファイルとindex.htmlファイルをコピーします。
# mkdir /var/www/html/qmailmrtg # cp qmail.mrtg.cfg /var/www/html/qmailmrtg/ # cp index.html /var/www/html/qmailmrtg/
コピーしたら、ファイルの編集を行います。qmail.mrtg.cfgとindex.html中のFQDNをドメイン付きのホスト名に置き換えます。次に、qmail.mrtg.cfgファイルのWorkDirの右辺を各環境に合わせます。
WorkDir: /var/www/html/qmailmrtg (または) WorkDir: /usr/local/apache/htdocs/qmailmrtg
mulitlogで生成されるログの保存先が/var/log/qmail、/var/log/smtpd、/var/log/pop3dの場合は、「Target[msg]:」の行を修正します。
Target[smtp]: `/usr/local/bin/qmailmrtg7 t /var/log/smtpd` ... Target[smtpad]: `/usr/local/bin/qmailmrtg7 a /var/log/smtpd` ... Target[pop3]: `/usr/local/bin/qmailmrtg7 t /var/log/pop3d` ... Target[pop3ad]: `/usr/local/bin/qmailmrtg7 a /var/log/pop3d`
qmailが/var/qmail以外にインストールされている場合も、環境に合わせて同様の修正を行います。
ここまで終了した時点で、試しに3回ほど次のコマンドを入力して動作を確認します。
# /usr/local/mrtg-2/bin/mrtg /var/www/html/qmailmrtg/qmail.mrtg.cfg
1回目、2回目は、集計ログからの差分が取れないため大量のエラーを出力しますが、3回目は正常に動作します。3回目でもエラーが出力される場合は、エラーの内容を確認してqmail.mrtg.cfgファイルに修正を加えます。
最後に、前半のレポート作成と同様にcrontabを使い、自動実行されるように設定します。実行間隔は、用途に応じて5分置きまたは10分置きなどに設定します。
# crontab -e (以下が追加分) 0,10,20,30,40,50 * * * * /usr/local/mrtg-2/bin/mrtg /var/www/html/qmailmrtg/qmail.mrtg.cfg > /dev/null 2>&1
設定が終わったら、Webブラウザで「http://ホスト名/qmailmrtg」を指定し、出力結果を確かめます。
出力されたグラフからは、次の9つの情報を確認できます。
- Stats Messages(x Minute Average) 送受信メッセージ数
- Local/Remote Concurrency(x Minute Average) qmail-local、qmail-remoteの起動数
- SMTP Concurrency(x Minute Average) qmail-smtpdの起動数
- SMTP Totals(x Minute Average) qmail-smtpdの起動総数
- POP3 Concurrency(x Minute Average) qmail-pop3d起動数
- POP3 Totals(x Minute Average) qmail-pop3d起動総数
- Bytes Transfered(x Minute Average) データ受信量
- Message Status(xMinute Average) 送受信に成功/失敗したメッセージの数
- Queue Size(x Minute Average) queueにたまったメッセージの総数
インバウンド/アウトバンド別や送受信の失敗など、さらに詳しい情報は各グラフをクリックすることで確認できます。
次回はqmailのチューニング
今回は、qmailサーバの運用状況を知るためのレポート作成方法を紹介しました。単なるメッセージの羅列だったログも、集計の方法によっては貴重な情報源となることがお分かりいただけたと思います。
qmailanalogとqmailmrtg7では提供される情報の性格が違うため、一概にどちらがいいとはいえません。できれば両方を併用することをお勧めします。送受信されるメッセージ数の遷移を見てサーバの増強計画を練ったり、普段では考えられないメッセージ数が送られてきていることからSPAMメールの存在を類推したり。このように、レポートをどのように生かせるかが、本来のサーバ管理者としての手腕が問われるところです。
次回は、大規模サーバ向けのチューニングなど、ユーザー数が膨らんだサーバでの運用方法を紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.