监控系统之ganglia服务

  Ganglia是一个开源集群监视项目,设计用于测量数以千计的节点,ganglia的核心有gmond,gmetad.web前端,主要用来监控系统性能,包括:cpu,mem,硬盘利用率,i/o负载,网络流量监控,通过曲线显示每个节点工作状态。基本原理为:集群内的节点通过运行的gmond收集发布节点的状态信息,gmetad周期性的轮询gmond收集到的信息,数据传格式采用xml压缩格式进行传输,然后存入到rrd数据库,通过web服务器就可以对其进行查询结果展示。

材料准备:

ganglia-3.4.0.tar.gz    ganglia-web-3.4.2.tar.gz  rrdtool-devel-1.3.8-6.el6.x86_64.rpmlibconfuse-devel-2.6-3.el6.x86_64.rpm libconfuse-2.6-3.el6.x86_64.rpm

 

步骤:

第一步:(ganglia服务的安装)

#yum install -y rpm-build      rpm-build 负责将源码编译成二进制文件

#yum install -y libart_lgpl-devel python-devellibconfuse-devel pcre-devel expat-devel rrdtool-devel apr-devel libtoolautoconf    ##解决安装anglia的依赖性

# yum install -ylibconfuse-devel-2.6-3.el6.x86_64.rpm libconfuse-2.6-3.el6.x86_64.rpm

# yum install -yrrdtool-devel-1.3.8-6.el6.x86_64.rpm

#rpmbuild -tb ganglia-3.4.0.tar.gz  ###对这两个源码文件进行编译为二进制文件

#rpmbuild -tb ganglia-web-3.4.2.tar.gz

#cd rpmbuild/RPMS/noarch/

# rpm -ivhganglia-web-3.4.2-1.noarch.rpm  ## 安装web展示界面

#(前提先解决相关的依赖性yum install -y php php-gd

#cd rpmbuild/RPMS/x86_64/

#rpm -ivh  *

 

#scp  libganglia-3.4.0-1.x86_64.rpm ganglia-gmond-modules-python-3.4.0-1.x86_64.rpm    ganglia-gmond-3.4.0-1.x86_64.rpm    libconfuse-devel-2.6-3.el6.x86_64.rpm  libconfuse-2.6-3.el6.x86_64.rpm   172.25.45.5: -->客户端主机ip

#cd/etc/ganglia/        ##编辑主配置文件

# vimgmetad.conf

 44   data_source "liumin cluster"localhost

# vimgmond.conf

     24  name = "liumin cluster"

#/etc/init.d/gmondstart  ---> # /etc/init.d/gmetad start-----> # /etc/init.d/httpd restart

客户端:  -->安装数据采集gmond

#rpm-ivh ganglia-gmond-3.4.0-1.x86_64.rpm ganglia-gmond-modules-python-3.4.0-1.x86_64.rpm  libconfuse-2.6-3.el6.x86_64.rpmlibconfuse-devel-2.6-3.el6.x86_64.rpm libganglia-3.4.0-1.x86_64.rpm 

#vim   /etc/ganglia/gmond.conf  ###配置文件,使它能把数据传给服务器端gmetad

      24  name = "liumin cluster"

##/etc/init.d/gmond   start  -->netstat  -antlpe ##查看gmond端口打开情况

 

#Firefox   ---> 172.25.45.20/gweb  ---->查看ganglia的显示界面;

wKiom1desTfCJHQtAAJxEGLq5So241.png-wh_50 

wKiom1desbewrUiNAAKcELJaspI827.png-wh_50

#gmetad收集到的数据全放在/var/lib/ganglia/rrds/liumincluster里面的各个ip文件里面 并且ganglia可以实现将同一网段的主机的信息收集过来,前提是这些主机装了gmond采集服务,并且设置好gmond.conf中的name;gmetad就会轮询采集到这些主机的数据存放到前述的路径中的文件夹。

wKioL1destKj9v4oAADoN0nx7xc005.png-wh_50

 

第二步:(集成Nagios报告Ganglia采集的指标)也就是将ganglianagios进行结合起来,将ganglia采集到的数据通过nagios进行显示。

#tar  zxf ganglia-3.4.0.tar.gz

#cp  /ganglia-3.4.0/contrib/check_ganglia.py   /usr/local/nagios/libexec/

#cd  /usr/local/nagios/libexec/

#chown  nagios.nagios check_ganglia.py

#vim   check_ganglia.py      #更改ganglia配置文件,使告警标准与nagios标准一致

 89if critical > warning:

 90   ifvalue >= critical:

 91    print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric, value)

 92    sys.exit(2)

 93  elif value >= warning:

 94    print "CHECKGANGLIA WARNING: %s is %.2f" % (metric, value)

 95    sys.exit(1)

 96  else:

 97    print "CHECKGANGLIA OK: %s is %.2f" % (metric, value)

 98    sys.exit(0)

 99else:

100  if critical >= value:

101     print "CHECKGANGLIA CRITICAL: %s is%.2f" % (metric, value)

102    sys.exit(2)

103  elif warning >= value:

104    print "CHECKGANGLIA WARNING: %s is %.2f" % (metric, value)

105    sys.exit(1)

106  else:

107    print "CHECKGANGLIA OK: %s is %.2f" % (metric, value)

108    sys.exit(0)

注意:python语法格式,对齐的一行就是一个语句块。

 

#cd  /var/lib/ganglia/rrds/liumin\cluster/server5.example.com/    #ganglia服务存放采集到主机名为server5.example.com的主机信息数据的地方,采用环形数据库存放数据。

#/usr/local/nagios/libexec/check_ganglia.py  -h server5.example.com   -mdisk_free_percent_rootfs  -w 20  -c 10        ##验证有没有取道到远程主机的disk数据

 

编辑nagios服务的配置文件,使得nagios能够得到ganglia采集的指标,并且显示出来

#vim  template.cfg             ###编辑模板

192 define service {

193        use                     generic-service    ##使用通用模板,

194        name                   ganglia-service     ##模板别名

195        hostgroup_name    ganglia-servers   

196        service_groups      ganglia-metrics

197        }

 

#vimcommand.cfg

228 define command{

229        command_name   check_ganglia

230        command_line    $USER1$/check_ganglia.py  -h $HOSTADDRESS$  -m  $ARG1$ -w  $ARG2$  -c $ARG3$

231        }

 

#vimhosts.cfg

 48define host {

 49        use                  linux-server

 50        host_name    server5.example.com

 51        address      172.25.45.5

 52}

 71define hostgroup{

 72        hostgroup_name    ganglia-servers

 73        alias             ganglia-servers

 74        members        server5.example.com   

 75        }

 

#vim  services.cfg

135 define servicegroup {

136        servicegroup_name      ganglia-metrics

137        alias                 Ganglia_Metrics

138 }

139

140 define service{

141        use                    ganglia-service

142        service_description        根分区空闲百分比

143        check_command     check_ganglia!disk_free_percent_rootfs!20!10

144        }

145

146 define service{

147        use          ganglia-service

148        service_description       内存空闲

149        check_command      check_ganglia!mem_free!50000!30000

150        }

 

#/usr/local/nagios/bin/nagios   -v   /usr/local/nagios/etc/nagios.cfg           ##进行错误检查

#/etc/init.d/nagios    reload       重新倒入配置

 

#Firefox    172.25.45.20/nagios    查看nagiosganglia采集server5.example.com的数据显示出来

 wKiom1desgeSXfKmAAQ7PLO5hpM014.png-wh_50