Ganglia3.1.7安装与配置 – Linux系统教程

一、所需要软件

二、安装过程

1、Ganglia运行平台的安装

2、Ganglia依赖库的安装

3、RRDTool的安装

4、Ganglia的安装 (包括使用yum方式安装)

三、简单配置

四、启动与访问

五、被监控节点上安装Ganglia (包括使用yum方式安装)

六、遇到的问题,及解决办法

 

流行的开源服务器集群监控工具有很多,例如Nagios、Cacti、Ganglia、Zenoss、Clumon,它们在底层都利用了RRDTool。国内最常用的就是Cacti+Nagios,但是Ganglia其实也很不错,Ganglia+Nagios的组合也很强大。

Ganglia是一个可伸缩的监控系统,尤其适合用来监计算机集群、网格等。Ganglia监控系统的组成部分包括:两个独立的daemon,一个基于PHP的web前端,和一些其它的应用程序。

gmond(Ganglia Monitoring Daemon):运行于节点上的daemon

gmetad(Ganglia Meta Daemon):服务器端的daemon

Ganglia PHP Web Frontend:基于PHP的web前端

 

Ganglia官网:http://ganglia.info/

Ganglia Wiki:http://sourceforge.net/apps/trac/ganglia

 

一、所需软件:

平台:linux+apache+php

依赖库:

apr-devel

apr-util

check-devel

cairo-devel

pango-devel

libxml2-devel

rpmbuild

glib2-devel

dbus-devel

freetype-devel

fontconfig-devel

gcc-c++

expat-devel

python-devel

libXrender-devel

libconfuse(它无法通过yum安装)

pcre(无法通过yum安装)

 

RRDTool:rrdtool-1.4.5.tar.gz

Ganglia:ganglia-3.1.7.tar.gz

 

二、安装过程

参考了Ganglia Wiki上的安装配置文档,以及IBM网站上《Ganglia 和 Nagios》:

1)apache+php的安装:大略如下:

apache:

wget http://labs.renren.com/apache-mirror//httpd/httpd-2.2.19.tar.gz

tar -zxvf httpd-2.2.19.tar.gz

cd httpd-2.2.19

./configure –prefix=/usr/local/apache2 –enable-so –enable-mods-shared=most

make && make install

 

/usr/local/apache2/bin/apachectl start

http://192.168.9.45,访问成功!

php:

准备手动编译安装,但是在下载gd库时出错,没有下载到,索性使用yum安装

yum -y install zlib libpng jpeg freetype2 libxml2 gdphp-mbstring

yum -y install php

使用apache支持php:

cp /usr/lib64/httpd/modules/libphp5.so /usr/local/apache2/modules/ 

然后,vi /usr/local/apache2/conf/httpd.conf,添加:

<FilesMatch \.php$>

SetHandler application/x-httpd-php

</FilesMatch>

<FilesMatch “\.ph(p[2-6]?|tml)$”>

SetHandler application/x-httpd-php

</FilesMatch>

<FilesMatch “\.phps$”>

SetHandler application/x-httpd-php-source

</FilesMatch>

 

LoadModule php5_module modules/libphp5.so

 

<IfModule dir_module>

DirectoryIndex index.html index.php

</IfModules> 

重启apache,测试PHP是否安装成功:

vi /usr/local/apache2/htdocs/index.php,添加:

<?

phpinfo();

?>

访问:http://192.168.9.45/index.php,访问成功!

2)依赖库的安装:

yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpmbuild glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devel libXrender-devel

3)libconfuse的安装(自己使用google搜索下载地址):

wget http://savannah.nongnu.org/download/confuse/confuse-2.7.tar.gz

tar -zxvf confuse-2.7.tar.gz

cd confuse-2.7

./configure CFLAGS=-fPIC –disable-nls

make && make install

调整lib库的位置:

vi /etc/ld.so.conf.d/libconfuse.conf,添加:/usr/local/lib,然后/sbin/ldconfig -v

