Nagios::Plugins::Memcached 0.02 Release
昨日、ちょっと修正して0.02をリリースしました。
Nagiosのプラグインでmemcachedを監視するコマンドです。*1
監視項目は、
- 接続できるか
- レスポンスタイム
- キャッシュサイズ
- キャッシュヒット率
の4つです。
接続とレスポンス
指定時間内に接続出来るかどうかは、ソース上では以下のようになってます。
local $SIG{ALRM} = sub { $self->add_message( CRITICAL, "Timeout $timeout sec." ); croak("Timeout $timeout sec"); }; alarm $timeout; my $cache = Cache::Memcached->new( { servers => $hosts } ); $cache->set_cb_connect_fail( sub { my $prefip = shift; $self->add_message( CRITICAL, "Can't connect to $prefip" ); croak("Can't connect to $prefip"); } ); my $start = time(); my $stats = $cache->stats( [qw/misc/] ); my $end = time(); $stats->{time} = $end - $start;
Cache::Memcached#stats()メソッドを接続としちゃってるので厳密じゃないですけど、まぁそういう実装です。
ちなみにCache::Memcached#set_cb_connect_fail()で接続失敗した際のコールバックが登録出来るようになってます。
キャッシュサイズ、キャッシュヒット率
ここら辺は全部Cache::Memcached#stats()から取れるデータを全面的に信用して採用してます。
Nagiosのプラグイン開発
これはデブサミでid:kazeburoさんがプレゼンしてます。
デブサミ2007の発表資料 Nagiosのプラグインの話 : blog.nomadscafe.jp
僕はNagios::Pluginモジュールを継承して作ってます。
シンプルなんですぐ出来るはず。
バッドノウハウの最たる物はコマンド自体にPODを書いてはいけないと言う点。これ凄い重要><
その他の留意点はPerlで書く場合は、Nagios plug-in development guidelines - 4. Perl Pluginsを見て下さい。