您的位置:首页 > 运维架构

分布式监控系统Ganglia简介及安装

2016-04-10 15:56 477 查看
一、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的架构基础上安装
在监控管理端通过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/




此时基本安装完成。

注:安装过程中遇到的错误:
1)、gmetad.conf是服务器端的配置文件,其中里面最重要的参数是data_source,他是来定义被监控端的。例如:data_source "db1"
192.168.10.1
db1表示集群的名字,后面的ip是是被监控端的ip。Ok,这时候服务器端就可以启动了。
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发现报错




解决办法:是因为相应的目录没有建,而且权限不对
建立相应的目录,将目录权限改为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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Ganglia