[ロ] Nagios Pluginの仕様をようやく(ちょっと)理解。

このエントリーをはてなブックマークに追加
はてなブックマーク - [ロ] Nagios Pluginの仕様をようやく(ちょっと)理解。
Facebook にシェア
[`yahoo` not found]
[`livedoor` not found]
[`friendfeed` not found]
[`tweetmeme` not found]

最近Nagiosと戯れています。前職でもちょっといじっていたので設定自体は楽チン。
ではない。とても面倒くさい。何を設定しなければいかわかっているだけに設定の
面倒くささに萎えます。機能的には満足なのだけど、もっとインストールが簡単にならないものか・・・。
とりあえず、ポート監視、Disk容量チェック、PostgreSQLチェック、プロセス稼動監視を
設定して、いつでもどこでも通知が来ちゃうよ!


さてさて、お題のNagiosプラグイン(check_tcp)ですが、出力される結果がどうにも不定です。
たとえば、普通の生きているサーバにチェックをかけた場合と、存在しないドメインにチェックを
かけようとした場合はこんな出力


$ /usr/local/nagios/libexec/check_tcp -H www.yahoo.co.jp -p 80
TCP OK - 0.017 second response time on port 80|time=0.016590s;;;0.000000;10.000000
$ /usr/local/nagios/libexec/check_tcp -H www.examdfasfdsaple.com -p 80
TCP CRITICAL - Invalid hostname, address or socket: www.examdfasfdsaple.com

この場合は、仕様どおりなので結果判別はしやすい。楽チンです。
でも、アクセスできないポートを監視した場合には、下記のよう。


$ /usr/local/nagios/libexec/check_tcp -H www.lowtech.ne.jp -p 9999
Connection refused

あれ、「TCP CRITICAL – …」じゃないの?
Nagios plug-in development guidelines2.1. Print only one line of textには戻り値の定義書いてあるんだけどなー。
困りました。でも、よくよくドキュメントを見直すと・・・
2.4. Plugin Return Codesに終了ステータスが数値で返ってくるとある。
ってことで、PHP的に書くとたとえば下記のようなことにして、$return_varを判別すればいいんじゃーん。


$ret = exec('/usr/local/nagios/libexec/check_tcp -H www.lowtech.ne.jp -p 80', $output, $return_var);

簡単でした。Plugin書くときも結果に応じてexit(0)とかexit(1)とかすればいいのねー。

Popular Posts:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*