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

更新情報

2024年11月18日 EOS R7ファームウエアアップデート
2024年11月17日 PX-M730Fのシアンインク交換
2024年11月4日 360度モニタ不調
2024年11月2日 ノート給油
2024年10月19日 腕時計のファームウエア
2024年10月5日 RF-S 10-18mm F4.5-6.3 IS STM購入
2024年10月3日 三菱UFJニコスカード到着
2024年9月28日 三菱UFJニコスカード申込
2024年9月23日 第10世代iPad購入
2024年9月17日 iPadOS 18

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