ganglia入れてみた
gangliaのインストールメモです。
はじめに
gangliaとは
リモートにある大量のサーバ(=管理対象ノード)を一元管理できるオープンソースの管理ソフトウェア
http://thinkit.co.jp/free/article/0611/13/1/より引用
今回導入した理由は、単純にリソースがどう使われているか時系列で見たかったからです。というか、webサービスやるんなら入れといた方がいい。
インストール環境
uname -a Linux ○○ 2.6.18-92.1.13.el5 #1 SMP Wed Sep 24 19:33:52 EDT 2008 i686 i686 i386 GNU/Linux
cat /etc/issue CentOS release 5.2 (Final)
インストール方法
rootで作業します。
依存関係のモジュールをインストール
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 libpng-devel libart_lgpl-devel rrdtool-devel freetype-devel libconfuse-devel rrdtool perl-rrdtool
ダウンロードしたいディレクトリへ移動(別にどこでも)
cd /usr/local/src
gangliaの本体をダウンロード。
wget http://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/3.1.1%20%28Wien%29/ganglia-3.1.1-1.src.rpm/download
rpmをビルド
rpmbuild --rebuild ganglia-3.1.1-1.src.rpm
cd /usr/src/redhat/RPMS/i386
ビルドしたrpmをインストール
rpm -ivh ./libganglia-3_1_0-3.1.1-1.i386.rpm rpm -ivh ./ganglia-gmetad-3.1.1-1.i386.rpm rpm -ivh ./ganglia-gmond-3.1.1-1.i386.rpm rpm -ivh ./ganglia-gmond-modules-python-3.1.1-1.i386.rpm rpm -ivh ./ganglia-debuginfo-3.1.1-1.i386.rpm rpm -ivh ./ganglia-devel-3.1.1-1.i386.rpm
gangliaは、マルチキャストを使用するので設定
vi /etc/sysconfig/network-scripts/route-eth1 (追加)239.2.11.71 dev eth1
ネットワーク再起動
service network restart
確認
netstat -rn
gmetad.confを書き換える。
今回は、localhostとローカルネットワークにある192.168.1.11サーバーも監視の対象にする。このサーバーもwebサービスが動いている。
vi /etc/ganglia/gmetad.conf 複数ある場合は、cluster。 data_source "my cluster" localhost data_source "my cluster" 192.168.1.11 信頼できるホスト trusted_hosts localhost 192.168.1.11 apache? setuid_username = “apache”
gmond.confを書き換える。
最低限の設定なので、太字の部分を書き換えるだけ。
vi /etc/ganglia/gmond.conf clusterの名前を合わせるだけ。 マルチキャストのアドレスは、デフォルトに従う。 globals { daemonize = yes setuid = yes user = apache debug_level = 0 max_udp_msg_len = 1472 mute = no deaf = no host_dmax = 0 /*secs */ cleanup_threshold = 300 /*secs */ gexec = no send_metadata_interval = 0 } cluster { name = "my cluster" owner = "unspecified" latlong = "unspecified" url = "unspecified" }
所有者の変更
chown apache:apache /var/lib/ganglia/rrds
起動
service gmetad start
テスト
xmlが表示されたらok
telnet localhost 8651
gangliaのレポートは、webでグラフとして閲覧できるので公開ディレクトリの設定をapacheで設定する。
・・・
ん? どこ?
updatedb &
待つ・・・
locate ganglia | grep php
あれない・・・
てか、README読めってことか。
ってREADMEもない。
しかたないのでtarを持ってくる。
wget http://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/3.1.1%20%28Wien%29/ganglia-3.1.1.tar.gz/download
解凍
tar zxfp ./ganglia-3.1.1
README
./web
どっちもありましたー。
自分は、公開ディレクトリは/var/www/vhosts/配下にしてるのでそうします。
mkdir /var/www/vhosts/ganglia cp -a ./web/* /var/www/vhosts/ganglia
次はバーチャルホストの設定
ここは各々設定してください
apacheリロード
service httpd configtest service httpd reload
早速アクセスしてみる。
が、なんか上手く表示されない。。。
phpのファイルを編集したりしないといけない。
とりあえずphpの場所まで移動
cd /var/www/vhosts/ganglia
conf.phpを配置
cp ./conf.php.in ./conf.php (編集) $gmetad_root = "/var/lib/ganglia";
version.phpの配置
cp ./version.php.in ./version.php (編集) $majorversion = 3; $minorversion = 1; $microversion = 1; $ganglia_version = "3.1.1";
自分はphpメインの人なのですんなり解決。
こういうのってREADMEに書いとかなくていいのかなー。。。
ブラウザでアクセスしてokなら次。
ここから192.168.1.11で作業。
192.168.1.11にganglia配置
ライブラリを入れる
yum install libconfuse
さっき作ったrpmを持ってきてインストール
rpm -ivh libganglia-3_1_0-3.1.1-1.i386.rpm rpm -ivh ganglia-gmond-3.1.1-1.i386.rpm rpm -ivh ganglia-gmond-modules-python-3.1.1-1.i386.rpm
マルチキャストの設定
vi /etc/sysconfig/network-scripts/route-eth1 (追加)239.2.11.71 dev eth1
ネットワーク再起動
service network restart
確認
netstat -rn
gmond.confを書き換える。
太字のとこを書き換えるだけ。
vi /etc/ganglia/gmond.conf globals { daemonize = yes setuid = yes user = apache debug_level = 0 max_udp_msg_len = 1472 mute = no deaf = no host_dmax = 0 /*secs */ cleanup_threshold = 300 /*secs */ gexec = no send_metadata_interval = 0 } cluster { name = "my cluster" owner = "unspecified" latlong = "unspecified" url = "unspecified" }
ポート開ける
iptables -A INPUT -p tcp --dport 8649 -j ACCEPT
起動
service gmond start
確認
service gmond status
ブラウザでレポート画面にアクセスしてちゃんとグラフがlocalhostと192.168.1.11が表示されてたらok。