4)RRDTool的安装:

wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.5.tar.gz

tar -zxvf rrdtool-1.4.5.tar.gz

cd rrdtool-1.4.5

./configure –prefix=/usr/local

make && make install

调整lib库的位置:

vi /etc/ld.so.conf.d/librrd.conf,添加:/usr/local/lib,然后/sbin/ldconfig -v

5)Ganglia的安装:

要注意的是,Ganglia在安装时默认不安装gmetad,所以需要在configure时指定:–with-gmetad,还需要指定RRDTool库的路径:–with-librrd=… !

wget http://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/3.1.7/ganglia-3.1.7.tar.gz/download

tar -zxvf ganglia-3.1.7.tar.gz

cd ganglia-3.1.7

./configure –with-gmetad –with-lirrd=/usr/local/lib –sysconfdir=/etc/ganglia

make

make install

编译安装成功!

几个重要文件的默认安装位置:

/usr/bin/gstat

/usr/bin/gmetric

/usr/sbin/gmond

/usr/sbin/gmetad

/etc/ganglia/gmetad.conf

需要进一步的操作,添加gmond和gmetad为系统服务:

cp gmond/gmond.init /etc/rc.d/init.d/gmond

cp gmetad/gmetad.init /etc/rc.d/init.d/gmetad

chkconfig –add gmond

chkconfig –add gmetad

chkconfig gmond on

chkconfig gmetad on

6)Ganglia web前端的安装:

mkdir /var/www/html/ganglia

