大量ノード監視ツール「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にくらべ、設定項目が少なく、マルチキャストで取得できるという点が大量ノードのリソース監視に使われるという大きな理由なんでしょうね。