トップ > 興味のあること > コンピュータ > ソフトウェア

更新情報

2024年3月21日 オーバーホール
2024年3月19日 分針
2024年3月17日 グランドセイコー
2024年2月12日 Bluetoothマウス切断
2024年2月11日 ANKER SoundCore
2024年2月10日 ノート給油
2024年2月9日 防水温湿度計
2024年2月8日 ハクキンカイロ発熱量
2024年1月28日 出勤セット
202年1月7日 バイク保険更新

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を使った。 最近のマシンは速いので、こんな代物でも十分役に立つ。