> CentOS > CentOS教程 >

Ganglia安装详解(CentOS_5.5_Final版)

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源码包

rrdtool-1.2.27.tar

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

                        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没有禁用
(责任编辑:IT)