Hadoop + Ganglia 3.1.x + Nagios
なぜそうするのか
- Hadoop のメトリクスはファイルに書き出すこともできる(FileContext を指定すればよい)ので、それを読み込むとかでもいいんだろうが、せっかく GangliaContext, GangliaContext31 が用意されているので、それを使って Ganglia がメトリクスを収集した方が圧倒的にラクなようだから。
- 収集したメトリクスの監視に Nagios を利用するのも、 Ganglia が check_ganglia.py という Nagios 用の監視スクリプトを提供していて、極めてかんたんに導入できるから。
- Hadoop徹底入門にも Ganglia によるメトリクス収集が紹介されているから。
導入や設定の手順
マルチキャストを使うことの是非
- 是非と書いたものの、是非を挙げられるほどわかっていない。
- とりあえずは、ユニキャストでひとつの gmond に集めた場合、それが落ちれば、即座にメトリクス収集ができなくなるが、マルチキャストしておけば、そのマルチキャストグループに属する他のホストを見るように直せばよいだけになる。
- gmetad が見ているホストが落ちたかどうかは、別途、動かしている Nagios で検出すればよかろう。もちろん、冗長化として、Virtual IP を振って、というのもあるかもしれないが、そのあたりは言及できるほどには知らない。
- 天邪鬼に、手動で複数のホストにユニキャストで、というのもああるが、それやるぐらいなら素直にマルチキャストにする方がラクだろう。