Ganglia + Nagios でメトリクス収集 + 監視をしている場合のリモートサーバに対する独自な監視

とりあえず書いておく。

  • Ganglia gmetric をキックする処理を書く
    • 単に gmetric をキックするだけでよい。あとは gmond + gmetad がなんとかしてくれるし、その後は check_ganglia.py に乗っかれば良い。
    • gmetric はちゃんと man を読むべし。ググって頭の方に出てくるのは古い情報のようだ。
    • やり方にもよるのだろうが、極めてやっつけ感が高く、結果、これホントにメンテすんの?感も高い
    • 推移を見たい場合かつラクに済ませたいならこれしか選択しないのでは。
  • Nagios NRPE と各種 Nagios Plugin を使う
    • 監視対象のリモートサーバに NRPE をインストールする必要がある
    • SSL を使う場合、 openssl, openssl-devel もインストールする必要がある
    • 全サーバに共通の仕組みたるコード群はおいておきつつも、その呼び出し方は Nagios 本体側のサーバに委ねられているので、管理しやすさ高い印象
    • いきなり Nagios なので、推移を見ることはできないが、それでいいケース(例えば固定的なプロセスの数のチェック)であれば問題なかろう。
    • 結局、各サーバの nrpe.cfg を適切に各必要がある。が、これは全サーバ共通にしておけば、運用コストは低かろうし、ふつうそうなる。
    • NRPE 自体は RPMFORGE にもあるので、それで簡単にインストールできる
    • Nagiosプラグインは、極めて簡単なルールに則ってさえいればよいものなので、実はとてもラクで柔軟性も極めて高い
  • Nagios check_by_ssh でリモート側の処理を任意に呼び出す
    • Ganglia を使っていない場合に、もっともラクで柔軟な方法だろう
    • もちろんオーバーヘッドは比較的多いのだろう
    • ただしこの場合でも、監視対象のリモートサーバに、パスワード入力なしで入れるように仕込んでおく必要はあり、 Ganglia を入れている場合は、次善の策になろう。
    • やっつけ感は高いが、 Nagios 本体のサーバ1台だけの問題になるので、シンプルさは際立つ。
  • Ganglia で独自のメトリクス収集モジュールを実装
    • ネイティブよりの話。よく知らん。
    • これも、ここさえやってしまえば、あとは check_ganglia.py とそれの呼び出しでよい。
  • Nagios check_snmp + SNMP で返す処理
    • ただ単にめんどくさいだけという話はあるかもしれない。
    • SNMP がらみ
    • SNMP 関係の知識が別途必要であるのと、もちろん、監視対象で snmpd が動いている必要があろうことから、めんどくさい度は高い。