1、实验环境

    Centos6.4

2、安装rrdtool(注rrdtool-1.5.3不支持3.6.1)

#安装ganglia相关包
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 pcre pcre-devel
tar xzf rrdtool-1.4.9.tar.gz
cd rrdtool-1.4.9
./configure --prefix=/opt/rrdtool-1.4.9 --disable-perl
make
make install
ln -s /opt/rrdtool-1.4.9/include/rrd.h /usr/include/rrd.h
ln -s /opt/rrdtool-1.4.9/lib/librrd.a /usr/lib/librrd.a

3、server脚本

#!/bin/sh
#安装confuse
tar zxf confuse-2.7.tar.gz
cd confuse-2.7
./configure CFLAGS=-fPIC --disable-nls ;make;make install 
cd ..
#安装ganglia
tar zxf ganglia-3.6.1.tar.gz
cd ganglia-3.6.1
#server
./configure --prefix=/opt/modules/ganglia --with-static-modules --enable-gexec --enable-status --with-gmetad --with-python=/usr --with-librrd=/opt/rrdtool-1.4.9 --with-libexpat=/usr --with-libconfuse=/usr/local --with-libpcre=/usr/local
#client
#./configure --prefix=/opt/modules/ganglia --enable-gexec --enable-status --with-python=/usr --with-libconfuse=/usr/local --with-libexpat=/usr --with-libpcre=/usr
make; make install
cd gmetad
cp gmetad.conf /opt/modules/ganglia/etc/
cp gmetad.init /etc/init.d/gmetad
sed -i "s/^GMETAD=\/usr\/sbin\/gmetad/GMETAD=\/opt\/modules\/ganglia\/sbin\/gmetad/g" /etc/init.d/gmetad
chkconfig --add gmetad
#我的服务器有两块网卡,eth1使用公网地址,eth2使用局域网地址,监控服务器和被监控服务器之间的通信通过局域网地址实现以减少公网网卡的负载,使用以下命令:(此IP可以在/etc/ganglia/gmond.conf中修改)
ip route add 239.2.11.71 dev eth2
service gmetad start

组播方式一定要使用ip route add 239.2.11.71 dev eth2如果只有一个网卡就指定那一个网卡就好

查看service gmetad status

报错gmetad dead but subsys locked

查看tail -f /var/log/messages发现需要增加目录以及修改gmetad.conf文件

(1)mkdir -p /var/lib/ganglia/rrds  (此目录是配置rrd数据保存文件的路径,给web界面用的,这个是固定的,最好放在web文件夹下,并赋予正确的权限,默认即是这个路径,可以自行在/opt/modules/ganglia/etc/gmetad.conf中修改rrd_rootdir变量的值)

    在安装完成httpd之后会有apache此用户,执行以下语句给rrds目录相应权限

 chown -R apache:apache /var/lib/ganglia/rrds

(2)在gmetad.conf中修改setuid_username "apache" 这里需要username和rrd数据目录的owner一致

备注:

    gmetad.conf修改内容如下:

    data_source "MyCluster" 192.168.56.101:8649

    gridname "MyGrid"

    setuid_username "apache"

重新启动

service gmetad restart

4、client脚本

#!/bin/sh
tar zxf confuse-2.7.tar.gz
cd confuse-2.7
./configure CFLAGS=-fPIC --disable-nls ;make;make install 
cd ..
tar zxf ganglia-3.6.1.tar.gz
cd ganglia-3.6.1
#server
#./configure --prefix=/opt/modules/ganglia --with-static-modules --enable-gexec --enable-status --with-gmetad --with-python=/usr --with-librrd=/opt/rrdtool-1.4.5 --with-libexpat=/usr --with-libconfuse=/usr/local --with-libpcre=/usr/local
#client不需要rrdtool
./configure --prefix=/opt/modules/ganglia --enable-gexec --enable-status --with-python=/usr --with-libconfuse=/usr/local --with-libexpat=/usr --with-libpcre=/usr
make; make install
cd gmond
./gmond -t > /opt/modules/ganglia/etc/gmond.conf
cp gmond.init /etc/init.d/gmond
sed -i "s/^GMOND=\/usr\/sbin\/gmond/GMOND=\/opt\/modules\/ganglia\/sbin\/gmond/g" /etc/init.d/gmond
chkconfig --add gmond
ip route add 239.2.11.71 dev eth2
service gmond start

备注:gmond.conf修改如下(与gmetad.conf文件修改相对应):

    

cluster {

  name = "MyCluster"

  owner = "unspecified"

  latlong = "unspecified"

  url = "unspecified"

}

udp_send_channel {

  #bind_hostname = yes # Highly recommended, soon to be default.

                       # This option tells gmond to use a source address

                       # that resolves to the machine's hostname.  Without

                       # this, the metrics may appear to come from any

                       # interface and the DNS names associated with

                       # those IPs will be used to create the RRDs.

  mcast_join = 239.2.11.71

  port = 8649

  ttl = 1

}

udp_recv_channel {

  mcast_join = 239.2.11.71

  port = 8649

  bind = 239.2.11.71

  retry_bind = true

}

tcp_accept_channel {

  port = 8649

  # If you want to gzip XML output

  gzip_output = no

}


以上都是组播方式的安装,如果使用单播的方式,需要修改gmond.conf文件

udp_send_channel {

  #bind_hostname = yes # Highly recommended, soon to be default.

                       # This option tells gmond to use a source address

                       # that resolves to the machine's hostname.  Without

                       # this, the metrics may appear to come from any

                       # interface and the DNS names associated with

                       # those IPs will be used to create the RRDs.

  #mcast_join = 239.2.11.71

  host = hostname

  port = 8649

  ttl = 1

}

udp_recv_channel {

  #mcast_join = 239.2.11.71

  port = 8649

  #bind = 239.2.11.71

  #retry_bind = true

}

5、ganglia-web安装

yum -y install httpd php

tar xzf ganglia-web-3.6.2
cd ganglia-web-3.6.2

修改Makefile文件

##########################################################
# User configurables:
##########################################################
# Location where gweb should be installed to (excluding conf, dwoo dirs).
GDESTDIR = /var/www/html/ganglia

# Location where default apache configuration should be installed to.
GCONFDIR = /etc/ganglia-web

# Gweb statedir (where conf dir and Dwoo templates dir are stored)
GWEB_STATEDIR = /var/lib/ganglia-web

# Gmetad rootdir (parent location of rrd folder)
GMETAD_ROOTDIR = /var/lib/ganglia

APACHE_USER = apache
##########################################################

修改conf_defalut.php文件中rrdtool执行文件的路径地址,此参数会影响页面显示监控的图表

#
$conf['gmetad_root'] = "/var/lib/ganglia";
$conf['rrds'] = "${conf['gmetad_root']}/rrds";
$conf['rrdtool'] = "/opt/rrdtool-1.4.9/bin/rrdtool";

make install

关闭SELINUX

/etc/selinux/config修改:SELINUX=disabled

关闭防火墙并启动httpd

service iptables stop
chkconfig iptables off
service httpd start
chkconfig httpd on