1. 安装rrdtool
1.1. 安装依赖包
Ø 拷贝CentOS软件包
将CentOS安装光盘中的rpm包拷贝到/root/下,以备使用。
Ø 安装zlib开发包
rpm -ivh /root/CentOS/zlib-devel-1.2.3-3.x86_64.rpm
Ø 安装freetype开发包:
rpm -ivh /root/CentOS/freetype-devel-2.2.1-21.el5_3.x86_64.rpm
Ø 安装libart开发包:
rpm -ivh /root/CentOS/libart_lgpl-devel-2.3.17-4.x86_64.rpm
Ø 安装libpng开发包:
rpm -ivh /root/CentOS/libpng-devel-1.2.10-7.1.el5_3.2.x86_64.rpm
1.2. 安装rrdtool
Ø 准备rrdtool源码包
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
如果出现以下文字说明安装成功:
RRDtool 1.2.27 Copyright 1997-2008 by Tobias Oetiker <tobi@oetiker.ch>
Compiled May 24 2011 11:46:06
...
Ø 可能出现的问题
pkg-config找不到lib包,不用纠结于pkg-config,一定是某些lib没装好。
在configure rrdtool时会提升哪些包未装好,记得安装这些lib的源码包
2. 安装ganglia
2.1. 安装依赖软件
ganglia依赖以下软件:、
expat-2.0.1.tar.gz,apr-1.3.2.tar.bz2,apr-util-1.3.2.tar.bz2, confuse-2.6.tar.gz
Ø 安装expat-2.0.1.tar
tar zxvf expat-2.0.1.tar.gz
./configure --prefix=/usr/local/expat
make
make install
mkdir /usr/local/expat/lib64
cp -a /usr/local/expat/lib/* /usr/local/expat/lib64/
32位操作系统不用做上面两步
Ø 安装apr-1.3.2.tar.bz2
tar xvjf apr-1.3.2.tar.bz2
./configure --prefix=/usr/local/apr
make
make install
Ø 安装apr-util-1.3.2.tar.bz2
tar xvjf apr-util-1.3.2.tar.bz2
./configure –with-apr=/usr/local/apr –with-expat=/usr/local/expat
make
make install
cp /usr/local/apr/include/apr-1/* /usr/local/apr/include/
因为ganglia安装时默认会去/usr/local/apr/include下寻找apr的库文件
mkdir /usr/local/apr/lib64
cp -a /usr/local/apr/lib/* /usr/local/apr/lib64/
32位操作系统不用做上面两步
Ø 安装confuse-2.6.tar.gz
tar zxvf confuse-2.6.tar.gz
./configure CFLAGS=-fPIC --disable-nls --prefix=/usr/local/confuse
make
make install
mkdir /usr/local/confuse/lib64
cp -a /usr/local/confuse/lib/* /usr/local/confuse/lib64/
32位操作系统不用做上面两步
2.2. 安装ganglia管理端(gmetad)
(1) 解压
tar zxvf ganglia-3.1.7.tar.gz
(2) 配置
./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
(3) 编译,安装
make
make install
(4) 为rrdtool创建数据存放目录
mkdir -p /var/lib/ganglia/rrds
chown -R nobody:nobody /var/lib/ganglia/rrds
(5) 将gmetad添加到系统服务
cp {ganglia解压目录}gmetad/gmetad.init /etc/init.d/gmetad
(6) 将gmetad命令加入到/usr/sbin/目录
cp /usr/local/ganglia/sbin/gmetad /usr/sbin/
(7) gmetad给 chkconfig托管
chkconfig --add gmetad
(8) 开启gmetad服务
service gmetad start
Starting GANGLIA gmetad: [ OK ]
见到[OK]字样说明启动成功。
2.3. 安装ganglia节点(gmond)
(1) 解压同gmetad
(2) 配置:比gmetad时少“–with-gmetad”参数
(3) ./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 –enable-gexec –enable-status --sysconfdir=/etc/ganglia
make
make install
(4) 将gmond加入系统服务
cp {ganglia解压目录}gmond/gmond.init /etc/init.d/gmond
(5) 将gmond命令加入到/usr/sbin/目录
cp /usr/local/ganglia/sbin/gmond /usr/sbin/
(9) 生成gmond的默认配置文件
gmond --default_config>/etc/ganglia/gmond.conf
(10) 将gmond给 chkconfig托管
chkconfig --add gmond
(11) 修改gmond配置文件/etc/ganglia/gmond.conf
cluster {
name = "test cluster"
owner = "nobody"
latlong = "unspecified"
url = "unspecified"
}
(12) 开启gmond服务
service gmond start
Starting GANGLIA gmetad: [ OK ]
(6) 见到[OK]字样说明启动成功。
2.4. 安装ganglia web页面
2.4.1. 安装php
(1) 安装php-common
rpm -ivh /root/CentOS/php-common-5.1.6-27.el5.x86_64.rpm
(2) 安装php-cli
rpm -ivh /root/CentOS/php-cli-5.1.6-27.el5.x86_64.rpm
(3) 安装php
rpm -ivh /root/CentOS/php-5.1.6-27.el5.x86_64.rpm
(4) 安装php-gd
rpm -ivh /root/CentOS/php-gd-5.1.6-27.el5.x86_64.rpm
2.4.2. 构建web服务器
(1) 创建ganglia的web目录
mkdir /var/www/html/ganglia
(2) 拷贝ganglia的web目录下文件到httpd服务器
cp -a {ganglia解压目录}/web/* /var/www/html/ganglia/
(3) 禁用 SELinux
setenforce 0 (如果不禁用会报错:Forbidden,You don’t have permission to access /ganglia/ on this server)
(4) 修改conf.php为ganglia指定rrdtool命令路径
define("RRDTOOL", "/usr/local/rrdtool/bin/rrdtool");
(5) 重启httpd服务器
service httpd restart
(6) 查看web页面
http://web服务器ip/ganglia/
3. 集群式部署
集群的部署依靠配置文件:
Ø /etc/ganglia/gmetad.conf
这里需要配置的是集群名称和server端地址
data_source "my cluster" localhost
Ø /etc/ganglia/gmond.conf
这里需要配置cluster下的name和owner属性与gmetad端一致
cluster {
name = "my cluster"
owner = "nobody"
latlong = "unspecified"
url = "unspecified"
}
Ø 如果修改owner,同时也要修改Rrdtool的数据文件目录的owner:
chown -R nobody:nobody /var/lib/ganglia/rrds
4. 安装过程中遇到的问题
Ø 安装rrdtool过程中提示pkg-config错误
一般是库没有装全,记得要安装dev库
Ø 安装ganglia过程中找不到confuse,expat,apr等库
如果是64位机,ganglia会在依赖库的lib64目录下去查找文件,所以需要将lib目录下文件拷贝到lib64目录下
Ø gmetad启动失败:
查看gmetad状态:service gmetad status
gmetad dead but subsys locked
在gmetad.conf中修改了用户
setuid_username "root" 这里需要username和rrd数据目录的owner一致
Ø gmond启动失败:
查看gmond状态:service gmond status
gmond dead but subsys locked
可能是没有配置网关或者cluster的owner配置有问题
Ø 访问网页保错:
Ganglia cannot find a data source. Is gmond running?
There was an error collecting ganglia data XML error : Invalid document
现象是页面只有一行错误信息
解决办法是修改conf.php中的$ganglia_ip = "127.0.0.1";这里不能使用机器的ip,原因还不清楚。
Ø 图片无法显示:
一般是php-gd没有安装或者/var/www/html/ganglia/conf.php中rrdtool的配置有问题
Ø 访问网页保错Forbidden,You don’t have permission to access /ganglia/ on this server
是SELinux没有禁用