cp -r web/* /var/www/html/ganglia

apache对php的支持:

在使用yum安装PHP时,已经默认在/etc/httpd/conf.d目录下创建了相关文件,我们所需要的操作是去掉最后一行的注释,使之生效。

Ganglia的Wiki特别指出,web前端的运行需要rrdtool,以及gmetad中的rrds/目录,没有这两个东西,无法出图。gmetad中rrd图形默认存储的目录位置为/var/lib/ganglia/rrds:

mkdir -p /var/lib/ganglia/rrds

chown nobody:nobody /var/lib/ganglia/rrds 

rrdtool的位置是/usr/local/bin/rrdtool,编译web前端的配置文件时会在那儿进行定义。

 

是不是觉得编译安装很麻烦?你也可以使用yum安装方式,只是Ganglia版本稍微低一些。Yum安装方式很简单,首先要安装epel源 (什么是epel ?自行google一下 ),然后运行:

yum install rrdtool httpd php ganglia*   以ganglia开头的几个软件都要安装

三、Ganglia的简单配置:

1)生成gmond默认配置文件:

gmond -t |tee /etc/ganglia/gmond.conf 

2)服务器端配置文件gmetad.conf,主要是配置data_source参数。它设定了监控服务器的地址及端口,可以指定多个监控服务器:

data_source “Hadoop” 10 192.168.9.45

grid_name “hadoop cluster status” /*设置一个web前端显示的名称,随意命名。

3)被监控节点配置文件gmond.conf:

gmond.conf包括了几个部分:globals、cluster、udp_send_channel、udp_recv_channel等,如果只是想要Ganglia简单地运行,两个操作就可以了,两个操作都是在cluster配置段中进行修改:

首先,命名你的集群:

命名一个cluster名称,名称与gmetad.conf中的data_source保持一致。我的命名:name = “hadoop”

然后,修改tcp_accept_channel配置段如下:

tcp_accept_channel {

port = 8649

acl {

default = “deny”

access {

ip = 192.168.9.45 /*这里用来监控服务器的地址

mask = 32

action = “allow”

}

}

}

把这个gmond.conf配置文件分发到每个被监控的节点服务器上,重启监控端的gmetad和gmond,以及节点端的gmond,即可对节点进行监控。

4)修改web前端配置文件/var/www/html/conf.php,指定gmetad中存储rrd图形的目录,以及rrdtool的位置:

$gmetad_root = “/var/lib/ganglia”;

$rrds = “$gmetad_root/rrds”;

 

define(“RRDTOOL”, “/usr/local/bin/rrdtool”);

四、启动ganglia,并访问其web页面:

service gmond start

service gmetad start

service httpd restart

访问: http://192.168.9.45/ganglia

五、被监控节点上安装Ganglia:

根据IBM网站上的文章所述,只需要拷贝几个文件到节点机器,即可使用Ganglia对这些机器进行监控。但是我们一般都不允许以root帐户连接远程服务器,所以也比较烦琐,还不如直接安装。

被监控节点服务器不需要安装RRDTOOL,php等,只需要gmond。编译安装方式跟监控节点一样,但configure时要简单一些,下面一条命令即可:

./configure –sysconfdir=/etc/ganglia

被监控节点上安装ganglia-gmond完毕后,从监控节点复制gmond.conf文件到被监控节点,然后启动/重启gmond,然后刷新监控web页面即可。

最好重启一下监控节点的gmetad。

 

然后把被监控端的gmond添加系统为系统服务,前面已经讲过了。略过。

 

被监控节点也可以使用yum方式安装,也是首先安装epel源,然后只需要运行下面命令:

yum install ganglia-gmond

 

六、安装过程中遇到的错误及解决办法:

1)在configure apache时,遇到下列错误:

configure: error: Cannot use an external APR with the bundled APR-util

原因是apr和apr-util版本过低,下载并安装最新版,如下:

wget http://labs.renren.com/apache-mirror//apr/apr-1.4.5.tar.gz

tar -zxvf apr-1.4.5.tar.gz

cd apr-1.4.5

./configure && make && make install

调整lib库的位置:

vi /etc/ld.so.conf.d/libapr.conf,添加/usr/local/apr/lib,运行/sbin/ldconfig -v

apr-util的安装参考上述apr的安装过程。

下载地址:wget http://labs.renren.com/apache-mirror//apr/apr-util-1.3.12.tar.gz

 

2)Ganglia configure失败:

Checking for apr

checking for apr-1-config… no

configure: error: apr-1-config binary not found in path

解决:

yum -y install apr-devel

 

3)Ganglia configure出错:

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

pcre是perl 兼容的正规表达式库,在使用正则匹配时会很用。

pcre安装:

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.12.tar.bz2

tar -jxvf pcre-8.12.tar.bz2

cd pcre-8.12

./configure && make && make install

调整lib库的位置:

vi /etc/ld.so.conf.d/libpcre.conf,添加:/usr/local/lib,然后/sbin/ldconfig -v

 

4)Ganglia make出错:

/usr/bin/ld: /usr/local/lib/libconfuse.a(confuse.o): relocation R_X86_64_32 against `a local symbol’ can not be used when making a shared object; recompile with -fPIC

/usr/local/lib/libconfuse.a: could not read symbols: Bad value

collect2: ld returned 1 exit status

make[2]: *** [libganglia.la] Error 1

make[2]: Leaving directory `/usr/local/ganglia-3.1.7/lib’

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory `/usr/local/ganglia-3.1.7′

make: *** [all] Error 2

解决:

据网上资料,这个错误是因为在编译libconfuse时,需要指定特殊的选项:CFLAGS=-fPIC –disable-nls

重新编译libconfuse,并调整lib库:

./configure CFLAGS=-fPIC –disable-nls && make && make install 

5)Ganglia访问失败:

There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Permission denied

解决:

需要关闭selinux:vi /etc/selinux/config,把SELINUX=enforcing改成SELINUX=disable;需要重启机器。

可以使用命令setenforce 0来关闭selinux而不需要重启,刷新页面,即可访问!但此方法只是一权宜之计。要想永久修改selinux设置,还是要使用第一种方法。

来源URL:http://www.linuxdiyf.com/linux/5008.html