Ganglia是一款非常不错的监控软件,它可以对当前的系统软硬件进行全面的监控,特别适合集群的监控,可以对各个节点以及整个集群进行全面的监控。下面来说一下环境的搭建。

说明:操作系统rhel5.4

注意:安装系统,选择安装的软件包时不要默认安装,选择“自定义”。然后在development里面全部都勾选上,否则在安装源码包的时候会有很多报错。

监控服务器ganglia的搭建_第1张图片

环境搭建:LAMP的搭建用rpm包就可以了,不需要源码包。

1. 搭建一个本地yum库

编辑yum配置文件: vi /etc/yum.repos.d/rhel-debuginfo.repo内容如下:

[rhel-debuginfo]

name=Red Hat Enterprise Linux $releasever - $basearch - Debugbaseurl=file:///mnt/Server

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

2. 挂在光盘到/mnt: mount /dev/hdc /mnt

3. 执行yum update 来 升级yum库。

4. 用yum安装apache,mysql和php等,命令如下

yum -y install httpd mysql mysql-server mysql-connector-odbc

yum -y install php php-mysql php-common php-pdo

5. 安装绘图工具:rrdtool

./configure --prefix=/usr/local/rrdtool&&make&&make install

ln -s /usr/local/rrdtool/include/rrd.h /usr/include/rrd.h

ln -s /usr/local/rrdtool/lib/librrd.a /usr/lib/librrd.a

6. 安装ganglia

./configure --prefix=/usr/local/ganglia --sysconfdir=/etc/ganglia --with-gmetad

如果该步骤没有报错,则显示

监控服务器ganglia的搭建_第2张图片

(如果有报错,注意下面的提示),然后make;make install就可以了

温馨提示:其中可能会报错:

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

解决方法:

yum –y install apr

yum -y install apr-util*

报错

libconfuse not found

解放方法:

安装libconfuse-2.5-4.el5.i386.rpm libconfuse-devel-2.5-4.el5.i386.rpm(如果是64位的操作系统,要下载64位的软件包)

7.如果软件安装成功的话,做下面的步骤(提示:下面的命令可以同时拷贝,粘贴一下就可以了,哈哈)

cd /soft/ganglia-3.1.1/

mkdir -p /var/www/html/ganglia/

cp -a web/* /var/www/html/ganglia/ #网页内容

cp gmetad/gmetad.init /etc/rc.d/init.d/gmetad #下面四步是添加系统服务

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

chkconfig --add gmetad

chkconfig --add gmond

mkdir /etc/ganglia #生成被监控端的配置文件

gmond/gmond -t | tee /etc/ganglia/gmond.conf &>/dev/null

cp gmetad/gmetad.conf /etc/ganglia/ #生成服务器端的配置文件

mkdir -p /var/lib/ganglia/rrds #存放rrdtool数据的目录

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

7. gmetad.conf是服务器端的配置文件,其中里面最重要的参数是data_source,他是来定义被监控端的。例如:data_source "db1" 192.168.10.1

db1表示集群的名字,后面的ip是是被监控端的ip。Ok,这时候服务器端就可以启动了。

service gmetad restart

注意:这里会有报错:

Starting GANGLIA gmond: [root@localhost rrdtool-1.4.3]# service gmond restart

Shutting down GANGLIA gmond: [FAILED]

Starting GANGLIA gmond:

再执行一次还是这样的结果

解决方法:

修改/etc/init.d/gmetad

把GMETAD=/usr/sbin/gmetad

改为:GMETAD=/usr/local/ganglia/sbin/gmetad

9.启动客户端。

注意这里会有两个报错:

解决方法:

1)修改/etc/init.d/gmond

把GMOND=/usr/sbin/gmond

修改为GMOND=/usr/local/ganglia/sbin/gmond

报错2:(一般虚拟机里面会报这个错,真实环境里面不会)

/usr/local/ganglia/sbin/gmond[31101]: Error creating multicast server mcast_join=239.2.11.71 port=8649 mcast_if=NULL family='inet4'. Exiting.

2)解决方法:

vi /etc/sysconfig/network-scripts/route-eth0

内容:239.2.11.71 dev eth0

重启network: service network restart

10.启动apache. service httpd start

访问http://服务器ip/ganglia,如图

监控服务器ganglia的搭建_第3张图片

监控服务器ganglia的搭建_第4张图片