一、Ganglia简介

   Ganglia是一款为HPC(高性能计算) 集群设计的可扩展性 的分布式监控系统,它可以监视和显示集群中节点的各种状态信息,他由运行在各个节点上的gmond守护进程来采集 CPU、内存、磁盘利用率、I/O负载、网络流量情况等方面的数据。然后汇总到gmetad守护进程下,使用rrdtool存储数据,然后将历史数据以曲线方式通过PHP页面呈现。


Ganglia监控系统由三部分组成,分别是gmond、gmetad、webfrontend

   gmond  一个守护进程运行在每个需要检测的节点上,用于收集本节点信息并发送到其它节点,同时也接收其他节点发过来的数据,默认监听端口 8649

   gmetad  一个守护进程 运行在一个 数据汇聚 节点上,定期检查每个节点的gmond进程从那里获取数据,然后将数据指标存储在本地RRD存储引擎中。

   webfrontend 是一个基于Web的图形化监控界面,需要和gmetad安装在同一个节点上,他从gmetad取数据,并且读取RRD数据库,通过rrdtool生成表,用于前台展示

 

   一个Ganglia监控系统是由多个gmond进程和一个主gmetad进程组成,所有gmond进程将收集到的监控数据汇总到gmetad管理端,而gmetad将数据存储到RRD数据库中,最后通过PHP程序在web界面进行展示。


二、Ganglia的安装

实验环境:Centos6.5

          需要在LAMP的架构基础上安装

  1. 在监控管理端通过yum命令安装Ganglia的基础依赖包

       yum -y install expat expat-devel pcrepcre-devel zlib cairo-devel libxml2-devel devel libxml2-devel pango-devel pangolibpng-devel libpng freetype freetype-devel libart_lgpl-devel apr-devel gcc gcc-c++                                                            

2.接着安装apr、confuse、rrdtool

tar xf apr-1.4.6.tar.gz

   cd apr-1.4.6

   ./configure

   make

   makeinstall

 

tar xf confuse-2.7.tar.gz

   cd confuse-2.7

   ./configure CFLAGS=-fPIC--disable-nls

   make

   make install

 

tar xf rrdtool-1.4.8.tar.gz

  cd rrdtool-1.4.8

  ./configure --disable-tcl--prefix=/opt/rrdtool

  make

  make install


3.安装ganglia-gmetad

# tar xf ganglia-3.4.0.tar.gz

[root@ganglia Desktop]# cd ganglia-3.4.0

 

./configure --prefix=/opt/app/ganglia \

--with-static-modules --enable-gexec--enable-status --with-gmetad --with-python=/usr \

--with-librrd=/opt/rrdtool--with-libexpat=/usr --with-libconfuse=/usr/local \

--with-libpcre=/usr/local

make;make install

 

[root@ganglia ganglia-3.4.0]# cd gmetad

[root@ganglia gmetad]# cp gmetad.conf/opt/app/ganglia/etc/

[root@ganglia gmetad]# cp gmetad.init/etc/init.d/gmetad

[root@ganglia gmetad]# vi /etc/init.d/gmetad

  把GMETAD=/usr/sbin/gmetad 更改为

GMETAD=/opt/app/ganglia/sbin/gmetad

[root@ser gmetad]# chkconfig --add gmetad

[root@ser gmetad]# ip route add 239.2.11.71 dev eth0

    注:239.2.11.71这个地址是Ganglia默认的多播地址,将这个多播地址绑定到相应的网卡设备(这里是eth0,可根据不同的环境进行修改)上即可。设置了多播地址后,Ganglia管理端就可以发送和接受多播信息。


4.安装Ganglia客户端

[root@ganglia ganglia-3.4.0]#./configure--prefix=/opt/app/ganglia --enable-gexec --enable-status --with-python=/usr--with-libapr=/usr/local/apr/bin/apr-1-config --with-libconfuse=/usr/local --with-libexpat=/usr--with-libpcre=/usr/

 

[root@ganglia ganglia-3.4.0]#make

[root@ganglia ganglia-3.4.0]#make install

 

[root@ganglia ganglia-3.4.0]# cd gmond/

[root@ganglia gmond]# ./gmond -t >/opt/app/ganglia/etc/gmond.conf

