Ganglia是一个分布式的监控系统,可用来监控集群内机器的性能,如I/O负载、内存利用率、网络流量,并能够把工作状态在web端通过曲线呈现出来。
(接到任务时,很迷茫,网上各处找安装文档,但是每个都处理的不太好,试了几次都没有成功,特此记录一个小白都能用的文档)
所依赖软件安装:
安装四个依赖库zlib、freetype、libart_lgpl、libpng,同时需要有apache或nginx支持web server,php环境和python(别人都写要升到2.6+,不过我的环境下2.4.3也能用)
步骤:
rpm -qa |grep zlib #检查是否有zlib-devel版本
yum install zlib-devel #自动检查安装
其他三个也用同样的方法
安装画图工具rrdtools:
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.27.tar.gz
tar zxvf rrdtool-1.2.27.tar.gz
cd rrdtool-1.2.27
./configure --prefix=/usr/local/rrdtool
make
make install
检查是否安装成功,执行下面的命令:
/usr/local/rrdtool/bin/rrdtool
安装expat
wget http://downloads.sourceforge.net/expat/expat-2.0.1.tar.gz
tar zxvf expat-2.0.1.tar.gz
cd expat-2.0.1
./configure –prefix=/usr/local/expat
make
make install
复制lib包下的内容到lib64目录下:
mkdir /usr/local/expat/lib64
cp -a /usr/local/expat/lib/* /usr/local/expat/lib64/
安装apr及apr-util:
wget http://mirrors.cnnic.cn/apache//apr/apr-1.5.1.tar.gz
tar xvjf apr-1.3.2.tar.bz2
./configure --prefix=/usr/local/apr
make
make install
wget http://mirrors.cnnic.cn/apache//apr/apr-util-1.5.3.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
复制lib包下的内容到lib64目录下:
cp -f /usr/local/apr/include/apr-1/* /usr/local/apr/include/
mkdir -p /usr/local/apr/lib64
cp -a -f /usr/local/apr/lib/* /usr/local/apr/lib64/
安装confuse:
wget 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
复制lib包下的内容到lib64目录下:
mkdir -p /usr/local/confuse/lib64
cp -a -f /usr/local/confuse/lib/* /usr/local/confuse/lib64/
安装ganglia:
wget http://sourceforge.net/projects/ganglia/files/pre-release/ganglia-3.5.0.tar.gz/download?use_mirror=jaist
tar zxvf ganglia-3.5.0.tar.gz
cd ganglia-3.5.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
环境配置
服务端配置:
为rrdtool创建数据库存放目录
mkdir -p /var/lib/ganglia/rrds
chown -R nobody:nobody /var/lib/ganglia/rrds
修改服务进程文本
vim /etc/ganglia/gmetad.conf
data_source "zk" localhost #引号里为名称,可随意定义,localhost在配集群时为每个机器的ip
setuid_username "nobody"[运行的用户]
将gmetad添加到系统服务
cd ganglia-3.5.0
cp gmetad/gmetad.init /etc/init.d/gmetad
gmetad给chkconfig托管
chkconfig--add gmetad
启动服务:
service gmetad start
Starting GANGLIA gmetad: [ OK ]
见到[ ok ] 说明启动成功
客户端配置:
将gmond添加到系统服务
cd ganglia-3.5.0
cp -f gmond/gmond.init /etc/init.d/gmond
cp -f /usr/local/ganglia/sbin/gmond /usr/sbin/gmond
chkconfig -add gmond
gmond --default_config > /etc/ganglia/gmond.conf
修改gmond配置文件
vim /etc/ganglia/gmond.conf
cluster {
name = "zk"
owner = "nobody"
latlong = "unspecified"
url = "unspecified"
}
开启gmond服务
service gmond start
Starting GANGLIA gmetad: [ OK ]
见到[ ok ]说明启动成功
非当前服务端机器只需要将本地机器安装好的lib64下的文件复制过来即可(别人写的脚本),然后和上面的修改方法一样;也可以按上面的步骤一步步安装,最后只需配gmond即可;
servers=("server_ip_1" "server_ip_2")
for i in ${servers[@]}
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 /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/
done
安装ganglia-web页面
wget http://sourceforge.net/projects/ganglia/files/ganglia-web/3.5.4/ganglia-web-3.5.4.tar.gz/download?use_mirror=jaist
tar -xvf ganglia-web-3.5.4.tar.gz
cp -r ganglia-web-3.5.4/ /var/www/html/ganglia
cd /var/www/html/ganglia
vim Makefile
修改GDESTDIR和APACHE_USER,然后执行make installjinxing安装
GDESTDIR=/usr/local/apache2/htdocs/ganglia
APACHE_USER=daemon
make install
cp conf_default.php conf.php
vim conf.php,修改如下参数:
$conf['gmetad_root'] = "/var/lib/ganglia";
$conf['rrds'] = "${conf['gmetad_root']}/rrds";
$conf['rrdtool'] = "/usr/local/bin/rrdtool";
$conf['external_location'] = "http://SERVER/ganglia"; //把SERVER替换成自己的
$conf['case_sensitive_hostnames'] = false;
重启gmetad和gmond
service gmetad start
service gmond start