ganglia监控搭建--深入浅出

ganglia监控解决方案

.概述

在之前的工作用最常使用的监控工具为nagios,nagios可以实现短信报警,也可以实现流量图的展示,但是毕竟nagios最重要的功能是起到报警的作用,所以要很好的出图需要更适合的第三方开源软件―Ganglia,Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。

.为什么要使用Ganglia

Ganglia是一种分布式监控系统。ganglia的设计便是基于大型集群进行设计的。主要体现在数据的获取方式以及分层设计。

Ganglia与cacti的比较主要有三点:

1. 部署的方便性。相对于cacti的逐台服务器的添加方式,ganglia类似与nagios的部署方式会更简单,更方便。有利于后期的大规模扩张。

2. 两者的数据获取方式(重点)

2.1 Ganglia本身就是为集群监控进行设计的,这体现在其数据的获取方式(客户端主动推送)以及分层设计(node cluster grid)

2.2 cacti则是服务端主动去轮循(逐台服务器)这在一定程度上影响了数据的新鲜,以及所能监控节点的数量。

3. 通信方式以及冗余

3.1 cacti属于点到点通信,并且不会在本地对信息进行存储。存在单点故障的风险

3.2 Ganglia通过组播进行数据交互,配置得当,可以实现冗余避免单点故障。另外,同样由于组播,数据可以在客户机本地进行存放的(安装rrdtool)。

Ganglia体系结构:

gmetad:从监听节点轮询出数据,并对数据进行聚合、存储(ganglia组件)

gmond:组播包的发送和接受。发送本地信息,接受其他节点信息(ganglia组件)

Ganglia网页:提供ganglia的访问页面(ganglia组件)

rrdtool: 数据存储以及提供画图功能

Apache与php:网站功能,对ganglia提供的网页进行解析。

.Ganglia工作原理

上图是描述在一个cluster环境中,数据的采集,传送,处理,存储,以及展示过程

1. 客户端数据的采集是通过gmond这个进程(端口8649)实现的。然后会将数据以xml的格式发送到一个组播地 址(默认是239.2.11.71 这个是可以更改的)

2. 由于在监控端也会有一个gmond进程,所以该进程会收到所有node发出的数据。(XML)

3. Gmetad进程是server进程。运行时将开启两个端口(8651与8652)

其中8651负责在监听地址上面收集gmond数据(填写本地IP即可配置后面说注)

其中8652负责数据的聚合,以及在rrd中的存储

4. 当通过浏览器访问的时候,php对ganglia的网页进行解析,rrdtool画图。从而将监控结果进行展示。

四.Ganglia安装配置

1.服务器端(监控端)

1.1安装apache、php

yum �Cy install httpd php

1.2安装Ganglia依赖的软件包

weg http://mirrors.sohu.com/fedora-epel/5/x86_64/epel-release-5-4.noarch.rpm

rpm �CUvh epel-release-5-4.noarch.rpm

yum -y install libpng-devel libart_lgpl-devel gcc-c++ python-devel libconfuse-devel pcre-devel subversion libxslt expat-devel rrdtool-devel freetype-devel apr-devel libconfuse libconfuse-devel

1.3编译安装ganglia-3.2.0.tar.gz

tar zxf ganglia-3.2.0.tar.gz

cd ganglia-3.2.0

./configure �Cprefix=/work/ganglia �Cwith-gmetad

make

make install

cp gmond/gmond.init /etc/init.d/gmond

cp gmetad/gmetad.init /etc/init.d/gmetad

chkconfig �Cadd gmond/gmetad

chkconfig gmond/gmetad on

cp /work/ganglia/sbin/gmond /usr/sbin/

gmond �Ct > /work/ganglia/etc/gmond.conf

修改gmetad.conf配置文件

vi /work/ganglia/etc/gmetad.conf

 

可酌情修改数据源文件的存放位置,注意如果要修改此处还需要修改conf.php,此配置文件在站点目录下,默认情况下没有此文件,但是可以复制一份,源文件为conf_default.php

修改gmond.conf配置文件

vi /work/ganglia/etc/gmond.conf

将user账户改成root,默认为ganglia

修改集群名称,此集群名称一定要与gmetad.conf配置文件中data_source一致

可酌情修改端口号,此端口号要与gmetad.conf配置文件中定义的端口号一致

将ganglia网站内容复制到apache站点目录下

cp �Ca ganglia-3.2.0/web/* /var/www/html/ganglia/

注意:由于3.2.0本身自带的版本的站点内容过于粗糙,所以需要下载比较完善的站点内容,我是用的是gweb-2.2.0版本,或者直接安装ganglia-3.3.1版本,可不必另下载站点内容。入职内容一致。

启动相关服务

service gmond start

service gmetad start

service httpd start

2.客户端(被监控端)

客户端只需要安装gmond服务即可,由于此安装都是在centos机器上安装所以,拷贝配置文件即可,使用脚本如下

注:ganglia.list文件中记录的是要发送到哪台机器的主机名,也可定义成ip,根据实际情况而定。由于各个linux的发型版本的差异,此方法只局限于RedHat、CentOs不适用于Ubuntu和Debian等发型版本。

打开浏览器查看效果

http://ip/ganglia

五.安装完成

 

 

你可能感兴趣的:(ganglia配置,ganglia原理)