1.安装依赖
rpm -ivh http://mirrors.sohu.com/centos/5/os/x86_64/CentOS/zlib-devel-1.2.3-3.x86_64.rpm
rpm -ivh http://mirrors.sohu.com/centos/5/os/x86_64/CentOS/freetype-devel-2.2.1-28.el5_5.1.x86_64.rpm
rpm -ivh http://mirrors.sohu.com/centos/5/os/x86_64/CentOS/libart_lgpl-devel-2.3.17-4.x86_64.rpm
rpm -ivh http://mirrors.sohu.com/centos/5/os/x86_64/CentOS/libpng-devel-1.2.10-7.1.el5_5.3.x86_64.rpm
如果上述安装失败,可能需要安装以下库依赖
yum install zlib freetype libart_lgpl libpng
2.安装rrdtools
http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.27.tar.gz
tar zxvf rrdtool-1.2.27.tar
cd rrdtool-1.2.27
./configure --prefix=/usr/local/rrdtool
make
make install
执行下命令,看是否安装成功
/usr/local/rrdtool/bin/rrdtool
3.安装expat依赖
http://downloads.sourceforge.net/project/expat/expat/2.0.1/expat-2.0.1.tar.gz?use_mirror=cdnetworks-kr-2
tar zxvf expat-2.0.1.tar.gz
./configure --prefix=/usr/local/expat
make
make install
对于64位操作系统,需要手动的拷贝下动态链接库到lib64下
mkdir /usr/local/expat/lib64
cp -a /usr/local/expat/lib/* /usr/local/expat/lib64/
4.安装apr以及apr-util
http://labs.renren.com/apache-mirror/apr/apr-1.4.5.tar.gz
tar xvjf apr-1.3.2.tar.bz2
./configure --prefix=/usr/local/apr
make
make install
http://labs.renren.com/apache-mirror/apr/apr-util-1.3.12.tar.gz
tar xvjf apr-util-1.3.2.tar.bz2
./configure --with-apr=/usr/local/apr --with-expat=/usr/local/expat
make
make install
同样64位机器需要拷贝动态链接库
/bin/cp -f /usr/local/apr/include/apr-1/* /usr/local/apr/include/
mkdir -p /usr/local/apr/lib64
/bin/cp -a -f /usr/local/apr/lib/* /usr/local/apr/lib64/
5.安装confuse
http://download.savannah.gnu.org/releases/confuse/confuse-2.7.tar.gz
tar zxvf confuse-2.6.tar.gz
./configure CFLAGS=-fPIC --disable-nls --prefix=/usr/local/confuse
make
make install
拷贝动态链接库
mkdir -p /usr/local/confuse/lib64
/bin/cp -a -f /usr/local/confuse/lib/* /usr/local/confuse/lib64/
6.安装ganglia
现在才是安装ganglia的开始,如果提示需要pcre的话,安装下
yum install pcre
下载ganglia-3.2.0,解压,安装 ./configure --prefix=/usr/local/ganglia --with-librrd=/usr/local/rrdtool --with-libapr=/usr/local/apr --with-libexpat=/usr/local/expat \
--with-libconfuse=/usr/local/confuse --with-gmetad --enable-gexec --enable-status --sysconfdir=/etc/ganglia
make
make install
7.服务端配置
创建rrdtool数据目录,看$ganglia-3.2.0/web/conf.php里面的gmetad_root变量,并根据apache的运行用户创建权限,例如apache运行于apache用户上 。
mkdir -p /var/lib/ganglia/rrds
mkdir -p /var/lib/ganglia/dwoo
chown -R apache;apache /var/lib/ganglia
配置一个数据源,修改/etc/ganglia/gmetad.conf文件,同时将运行用户设置为rrdtool的目录权限用户,例如apache用户
data_source "suc" localhost
setuid_username "apache"
其中suc是数据源的名称,客户端分组会依赖此名称,后面会提到。 添加自启动脚本
/bin/cp -f gmetad/gmetad.init /etc/init.d/gmetad
/bin/cp -f /usr/local/ganglia/sbin/gmetad /usr/sbin/gmetad
chkconfig -add gmetad
启动gmetad服务
service gmetad start
看见Starting GANGLIA gmetad: [ OK ]就代表运行正常了。
8.客户端配置(gmond节点)
本机安装如下:
/bin/cp -f gmond/gmond.init /etc/init.d/gmond
/bin/cp -f /usr/local/ganglia/sbin/gmond/usr/sbin/gmond
chkconfig -add gmond
gmond --default_config > /etc/ganglia/gmond.conf
对于生成的默认配置文件需要做适当的修改
cluster {
name="suc"
owner="apache"
latlong="unspecified"
url="unspecified"
}
其中name是将要在服务端进行的分组,是服务端的数据源。接下来开启服务
service gmond start
看见Starting GANGLIA gmetad: [ OK ]代表启动成功。如果有失败,可以讲gmond.conf中的debug有0改为100,看更多的日志,然后进行排查。
globals {
daemonize = yes
setuid = yes
user = nobody
debug_level = 100
}
非本机客户端配置需要安装服务端安装一样进行配置,运行,非常麻烦,这里使用本机安装好的文件进行安装。 使用下面的脚本进行安装deploy-ganglia.sh
i=$1
scp /usr/sbin/gmond $i:/usr/sbin/gmond
ssh $i mkdir -p /etc/ganglia/
ssh $i mkdir -p /usr/local/ganglia/lib64
ssh $i mkdir -p /usr/local/expat/lib
scp /etc/ganglia/gmond.conf $i:/etc/ganglia/
scp /etc/init.d/gmond $i:/etc/init.d/
scp -r /usr/local/ganglia/lib64/* $i:/usr/local/ganglia/lib64/
scp /usr/local/expat/lib/libexpat.so.1 $i:/usr/local/expat/lib/libexpat.so.1
scp /usr/lib64/libapr-1.so.0 $i:/usr/lib64/
实际上就是将本机安装好(编译好)的动态链接库拷贝到其它机器上,使用如下命令拷贝即可。
for i in `cat /tmp/mynodes`; do
scp /usr/sbin/gmond $i:/usr/sbin/gmond
ssh $i mkdir -p /etc/ganglia/
ssh $i mkdir -p /usr/local/ganglia/lib64
ssh $i mkdir -p /usr/local/expat/lib
scp /etc/ganglia/gmond.conf $i:/etc/ganglia/
scp gmond $i:/etc/init.d/
scp -r /usr/local/ganglia/lib64/* $i:/usr/local/ganglia/lib64/
scp /usr/local/expat/lib/libexpat.so.1 $i:/usr/local/expat/lib/libexpat.so.1
scp /usr/lib64/libapr-1.so.0 $i:/usr/lib64/
ssh $i service gmond restart
read -p "check copy ok?"
done
注意:
Ø 客户端gmond的位置为usr/sbin/gmond,拷贝之前务必检查/etc/init.d/gmond文件中GMOND=/usr/sbin/gmond,确保2者一致。
Ø 服务器中的/etc/ganglia/gmetad.conf中的data_source的名字必须与客户端中/etc/ganglia/gmond的clustername保持一致。如服务器中的data_source如下;data_source "host62" localhost
data_source "host62" 192.168.1.62
data_source "host76" 192.168.1.76
data_source "host75" 192.168.1.75
data_source "host70" 192.168.1.70
data_source "host72" 192.168.1.72
data_source "host65" 192.168.1.65
data_source "host66" 192.168.1.66
在客户端的配置:cluster {
name = "host62"
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
9.gweb2.0的安装
先决条件:yum install php-pear
pecl install json
tar -zxvf gweb-2.2.0.tar.gz
手工安装,执行如下指令:
APACHE_USER="apache"
DEST_DIR="/var/www/ganglia2"
sed -e "s|@varstatedir@|/var/lib|" conf_default.php.in > conf_default.php
install -o $APACHE_USER -d /var/lib/ganglia/dwoo
install -o $APACHE_USER -d /var/lib/ganglia/conf
chown -R $APACHE_USER $DEST_DIR/conf
rsync -a $DEST_DIR/conf/ /var/lib/ganglia/conf/
对于普通的web自动安装方法如下:
1. cd: ganglia-3.3.1/web
2. vi Makefile
3. 设置DESTDIR = /var/www/html/ganglia(http的目录)
执行make install
APACHE_USER = apache (用户名)
对于web界面出现的问题可以进行如下检查
1.检查conf_default.php中的rrdtool目录
$conf['rrdtool'] = "/usr/bin/rrdtool";
2.查看/var/log/httpd/error_log
10.Ganglia有图形界面,但是数据无法显示。
请检查gmond和gmetad server的时间,确保一致。可以执行ntpdate time.windows.com
11.Gmetad和Gmond没有起来
可以执行/usr/local/ganglia/sbin/gmeated –debug=4 查看详细的启动日志。
12.重要参考:
http://www.blogjava.net/xylz/archive/2011/07/21/354744.html