Centos5上源代码安装Ganglia

      

Ganglia源码安装

 最近学习Ganglia的源代码,打算编写一段调试代码,以kill -s 10 pid(gmond进程号),gmond接到信号后,打印hosts全局哈希表中的主机和metric信息,需要建立ganglia的编译开发环境

1. 安装rrdtool

1.1. 安装依赖包

可以将相关的依赖包下载到/tmp/soft_code/下,或者使用yum下载

 

Ø 安装zlib开发包

 

zlib-devel-1.2.3-3.x86_64.rpm

 

Ø 安装freetype开发包:

 

freetype-devel-2.2.1-21.el5_3.x86_64.rpm

 

Ø 安装libart开发包:

 

libart_lgpl-devel-2.3.17-4.x86_64.rpm

 

Ø 安装libpng开发包:

 

libpng-devel-1.2.10-7.1.el5_3.2.x86_64.rpm

 

1.2. 安装rrdtool

Ø 准备rrdtool源码包

 

rrdtool-1.4.5.tar.gz

tar -zxvf rrdtool-1.4.5.tar.gz

cd rrdtool-1.4.5

 

Ø 编译安装

 

./configure –prefix=/usr/local/rrdtool

 

make

 

make install

 

Ø 验证是否安装成功

 

运行命令/usr/local/rrdtool/bin/rrdtool

 

如果出现以下文字说明安装成功:

 

RRDtool 1.4.5  Copyright 1997-2010 by Tobias Oetiker<tobi@oetiker.ch>

               Compiled Jul 26 2011 18:27:11

...

 

Ø 可能出现的问题

 

pkg-config找不到lib包,不用纠结于pkg-config,一定是某些lib没装好。

 

在configure rrdtool时会提升哪些包未装好,记得安装这些lib的源码包

 

2. 安装ganglia

2.1. 安装依赖软件

ganglia依赖以下软件:、

 

apr-1.2.8.tar.gz  apr-util-1.2.8.tar.gz  confuse-2.6.tar.gz  expat-2.0.1.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.2.8.tar.gz

 

tar  -zxvf apr-1.2.8.tar.gz

 

./configure --prefix=/usr/local/apr

 

make

 

make install

 

Ø 安装apr-util-1.2.8.tar.gz

 

tar -zxvf apr-util-1.2.8.tar.gz

 

./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

如果出现:

libpcre not found, specify --with-libpcre=no to build without PCRE support

可以:

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.02.tar.gz

tar -xzvf pcre-8.02.tar.gz

cd pcre-8.02

./configure

make

make install

 

(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

 

StartingGANGLIA 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

 

StartingGANGLIA 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 havepermission 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 cannotfind a data source. Is gmond running?

 

There was anerror 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 havepermission to access /ganglia/ on this server

 

是SELinux没有禁用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值