sidetech

インフラエンジニアの寄り道メモ。

複数監視項目の設定(Ping編)

SystemAnswerG2のVer02.10.00から実装された複数監視項目を実際に使ってみました。

今回の例ではpingの値を全部とったものをグラフ化するという感じで、スクリプト自体はPerlで自作したpingですが、大したことはやっていないです。基本的なノリとしては、CLIで自分でping打って結果が出たようなものをPerlで書いているだけで、くせもんは正規表現で値だけを取り出して所定のフォーマットでprintしてあげているだけです。シンプルなスクリプトはZABBIXやCactiなどの先陣の方々のスクリプトを参考にすると意外と流用できます。


open (PING, "ping -nqc $opts{count} -l $opts{preload} -i $opts{wait} -w $opts{timeout} $opts{host}|");
while (<PING>) {
/(\d+)% packet loss/ && ($loss = $1);
/= (.+)\/(.+)\/(.+)\/(.+) ms/ && *1;
};
close (PING);

        if ($opts{view} eq "num") {
                if ($opts{mode} eq "min") { print "value=".$min.";" }
                elsif ($opts{mode} eq "avg") { print "value=".$avg.";" }
                elsif ($opts{mode} eq "max") { print "value=".$max.";" }
                elsif ($opts{mode} eq "dev") { print "value=".$dev.";" }
                elsif ($opts{mode} eq "loss") { print "value=".$loss.";" }
                else { print "value=NG;" }


ノリとしてはこんな感じです。

で、標準にあった2つの線をグラフにする機能だと以下のようになります。
Ping01

そして、今回の2つ以上のグラフを描写したい場合のカスタムを使うと、
Ping02
ちょっとイイ感じにグラフが仕上がりました。このカスタムグラフではレイテンシ分析機能は利用できないのですが、これで回線品質のブレ具合が見やすくなりました。色も指定できるようになったので、色を決めるのが大変です(汗)。カラーパレットとか実装してくれるといいんだけどなあ・・・。

今回は、線(LINE)を3本と塗りつぶし(AERA)1本の4つの情報を同じグラフに出しましたが、最大で10項目出来るようです。残念ながら、積み重ね(STACK)については、少し試してはみたのですが、他と混在させると思うように描写されません。

このノリで色々な値を採取したいとおもいます。
しかし、今日は眠い。。。

*1:$min,$avg,$max,$dev) = ($1,$2,$3,$4