环境:注意iptables和selinux一定要关闭的的哦!否则打开页面的时候会出现:There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Permission denied的错误。

ganglia对流量的监控:
Ganglia是伯克利开发的一个集群监控软件。可以监视和显示集群中的节点的各种状态信息,Ganglia监控软件主要是用来监控系统性能的软件,比如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,同时可以将历史数据以曲线方式通过php页面呈现。通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。而ganglia又依赖于一个web服务器用来显示集群状态,用rrdtool来存储数据和生成曲线图,需要xml解析因此需要expat,配置文件解析需要libconfuse。安装apche的httpd还需要支持php4以上,同时还有一些依赖软件。
Ganglia的组成
ganglia 是分布式的监控系统,有两个Daemon, 分别是:客户端Ganglia Monitoring Daemon (gmond)和服务端Ganglia Meta Daemon (gmetad)

1.用另一种方式来监控,用ganglia来代替cacti
步骤(1)用rpm来安装(或者用源码编译的)
cd ~
lftp 192.168.0.254
get ganglia-3.2.0.tar.gz   libconfuse-devel-2.6-3.el6.x86_64.rpm  libconfuse-devel-2.6-3.el6.x86_64.rpm
rpmbuild -tb ganglia-3.2.0.tar.gz(查看会看到你需要好多依赖包,可能下面的安装会对你的编译有用。。。。。)
yum install libpng-devel libart_lgpl-devel gcc-c++ python-devel libconfuse-devel pcre-devel subversion libxslt expat-devel rrdtool-devel freetype-devel apr-devel -y
rpmbuild -tb ganglia-3.2.0.tar.gz
(查看ganglia的安装需要什么包。。。)
倘若再次执行命令之后会有libconfuse-devel is needed by ganglia-3.2.0-1_64
可能还会产生需要的依赖包eg:
libconfuse = 2.6-3.el6 is needed by libconfuse-devel-2.6-3.el6.x86_64
libconfuse.so.0()(64bit) is needed by libconfuse-devel-2.6-3.el6.x86_64
这样在当前路径下会有:libconfuse-devel-2.6-3.el6.x86_64.rpm libconfuse-2.6-3.el6.x86_64.rpm ganglia-3.2.0.tar.gz这样三个包。
yum install rpmbuild -y
这样你才可以制作rpm包。rpmbuild /(使得在家目录中产生rpmbuild这个目录)
cd ~
rpm -ivh libconfuse-*
rpmbuild -tb ganglia-3.2.0.tar.gz
(这一步相当于编译成包)
这样之后:cd ~/rpmbuild/RPMS/x86_64
ll
此时会有6个rpm包。
rpm -ivh libganglia-3.2.0-1.x86_64.rpm
rpm -ivh ganglia-gmetad-3.2.0-1.x86_64.rpm

(ganglia-gmetad-3.2.0-1.x86_64.rpm是服务端所需安装的包)
rpm -ivh ganglia-gmond-3.2.0-1.x86_64.rpm
(ganglia-gmond-3.2.0-1.x86_64.rpm是客户端所需安装的包)
(2)
cd /etc/ganglia/
vi gmond.conf
只改一个地方: cluster{
name = "my cluster"
.....
}
ll
(3)rpm -qpl ganglia-gmond-3.2.0-1.x86_64.rpm
rpm -qpl ganglia-gmetad-3.2.0-1.x86_64.rpm
可以查看安装的目录。
cd ~
tar zxf ganglia-3.2.0.tar.gz
cd ganglia-3.2.0
cp -r web/ /var/www/html/ganglia (
-r是复制的是目录,ganglia的这个目录是自己建立的)
(4)更改2个配置文件。
cd /var/www/html/ganglia
cp version.php.in version.php
(因为系统读的时候读的是以.php结尾的,所以要换名字的。)
vi version.php

 
  
  1. $ganglia_version = "3.2.0"

cp conf.php.in conf.php(conf.php等待着如下介绍的修改。)

(5)rpm -qa | grep ganglia(查看已经安装的ganglia有关的包)
rpm -ql ganglia-gmetad-3.2.0-1.x86_64.rpm
(查看已安装在那个目录下。)
cd /var/lib/ganglia
ll 会发现有rrds目录。

cd /var/www/html
ll
此时有cacti 和ganglia两个目录。
vi ganglia/conf.php

 
  
  1. $gmetad_root = "/var/lib/ganglia"
  2. $dwoo_compiled_dir = "/var/www/html/ganglia/dwoo" 

cd /var/www/html/ganglia/
chmod 777 dwoo -R
(递归修改dwoo这个目录,然后可以往里面写东西了,使其具有可写的特性。否则会出现警告,测试的时候会有提示的。)
(6) /etc/init.d/gmetad restart(start)(服务器)
/etc/init.d/gmond restart(start)(客户端)

此时客户端和服务器都安装在了:IP:192.168.0.85这台主机上。正常情况下是服务器安装的是 gmetad 客户端安装的是gmond,本机这是服务器和客户端在一台机子上。
(7)
测试:
http://desktop85/ganglia/
选择:Grid -> my cluster -> desktop85.example.com(说明你监控的是本机)
倘若你要监控其他主机的话,那么你要在在服务器将所需要的包什么的复制给客户端:cd ~/rpmbuild/RPMS/x86_64/ 
scp ganglia-gmond-3.2.0-1.x86_64.rpm ganglia-gmond-modules-python-3.2.0-1.x86_64.rpm libganglia-3.2.0-1.x86_64.rpm  192.168.0.46:~
然后去客户端安装上!
scp /usr/sbin/gmond 192.168.0.46:/usr/sbin/gmond
ssh 192.168.0.46 mkdir -p /etc/ganglia/(就是在客户端建立一个目录)
scp /etc/ganglia/gmond.conf 192.168.0.46:/etc/ganglia/
scp /etc/init.d/gmond 192.168.0.46:/etc/init.d/
scp /usr/lib64/libganglia-3.2.0.0.so.0 192.168.0.46:/usr/lib64/
scp /lib64/libexpat.so.0 192.168.0.46:/lib64/
scp /usr/lib64/libconfuse.so.0 192.168.0.46:/usr/lib64/
scp /usr/lib64/libapr-1.so.0 192.168.0.46:/usr/lib64/
scp -r /usr/lib64/ganglia 192.168.0.46:/usr/lib64/
ssh 192.168.0.46 service gmond start