[root@ganglia gmond]# cp gmond.init/etc/init.d/gmond

[root@ganglia gmond]# vi /etc/init.d/gmond

GMETAD=/usr/bin/gmetad

 改为GMETAD=/opt/app/ganglia/sbin/gmond

[root@ganglia gmond]# chkconfig --add gmond

[root@ganglia gmond]# ip route add 239.2.11.71 dev eth0


5.Ganglia服务端的配置

# vi /opt/app/ganglia/etc/gmetad.conf

data_source "Cluster" cloud1 cloud2

gridname "TopGrid"

xml_port 8651

interactive_port 8652

rrd_rootdir "/var/lib/ganglia/rrds"


ganglia客户端配置

# vi /opt/app/ganglia/etc/gmond.conf

cluster {

  name = "Cluster"

  owner = "nobody"

  latlong = "unspecified"

  url = "unspecified"

}


# mkdir -p /opt/app/ganglia/rrds

# chown -R nobody:nobody /opt/app/ganglia/rrds/


# service gmetad start

# netstat –tnlp |grep gmetad

# service gmond start

# netstat –tnlp |grep gmond


6.Ganglia-web的安装和配置

Ganglia的web配置

ganglia-web-3.5.2.tar.gz

# tar xvf ganglia-web-3.5.2.tar.gz

# cd ganglia-web-3.5.2

# mv conf_default.php conf.php

# vi conf.php

$conf['gweb_confdir'] = "/usr/local/apache2/htdocs/ganglia/";

$conf['gmetad_root'] = "/opt/app/ganglia"; 

$conf['rrds'] = "/var/lib/ganglia/rrds";;

$conf['dwoo_compiled_dir'] = "${conf['gweb_confdir']}/dwoo/compiled";

$conf['dwoo_cache_dir'] = "${conf['gweb_confdir']}/dwoo/cache";

$conf['rrdtool'] = "/opt/rrdtool/bin/rrdtool";

$conf['ganglia_ip'] = "127.0.0.1";

$conf['ganglia_port'] = 8652;

 


# mkdir -p /usr/local/apache2/htdocs/ganglia/dwoo/compiled

# mkdir -p /usr/local/apache2/htdocs/ganglia/dwoo/cache

# chmod -R 777 /usr/local/apache2/htdocs/ganglia/dwoo/compiled

# chmod -R 777 /usr/local/apache2/htdocs/ganglia/dwoo/cache


# vi Makefile

 

将GDESTDIR = /var/www/html/ganglia

 

APACHE_USER = apache

 

改为

 

GDESTDIR = /usr/local/apache2/htdocs/ganglia

 

APACHE_USER = nobody


# chmod -R 777 /usr/local/apache2/htdocs/ganglia

# make install

 

# service gmetad restart

# service gmond restart

# service httpd restart


7.浏览器进行访问

http://192.168.91.134/ganglia/

wKiom1cKBF_z08J-AAEbuc6aQRA970.jpg


此时基本安装完成。


注:安装过程中遇到的错误:

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

db1表示集群的名字,后面的ip是是被监控端的ipOk,这时候服务器端就可以启动了。
service gmetad restart
注意:这里会有报错:
Starting GANGLIAgmond: [root@localhost rrdtool-1.4.3]# service gmond restart
Shutting downGANGLIA gmond:
[FAILED]

Starting GANGLIAgmond:
再执行一次还是这样的结果
解决方法:
修改/etc/init.d/gmetad
GMETAD=/usr/sbin/gmetad
改为:GMETAD=/usr/local/ganglia/sbin/gmetad

启动客户端。
注意这里会有两个报错:
解决方法:
1)修改/etc/init.d/gmond
GMOND=/usr/sbin/gmond
修改为GMOND=/usr/local/ganglia/sbin/gmond


2)访问页面hhttp://192.168.91.134/ganglia/index.php发现报错

wKioL1cKBgCD2cjCAAG-qeDoBbs666.jpg

解决办法:是因为相应的目录没有建,而且权限不对

  建立相应的目录,将目录权限改为777

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

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

  chmod 777 -R /var/www/html/ganglia/dwoo/compiled

  chmod 777 -R /var/www/html/ganglia/dwoo/cache