知识共享许可协议
本作品采用知识共享署名-非商业性使用-禁止演绎 3.0 未本地化版本许可协议进行许可。

更新源
yum install wget gcc make rsync

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum makecache
安装依赖包
  • apr-devel

    yum install apr-devel
    
  • zlib

    yum install zlib-devel
    
  • libConfuse

    http://www.nongnu.org/confuse/
    
    yum install libconfuse-devel
    
  • expat

    http://expat.sourceforge.net
    
    yum install expat-devel
    
  • pcre

    yum install pcre-devel
    
  • RRD

    http://oss.oetiker.ch/rrdtool
    
    yum install rrdtool rrdtool-devel
    
安装Ganglia
http://ganglia.info/

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

tar zxvf ganglia-3.6.0.tar.gz
cd ganglia-3.6.0

./configure --prefix=/usr/local/ganglia-3.6.0 --enable-gexec --enable-status --with-gmetad --with-librrd --with-libconfuse --with-zlib
make
make install
配置
  • 设置软链接

    ln -s /usr/local/ganglia-3.6.0/sbin/gmond /usr/bin/gmond
    
  • 复制服务启动文件

    cp ~/ganglia-3.6.0/gmond/gmond.init /etc/rc.d/init.d/gmond
    cp ~/ganglia-3.6.0/gmetad/gmetad.init /etc/rc.d/init.d/gmetad
    
    chkconfig --add gmond
    chkconfig --add gmetad
    chkconfig gmond on
    chkconfig gmetad on
    
  • 修改配置文件

    vi /etc/init.d/gmond
    
    GMOND=/usr/local/ganglia-3.6.0/sbin/gmond
    daemon $GMETAD -c /etc/ganglia/gmond.conf
    
    vi /etc/init.d/gmetad 
    
    GMETAD=/usr/local/ganglia-3.6.0/sbin/gmetad
    daemon $GMOND -c /etc/ganglia/gmetad.conf
    
  • 复制配置文件&生成初始文件

    mkdir -p /etc/ganglia
    cp ~/ganglia-3.6.0/gmetad/gmetad.conf /etc/ganglia/
    gmond -t | tee /etc/ganglia/gmond.conf
    
  • 设置RRD存储

    mkdir -p /var/lib/ganglia/rrds
    chown nobody:nobody /var/lib/ganglia/rrds
    
  • 修改gmetad.conf

    vi /etc/ganglia/gmetad.conf
    
    setuid_username "nobody"
    data_source "ganglia.monitor" localhost
    
  • 修改gmond.conf

    vi /etc/ganglia/gmond.conf
    cluster {
        name = "ganglia.monitor"
        owner = "unspecified"
        latlong = "unspecified"
        url = "unspecified"
    }
    
    udp_send_channel {
        host = ganglia.monitor
        port = 8649
        ttl = 1
    }
    
    udp_recv_channel {
        port = 8649
    }
    tcp_accept_channel {
        port = 8649
    }
    
启动
  • 启动

    service gmetad start
    service gmond start
    
  • 重启

    service gmetad restart
    service gmond restart
    
  • 查看状态

    service gmetad status
    service gmond status
    
  • 停止

    service gmetad stop
    service gmond stop
    
安装Web
  • 安装 Apache & PHP

    yum install php-common php-cli php php-gd httpd  
    
  • 启动apache

    service httpd start
    
  • 下载

    wget http://sourceforge.net/projects/ganglia/files/ganglia-web/3.5.12/ganglia-web-3.5.12.tar.gz/download -O ~/ganglia-web-3.5.12.tar.gz
    tar zxvf ganglia-web-3.5.12.tar.gz 
    cd ganglia-web-3.5.12
    
  • 修改Makefile

    vi Makefile 
    # 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
    
  • 安装

    make install
    
  • 防火墙规则设置

    iptables -I INPUT 3 -p tcp -m tcp --dport 80 -j ACCEPT
    iptables -I INPUT 3 -p udp -m udp --dport 8649 -j ACCEPT
    
    service iptables save
    service iptables restart
    
  • 关闭selinux

    vi /etc/selinux/config
    SELINUX=disabled
    setenforce 0
    
  • 访问

    http://localhost/ganglia
    
相关错误
  • /usr/local/lib/libpython2.7.a: could not read symbols: Bad value

    reinstall python 2.7.6
    ./configure --enable-shared
    make
    make install
    
    或者指定CentOS默认的Python版本
    ./configure --prefix=/usr/local/ganglia-3.6.0 --enable-gexec --enable-status --with-gmetad --with-librrd --with-libconfuse --with-zlib --with-python=/usr/bin/python2.6