トップ > 興味のあること > コンピュータ > ソフトウェア
モッピー!お金がたまるポイントサイト
日々の生活にhappyをプラスする|ハピタス

MRTG

http://oss.oetiker.ch/mrtg/

2010年4月25日

Multi Router Traffic Grapherの略。 私が使い始めたのは2002年ぐらいだが、 開発は1995年に始まって、今でも時々アップデートされている。 元々はsnmpで読み出したパケット数を元に、 トラフィックをグラフ化するプログラム。 そのためNICを指定するのが一番簡単だが、 外部ブログラムとの連携も可能だ。 したがって、大抵の物をグラフ化できる。 たとえば、

NICを指定する
1:public@sun:
ディスクの使用量を読み出す
dskPercent.1&dskPercent.1:public@sun
外部プログラムを使う
`/home/tom-a/bin/pool2mrtg.sh`

といった感じである。 外部プログラムは、 要するに測定したい二つの数字を普通にテキストで返してくればいい。 shでもperlでもrubyでも、なんでもあり。 リモートのzfsで作ったファイルシステムの使用量を見るなら、

 #!/bin/sh
 ssh jupiter zfs list -H pool | /usr/local/bin/gawk '
 {
   tail1 = $2;
   gsub("[0-9.]","",tail1);
   gsub(".$","",$2);

   tail2 = $3;
   gsub("[0-9.]","",tail2);
   gsub(".$","",$3);

   if (tail1 == "K") $2 = 1024 * $2;
   if (tail1 == "M") $2 = 1024 * 1024 * $2;
   if (tail1 == "G") $2 = 1024 * 1024 * 1024 * $2;
   if (tail1 == "T") $2 = 1024 * 1024 * 1024 *1024 * $2;

   if (tail2 == "K") $3 = 1024 * $3;
   if (tail2 == "M") $3 = 1024 * 1024 * $3;
   if (tail2 == "G") $3 = 1024 * 1024 * 1024 * $3;
   if (tail2 == "T") $3 = 1024 * 1024 * 1024 *1024 * $3;

   print $2;
   printf("%d\n",$3);
   system("ssh jupiter uptime");
   print $1;
 }'

といった具合である。 いや、久しぶりにgawkを使った。 最近のマシンは速いので、こんな代物でも十分役に立つ。