大量ノード監視ツール「Ganglia」を試してみた
	Gangliaとは大量ノード(この場合ノードとは「サーバー」を意味します)のリソース監視をするためのツールです。
	グラフを作成してくれるのですが、それにはRRDToolを使用します。
	ウェブインターフェースはPHPで記述されているため、カスタマイズがしやすいことやSNMPではなくネットワークのマルチキャストでgangliaの情報収集モジュールがインストールされたサーバーの情報取得するというのも特徴です。
確かにSNMP+MRTGに比べるとノード追加時に行わなければならない設定が少ないので、手軽だと感じました。
インストールのこぼれ話
	それではインストールをはじめていきましょう。
	GangliaをインストールするのはScientific Linux 6.0です。
	当初、yumでインストールできるとは思っていなかったので、ソースをコンパイルしてインストールしていました。
	とりあえず、その時のメモ。そのままインストール方法をご覧になりたい方はここらへんはすっ飛ばしてください。
	.tar.gzのファイルGangliaの公式(SourceForge)からwgetでダウンロードして展開、configureした段階で色々依存モジュールが足りないことが判明。
	ということで、とあるサイトで必要といわれていた以下1行目のインストール以外に2行目もインストール。
yum install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpmbuild glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devel libXrender-devel yum install rrdtool rrdtool-devel libconfuse libconfuse-devel pcre pcre-devel
これでconfigureを実行したら、うまくいけました。
./configure --with-gmetad
ちょっと感動的だったのが以下のようなAAで出迎えてくれるあたり。ついに俺も迎え入れられたかって感じ。
Welcome to..
     ______                  ___
    / ____/___ _____  ____ _/ (_)___ _
   / / __/ __ `/ __ \/ __ `/ / / __ `/
  / /_/ / /_/ / / / / /_/ / / / /_/ /
  \____/\__,_/_/ /_/\__, /_/_/\__,_/
                   /____/
Copyright (c) 2005 University of California, Berkeley
Version: 3.2.0.0
Library: Release 3.2.0.0 0:0:0
Type "make" to compile.
	ところが、ここから先がいろいろ設定できないという始末。あまり深いところまで追求しないのが俺です。
	あきらめモードでオフィシャルのドキュメント読んでたら、
apt-get ganglia-monitor
とか書いてある。
	えっ!?
	もしかしてパッケージマネージャーでインストールできるの?
Gangliaをyumでインストール
ということで、
yum install ganglia
	とかしたら、epelレポジトリにあった。
	いろいろ調べてみると以下のインストールをしなければならない。
yum install ganglia ganglia-web ganglia-gmond ganglia-gmetad
	これでインストールは完了します。
	でも、これだけではブラウザからGangliaにアクセスできません。
Apacheの拡張設定ファイルで、アクセス制限がしてあるので、とりあえず簡易的に以下のように書き換えます。
# vi /etc/httpd/conf.d/ganglia.conf
  #
  # Ganglia monitoring system php web frontend
  #
  Alias /ganglia /usr/share/ganglia
  <Location /ganglia>
    Allow from all
#    Order deny,allow
#    Deny from all
#    Allow from 127.0.0.1
#    Allow from ::1
#    # Allow from .example.com
  </Location>
以下のファイルを開き、監視対象サーバー(この場合は自分自身になりますが)の名前をつけてやります。
# vi /etc/ganglia/gmond.conf
cluster {
  name = "mysl6.net" ←名前をつける
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}
で、あとは以下のコマンドでプロセスを立ち上げます。
/etc/init.d/gmond start /etc/init.d/gmetad start /etc/init.d/httpd restart
するとhttp://ホスト名/ganglia/にアクセスするとグラフが確認できます。
監視ノードの追加
	監視ノードの追加には監視対象のサーバーへの設定が必要です。
	データはマルチキャストでやりとりされるため、細かい設定はひとまずなくてもデータを取得できます。
マルチキャストとはとあるIPアドレス帯にぶら下がっているノード(マシン)に対してパケット(データ)を送ることです。
	それでは監視対象の設定をしていきます。
	今回の監視対象はCentOS 6.0です。
CentOS 6.0上で以下のコマンドを実行してください。
yum install ganglia ganglia-gmond
同じように名前をつけてやります。
# vi /etc/ganglia/gmond.conf
cluster {
  name = "myc6.net" ←名前をつける
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}
これでgmondを起動してやります。
/etc/init.d/gmond start
もうお気づきかもしれませんが、Gangliaのデータ収集はgmondというデーモンで行っています。
	再び、Gangliaのウェブインターフェースにアクセスして、追加したサーバーのグラフが確認できればOKです。
	SNMP+MRTGにくらべ、設定項目が少なく、マルチキャストで取得できるという点が大量ノードのリソース監視に使われるという大きな理由なんでしょうね。
コメント