完美集群监控组合ganglia和nagios

Ganglia是伯克利开发的一个集群监控软件。可以监视和显示集群中的节点的各种状态信息,比如如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,同时可以将历史数据以曲线方式通过php页面呈现。

而ganglia又依赖于一个web服务器用来显示集群状态,用rrdtool来存储数据和生成曲线图,需要xml解析因此需要expat,配置文件解析需要libconfuse。安装apche的httpd还需要支持php4以上,同时还有一些依赖软件。

ganglia作为一款最常用的Linux环境中的监控软件,它擅长的的是从节点中按照用户的需求以较低的代价采集数据。但是ganglia在预警以及发生事件后通知用户上并不擅长。最新的ganglia已经有了部分这方面的功能。但是更擅长做警告的还有Nagios。Nagios,就是一款精于预警、通知的软件。通过将Ganglia和Nagios组合起来,把Ganglia采集的数据作为Nagios的数据源,然后利用Nagios来发送预警通知,可以完美的实现一整套监控管理的系统。



——————————————————————————————————————————————

ganglia安装指导

在redhat可以通过如下命令安装这些依赖软件:

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

libconfuse可以通过如下命令得到:

wget http://download.fedora.redhat.co … .5-4.el5.x86_64.rpm
       wget http://download.fedora.redhat.co … .5-4.el5.x86_64.rpm

1.2      安装配置步骤
1.2.1     安装
这里采用下载源码编译安装,到http://ganglia.info网站下载最新版的ganglia,下载后解压。

./configure –with-librrd=/rrd/path  –with-gmetad  –prefix=/usr/local/ganglia

make

make install

如果中间出现依赖软件问题,则需要安装缺少的那个软件包。安装完毕后,需要进行配置,其配置文件一般放在/etc/ganglia目录下,名称为gmetad.conf。当然对于路径并没有严格要求,因为gmetad可以在启动时指定所用的配置文件。

安装ganglia后,还需要安装apache服务器,同时需要有php模块支持,否则最终的显示页面无法正常显示。推荐采用yum install httpd php

否则如果没有配置正确,则有可能apache不能和php正确关联。

安装完毕后可以输入http://localhost/test.php,编一个php页面测试下是否成功安装。


1.2.2     配置
如果采用源码安装,根据前面的—prefix,ganglia会被安装到/usr/local/ganglia目录下。

首先建一个目录,该目录用来存放ganglia的web页面

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

该目录用来存放后面用来显示数据的web页面。 

由于采用源码编译的,并没有将gmetad和gmond加为服务,执行以下命令。

cp gmetad/gmetad.Init /etc/rc.d/Init.d/gmetad     //拷贝gmetad服务启动脚本
cp gmond/gmond.Init /etc/rc.d/Init.d/gmond        //拷贝gmond服务启动脚本
mkdir /etc/ganglia                                             //创建配置文件主目录
gmond -t | tee /etc/ganglia/gmond.conf              //生成gmond服务配置文件
cp gmetad/gmetad.conf /etc/ganglia/                  //拷贝gmetad服务配置文件
mkdir -p /var/lib/ganglia/rrds                                //创建rrd文件存放目录
chown nobody:nobody /var/lib/ganglia/rrds           //属主和属组都为nobody
chkconfig –add gmetad                                     //将服务交给chkconfig管理
chkconfig –add gmond                                      //同上

修改配置文件/etc/gmetad.conf通常只需要修改如下的参数:

data_source “Clustername” host1 host2

将集群名称改为你自己的,host1 host2是gmetad用来得到集群信息的xml文件的数据源,如果没有写端口,则采用默认的8649端口,gmetad默认每隔15秒通过tcp连接去该主机下载xml文件。所以他们可以是gmond的8649端口,也可以是gmetad的8651端口,它们都可以提供集群信息的xml格式的数据下载。

host1 host2是or的关系,如果host1无法下载,则才会尝试去host2下载,所以它们应该都是同一个集群的节点,保存着同样的数据。采用multicast模式时,每台gmond节点都有本cluster内节点机器的所有监控数据,因此不需要把所有节点写入data_source中。建议写入不低于2个,在host1节点死机的时候,会自动找host2节点取数据。

此外gmetad还有如下的属性设置:

RRD database storage defInition

RRAs “RRA:AVERAGE:0.5:1:244” “RRA:AVERAGE:0.5:24:244” “RRA:AVERAGE:0.5:168:244” “RRA:AVERAGE:0.5:672:244” “RRA:AVERAGE:0.5:5760:374”

RRD files location

访问控制Access control

trusted_hosts address1 address2 … DN1 DN2 …

all_trusted OFF/on 

rrd保存数据的目录

rrd_rootdir “/var/lib/ganglia/rrds”

Network

xml_port 8651 #可以telnet到该端口,得到gmetad的xml文件

interactive_port 8652 #php页面数据交互使用的端口



1.2.3     php页面的配置

需要到/var/www/html/ganglia/目录下查找

php.conf

$gmetad_root = “/var/lib/ganglia”;    #gmetad写入的rrd数据库的路径

$rrds = “$gmetad_root/rrds”;

$ganglia_ip = “localhost”;            #gmetad服务器的地址

$ganglia_port = 8652;       #gmetad服务器的交互式提供监控数据端口

默认情况下,web前端每300秒(5分钟)刷新一次,可以修改刷新间隔时间,通过修改config.php文件实现,它里面包括有所有的Ganglia Web参数。


1.2.4     ganglia客户端配置
vi /etc/ganglia/gmond.conf

主要是三个地方需要修改,cluster name,udp_send_channel,udp_recv_channel。注意单播与多播模式的区别,在多播模式下,加入该多播组的节点都会收到组内所有其他节点的数据,所以每个相当于一个备份。单播模式下,只是点到点的发送数据,数据只会发向特定的那个host,这种模式下通常具有一个中央收集节点。



cluster {

  name = “Cluster1”     #本节点属于哪个cluster

  owner = “chifeng”     #谁是该节点的所有者

  latlong = “unspecified”   #在地球上的坐标,经度、纬度/span>

  url = “unspecified”

}

udp_send_channel {       #udp包的发送通道
来源:斗者_2013

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年6月16日
下一篇 2016年6月16日

相关推荐