GrowthForecastの値をNagiosから監視できるようにすると #fluentd がより活用できる
Fluentd からGrowthForecastへデータを投入するためのプラグイン fluent-plugin-growthforecast を作って使っている。
fluent-plugin-flowcounter および fluent-plugin-growthforecast released! #fluentd - tagomorisのメモ置き場
で、このGrowthForecastには最近、データをJSONで出力する機能がついた。
GrowthForecastに1分更新グラフ作成とサマリーなどのJSONフォーマットでの出力機能追加 - blog.nomadscafe.jp
つまりFluentdからストリーム状に入力したデータを可視化しつつ、更に時系列データとしての(変則の)ストレージとしても使えるようになった、ということだ。つまりつまり、最近の3数値平均をとってそれを相手になんかチェックとかすることができるようになったということで、こいつをNagiosから監視してやればいろいろと捗るに違いない!(上のエントリにも書いてあるけど)
ということで、そのようなスクリプトを書いた。
このスクリプトファイルをNagiosのプラグインディレクトリに置き実行権限をつけ、あとは適当な場所に必要なperl moduleをインストールしてそのディレクトリを use lib 行に書き、ついでにGrowthForecastのURLを $url にセットする。
# cpanmは適当に入手して適当な場所に置き chmod +x してPATHを通して(もしくは絶対パスで指定して)起動する cpanm -l/path/to/modules/dir/extlib -n JSON::XS Furl Try::Tiny
んで以下のように使えるはず。
# 上がりすぎたらアラート出したい数値の指定、80でWARNING 95でCRITICALの場合 $ ./check_gf_value.pl -i /service/section/name -w 80 -c 95 # 上がったらアラート、を明示的に指定 $ ./check_gf_value.pl -i /service/section/name -U -w 80 -c 95 # 下がったらアラートの場合 $ ./check_gf_value.pl -i /service/section/name -D -w 30 -c 10
たいへん簡単なのでみんなも使って、Fluentdでリアルタイムで数値生成、GrowthForecastで可視化、Nagiosで監視というパラダイスを満喫するといいと思います。