RLB

Just sharing knowledge

GangliaをCentOS5とCentOS6で同期させる

f:id:rksz:20130211175828p:plain

RHEL5のyumで入るGangliaは3.0系のため、RHEL6の3.1系と全く互換性がない。そのため、残念ながら3.1.7のgmetadを使っても待てど暮らせど対象クライアントが追加されない・・・yummerにとってまさに痛手。今回は3.1.7(RHEL6系)をベースとして、CentOS5で同一バージョンのRPM作成する際の導入手順を記載します。

手順

とりあえず古いgangliaは削除

yum remove ganglia-gmetad ganglia-gmond

RPM作成のためにライブラリ以下ダウンロード

yum install libconfuse-devel libconfuse rrdtool rrdtool-devel perl-rrdtool pcre-devel apr-devel expat-devel freetype-devel gcc-c++ libart_lgpl-devel libpng-devel python-devel rpm-build
#不足があれば、rpmbuildでコケるので、適宜追加

Gangliaのソースファイルを取得(Sourceforge)

http://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/

なお、3.1.7を推奨。それより新しい場合だと、libexpat.1.soが必要となり、RHEL5系ではさらにインストールが面倒なため、スキップ。

RPM作成

rpmbuild -ta --target noarch /root/ganglia-3.1.7.tar.gz
rpmbuild -ta --target x86_64 /root/ganglia-3.1.7.tar.gz

以下にRPM作成されているはず。

ll /usr/src/redhat/RPMS/x86_64
-rw-r--r-- 1 root root 479370  211 17:00 ganglia-debuginfo-3.1.7-1.x86_64.rpm
-rw-r--r-- 1 root root  52208  211 17:00 ganglia-devel-3.1.7-1.x86_64.rpm
-rw-r--r-- 1 root root  38093  211 17:00 ganglia-gmetad-3.1.7-1.x86_64.rpm
-rw-r--r-- 1 root root 158903  211 17:00 ganglia-gmond-3.1.7-1.x86_64.rpm
-rw-r--r-- 1 root root  28552  211 17:00 ganglia-gmond-modules-python-3.1.7-1.x86_64.rpm
-rw-r--r-- 1 root root  45405  211 17:00 libganglia-3_1_0-3.1.7-1.x86_64.rpm

ll /usr/src/redhat/RPMS/noarch
-rw-r--r-- 1 root root 119222  211 17:02 ganglia-web-3.1.7-1.noarch.rpm

あとはrpmコマンドでインストール

rpm -ivh libganglia-3_1_0-3.1.7-1.x86_64.rpm
rpm -ivh ganglia-gmond*

これで無事に同期できます。手順にすると簡単ですな。

余談:Gangliaで図が出てこない(画像なしになる) [※追記: 2013/02/16]

1)network restart -> gmond restart

service network restart
service gmond restart

一回この方法をやってみて、直った。

2)初回のみ読み込みクライアント数を減らしてみる

大量に新クライアントを作成するとグラフが出来ないことがあった。

その場合、既に稼働している他のGmondクライアントを減らしてみて、一回単体で起動させたりすると・・・グラフが表示されるようになった(経験)。最初にちゃんとグラフ作成されると、ちゃんとグラフが読み込まれるようになった。こちら詳細は不明。アプリケーション内部を読む必要あり。