影舞のレポートをグラフ化して表示 on Windows

リーダーから「統計情報を視覚的に見たい」とのご要望。
まぁ組込みPGにも飽きてきてたから丁度いいやってっことで引き受けた。
どうやらMRTGでグラフ化するようだ。*1

用意したもの

Lynxは影舞からMRTGで使うデータを吐きだすのに使う。

グラフ化

影舞をインストールしたディレクトリ(以降、C:\Kagemaiとする)にmrtgディレクトリがある。
この中にプロジェクトID毎にディレクトリを切ってそれぞれのグラフを格納することにする。
mrtgディレクトリを漁るとsummary.rhtmlとmrtg.cfgがあるので、
プロジェクドID毎のディレクトリ内にコピーして編集する。

summary.rhtmの編集
  mrtg/test.html, mrtg/test-week.png は必要に応じて適当に変更してください。

とのことなので従って編集する。
"test"をプロジェクトID(以降、pj_idとする)に置き換えればOK。
公開するときもプロジェクトID毎にディレクトリを切ることにしたので最終的に下記のように置換する。

mrtg/test.html → mrtg/pj_id/pj_id.html
mrtg/test-week.png → mrtg/pj_id/pj_id-week.png
mrtg.cfgの編集

まず"test"を"pj_id"で置換する。
その上で下記の変更を行う。

  • HtmDir, ImageDir, LogDir

それぞれ下記のように編集

HtmlDir:  C:\Kagemai\mrtg\pj_id\html
ImageDir: C:\Kagemai\mrtg\pj_id\html
LogDir:   C:\Kagemai\mrtg\pj_id\html
  • Target
Target[pj_id]: `C:\Lynx_for_Win32\lynx.exe -dump http://localhost/kagemai/guest.cgi?project=pj_id&action=mrtg&t=2`

lynxに-dumpオプションを付けて影舞のページを読込ませると、テキストでデータを吐く。
このデータをMRTGに読み込ませてグラフを生成する。

  • PageFoot
PageFoot[pj_id]: &nbsp; <hr><a href="http://foohogehoge/kagemai/guest.cgi?project=pj_id&action=top">戻る</a>

ここは好きに編集してOK。

  • その他の項目

デフォルトでOK。気に入らなければ編集。

グラフを生成する

コマンドプロンプトで下記のように実行する。

perl C:\mrtg\bin\mrtg C:\Kagemai\mrtg\pj_id\mrtg.cfg

すると、C:\Kagemai\mrtg\pj_id\html\ にグラフ一式が生成される。

影舞で表示する
  1. C:\Kagemai\project\pj_id\template に先程編集したsummary.rhtmlをコピーする。
  2. C:\Program Files\Apache Software Foundation\Apachex.x\kagemai\mrtg\pj_id\ に C:\Kagemai\mrtg\pj_id\html\ の中のファイルのみをコピー
  3. 影舞で「統計」のページを表示すると…グラフが表示されているはず。*2
  4. さらにグラフをクリックすると日、週、月 毎のグラフがそれぞれ表示されるはず。
作業を自動化する

さて、データは継続的に採らないと意味がないので
グラフ生成手順を自動化してやる。

一番簡単な方法はmrtg.cfgでRunAsDaemonをYesに設定しておくこと。
この方法にはポイントが2つある
・HtmDir, ImageDir, LogDirに公開可能なディレクトリを指定する必要がある。
・たいした問題じゃないが、DOS窓が開きっぱなしになる。
DOS窓の件はどうでもいいとして、
Web公開可能なディレクトリが

C:\Program Files\Apache Software Foundation\Apachex.x\htdocs\

になっていたためこの方法は使えなかった。
# MRTGにスペースを含むパスを指定するとエラーになる。
# Web公開するディレクトリを変更することもできたはずだが忘れた。
# 調べるのも面倒なのでバッチに頼る。


RunAsDaemonをYesにしない場合は一定間隔でコマンド実行とコピーを繰り返す必要がある。
適当にバッチを書いてタスクスケジューラに登録しておけばいいでしょう。
実行間隔は10分くらいで。

*1:参考:MRTGでバグ統計情報をグラフ表示 | MgTN Blog

*2:表示されないときはC:\Kagemai\project\pj_id\cache以下のファイルを削除してみる