index.htmlを作る
前回、cfgmakerを使って、完成したmrtg.cfgを作成する手順を示しました。仮に監視対象機器が追加になった場合でも、cfg_mrtg.shとテンプレートのcfg_mrtg.tempを修正することで、容易に対応できるようになっています。
さて、今、3つの機器を監視するとしましょう。前回の例では、mrtg.cfgにDirectoryキーワードが記述されているため、各監視対象機器のデータの保存先は、/usr/local/apache2/htdocs/mrtgの下に作られるサブディレクトリになります。
この状態で、それぞれの監視対象機器のトラフィック状況を見るには、
- http://MRTGのサーバアドレス/mrtg/192.168.1.201/
のように、サブディレクトリ名を指定してアクセスすることになりますが、この指定方法は効率的ではありません。やはり、これらのサブディレクトリへリンクを張ったインデックスファイル(index.html)が必要になります。
なお、3つの監視対象機器用のcfg_mrtg.shとcfg_mrtg.tempは以下のようになります.
indexmakerを使う
MRTGには、mrtg.cfgを読んで、監視対象機器ごとのHTMLファイルにリンクを張ったindex.htmlを作るプログラムが用意されています。それがindexmakerです。
使い方は簡単です。indexmakerに、引数としてmrtg.cfgを渡してやるだけです。結果は標準出力にでますので、リダイレクトして、index.htmlを作成します。
これで、http://MRTGのサーバアドレス/mrtg/ にアクセスすることで、mrtg.cfgに記載された監視対象機器へのリンクが張られたページが表示されます。
日本語表示ができるようにする
標準のままのindexmakerを使うと、図1のように、mrtg.cfgで日本語を使っていた箇所が文字化けしてしまいます。これはindexmakerがキャラクターセットにiso-8859-15を決め打ちするためです。ここは直接indexmakerを修正して、EUC-JPを指定してしまいましょう。
viなどのエディッタでindexmakerを以下のように書き換えます。これで装置名などに指定した日本語も正しく表示されるようになります。
表示サイズを変える
上記のように単純にindexmakerで、index.htmlを作ると、横2列にグラフが表示されますが、1024×768ピクセルのXGAの画面でもはみ出てしまいます。これでは、扱いにくいので、グラフのサイズを変更しましょう。
標準のグラフは、500×135ピクセルです。これを70%位のサイズの350×95ピクセルにします。
いつものように、indexmakerの実行文もスクリプトファイルにして残しておくようにします。ここでは、indexmaker.shというスクリプトにします。
この中で、--widthがグラフの横幅のサイズを、--heightがグラフの縦のサイズをピクセルで指定しています。
なお、--columnsはグラフを横にいくつ並べるかという指定ですが、デフォルトで2つになっています。また--outputを指定することで、出力先を標準出力からここで指定したパスに変えられます。
ところで、グラフのサイズを小さくした場合、IE8とFirefox 3.0.7ではきれいにグラフが表示されましたが、IE7やIE6では画像がややくずれ、見にくくなってしまいました。グラフサイズを変更する場合には、クライアントPCのブラウザはIE8やFirefoxにする必要がありそうです。
もし、IE7などを使わなければならない場合には、グラフサイズを変更せず、--columns=1を指定して、縦1列に表示する方が、見栄えもよく、使い勝手は良くなると思います。
MRTGの弱点とその解決方法
今回のindexmakerで、一応のMRTGの基本的な使い方は一通り見たことになります。しかし、監視対象機器が増えてくると、これまでやってきた設定方法では、CPU負荷が高くなり、パフォーマンス的に追いつかなくなってしまいます。
実のところ、MRTGを作成したTobias氏も、よりパフォーマンスの高いMRTGの運用を実現するべく、rrdtoolというデータ管理ツールを提供しています。
そこで次回からは、このrrdtoolを使ったMRTGの使い方をご紹介していきます。