指定したコマンドを定期的に実行してmemcachedプロトコルで結果が取得できるサーバ - App::derivedとも組み合わせて使えるように、memcachedのキャッシュのキーを指定して、その値を監視できるNagiosプラグインを書きました。check_snmpと同様に変化・差分量が計算できる機能もついてます。

変化・差分監視はの利用イメージとしては、Webアプリケーションなどで外部APIにアクセスしてそれがエラーになった際にあるmemcachedサーバに対してincrを実行し、それをNagiosで監視、エラーの回数が一定回数を超えたら警告を上げるなどの利用方法が考えられます。

check_memcached_val.pl
https://github.com/kazeburo/check_memcached_val

Perl 5.8.5以降が入っている環境であれば、おそくらコピーすればうごくはずです。

使い方

取得した値が指定した範囲にあるか・ないかの監視

$ ./check_memcached_val.pl -H ホスト -P ポート -k キャッシュのキー -w warningの閾値 -c criticalの閾値

正規表現での監視

$ ./check_memcached_val.pl -H ホスト -P ポート -k キャッシュのキー -r foo

変化・差分量の監視、秒間のrateになります

$ ./check_memcached_val.pl -H ホスト -P ポート -k キャッシュのキー --rate -w warningの閾値 -c criticalの閾値

rateオプションを指定した場合、監視の結果をtempdir以下のファイルに保存します。ファイルが存在していない初回の監視では自動でOKとなります

オプション

-h, —help
ヘルプの表示
-H, —hostname=STRING
ホスト名・IPアドレス
-P, —port=INTEGER
ポート番号・デフォルトは「11211」
-k, —key=STRING
取得するキャッシュのキー
-s, —string=STRING
文字列一致の監視
-r, —ereg=REGEX
正規表現での監視。perlの正規表現が使えます
-R, —eregi=REGEX
正規表現での監視。大文字小文字無視
—invert-search
-s,-r,-Rの監視結果を反転します
-w, —warning=THRESHOLD
取得した値が数値の場合の監視閾値
-c, —critical=THRESHOLD
取得した値が数値の場合の監視閾値
-t, —timeout=INTEGER
memcachedサーバへ接続する際のタイムアウト。デフォルト「10」
—rate
変化・差分量監視を有効にする
—rate-multiplier=INTEGER
—rateで得られた数値に一定の係数を掛ける

THRESHOLDの形式は Nagiosのドキュメントを参照してください。
http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMAT

特別な値「0E0」

memcachedから「0E0」という文字列が得られた場合は、このプラグインは「OK」となります。監視対象で差分計算をしていてまだデータがそろっていない場合などに、0E0をsetしておくとアラートが上がらなくて済みます。App::derivedはデータの準備ができるまで「0E0」を返すようになっています

このブログ記事について

このページは、Masahiro Naganoが2013年2月13日 10:39に書いたブログ記事です。

ひとつ前のブログ記事は「Nagiosのcheck_snmpプラグインの --rate オプションを試す」です。

次のブログ記事は「Nagios と derived でMySQLのスロークエリの量を監視する」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 4.27-ja