Nagios / Icinga で Total Processes の履歴を残す
Nagios や Icinga の標準的プラグインでは、Total Processes や Zombie Processes などのプロセス数の履歴を残せない。check_procs プラグインが「パフォーマンスデータ」を返さないからだ。 Nagios/Icinga のプラグインが返すデータは <pre>PING ok - Packet loss = 0%, RTA = 0.80 ms |
percent_packet_loss=0, rta=0.80 </pre> のようになっている。パイプ( |
)の前が人間が読むデータ、後ろが RDDtool などの別プログラムによって履歴が保存されるパフォーマンスデータだ。Nagios/Icinga は、パイプを見るだけで、その前も、後ろも気にしない。パフォーマンスデータのフォーマットも処理を任せるプラグイン次第ということになっているが、上記のように key=value, key=value, … 形式とすれば標準的なパフォーマンスデータ処理ツールがそのまま使える。 check_procs プラグインは次のようなデータを返す。パフォーマンスデータがない。 <pre>$ /usr/lib64/nagios/plugins/check_procs PROCS OK: 103 processes </pre> これを、以下のような形式を返すようにしてやればいい。 <pre>PROCS OK: 104 processes |
procs=104 </pre> ラッパースクリプトを書くか、check_procs.c を変更してビルドすれば実現できる。今回はラッパースクリプトで楽することにした。 <pre>#!/bin/bash LINE= /usr/local/nagios/libexec/check_procs $* RC=$? COUNT= echo $LINE | awk '{print $3}' echo $LINE | procs=$COUNT exit $RC </pre>http://www.nagios-portal.org/wbb/index.php?page=Thread&postID=100529&l=2 これで Total Processes と Zombie Processes のヒストリが残るようになった。 |