ganglia监控

ganglia

ganglia 是分布式的监控系统,有两个Daemon, 分别是:客户端Ganglia Monitoring Daemon (gmond)和服务端Ganglia Meta Daemon (gmetad),还有Ganglia PHP Web Frontend(基于web的动态访问方式)组成是一个Linux下图形化监控系统运行性能的软件,界面美观、丰富,功能强大

http://ganglia.sourceforge.net/ 软件下载 

环境:RHEL6  x86-64 disable selinux and iptables

主机:192.168.0.27    server27.example.com

         192.168.0.168    server68.example.com

#下载ganglia-3.6.0.tar.gz  ganglia-web-3.5.2.tar.gz libconfuse-devel-2.6-3.el6.x86_64.rpm  libconfuse-2.7-4.el6.x86_64.rpm

#yum install -y rpm-build libart_lgpl-devel gcc-c++ python-devel libconfuse-devel pcre-devel expat-devel apr-devel    ##安装软件包依赖性

#rpm -ivh libconfuse-* 

#rpmbuild -tb ganglia-3.6.0.tar.gz 

#下载rdtool-devel-1.3.8-6.el6.x86_64.rpm 

#rpm -q rrdtool    ##查看是否安装

#rpm -ivh rrdtool-devel-1.3.8-6.el6.x86_64.rpm 

#rpmbuild -tb ganglia-3.6.0.tar.gz 

#cd /root/rpmbuild/RPMS/x86_64 

#rpm -ivh * 

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

#cd rpmbuild/RPMS/ noarch/ 

#rpm -ivh ganglia-web-3.5.2-1.noarch.rpm 

#cd /etc/ganglia/ 

#vim gmetad.conf 

name= “my cluster” 

data_source "my cluster" 192.168.0.27(本机ip):86xx

#vim gmond.conf

name=“my cluster” 

修改udp的端口号(3个)

8649-->86xx

#cd /root/rpmbuild/ RPMS/ x86_64/ 

#scp ganglia-gmond-3.6.0-1.x86_64.rpm ganglia-gmond-modules-python-3.6.0-1.x86_64.rpm ibganglia-3.6.0-1.x86_64.rpm 192.168.0.168: (yum install openssh-clients )

在168这台主机上

#下载libconfuse-devel-2.6-3.el6.x86_64.rpm  libconfuse-2.7-4.el6.x86_64.rpm

#yum localinstall *

#cd /etc/ganglia/

#vim gmod.conf

name=”my cluster

修改udp的端口号(3个)

8649-->86xx        (!注意:该端口必须与主机的保持一致)

#service gmond restart

#iptables -F

#service gmond restart

#service gmetad restart

#cd /var/lib/ganglia/rrds/     在该目录下回生成相应的数据文件,可以看到每个主机的度量指标,生成了易于查看的图形.

这时通过web访问192.168.0.27/ganglia就可看见刚建立的集群

ganglia监控_第1张图片

ganglia与nagios的整合

注:ganglia与nagios可以部署在不同的主机,因为端口号设置相同,脚本会自动提取内容。

注:check_ganglia.py 命令仅在阈值过高时发出警告。如果希望在阈值过低时发出警告(在disk_free 中是这样),则需要修改代码。我更改了文件的最后部分,如下所示:
#cd /root/ganglia-3.6.0 /contrib/ 

#cp check_ganglia.py /usr/local/nagios/libexec/ 

#cd /usr/local/nagios/libexec/(查看是否复制成功) 

#chown nagios.nagios check_ganglia.py

#/usr/local/nagios/libexec/check_ganglia.py -h server27.example.com -m disk_free_percent_rootfs -w 30 -c 10 -p 86xx

#vim check_ganglia.py (创建脚本)

  except Exception, err: 

    print "CHECKGANGLIA UNKNOWN: Error while getting value \"%s\"" % (err) 

    sys.exit(3) 

if critical > warning: 

  if value >= critical: 

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

    sys.exit(2) 

  elif value >= warning: 

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

    sys.exit(1) 

  else: 

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

    sys.exit(0) 

else: 

  if critical >= value: 

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

    sys.exit(2) 

  elif warning >= value: 

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

    sys.exit(1) 

  else: 

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

    sys.exit(0) 

#/usr/local/nagios/libexec/check_ganglia.py -h server27.example.com -m disk_free_percent_rootfs -w 30 -c 10 看运行结果是否报错

#vim check_ganglia.py 

ganglia_port=86xx 

#/usr/local/nagios/libexec/check_ganglia.py -h server27.example.com -m disk_free_percent_rootfs -w 30 -c 10 看运行结果是否报错

#cd /usr/local/nagios/etc/objects/

#vim commands.cfg 

# 'check_ganglia' command definition 

define command{ 

        command_name    check_ganglia 

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

        } 

#vim /usr/local/nagios/etc/objects/templates.cfg 

最后加入

define service { 

use generic-service 

name ganglia-service 

hostgroup_name ganglia-servers 

service_groups ganglia-metrics

register        0     ##不进行注册

}

# vim /usr/local/nagios/etc/objects/hosts.cfg  ##定义主机

最后加入

define hostgroup { 

hostgroup_name ganglia-servers 

alias ganglia-servers 

members server86.example.com 

#vim /usr/local/nagios/etc/objects/services.cfg    ##定义服务器

###############check_ganglia################ 

define servicegroup { 

servicegroup_name ganglia-metrics 

alias Ganglia Metrics 

define service{

use ganglia-service 

  service_description 根分区 

check_command check_ganglia!disk_free_percent_rootfs!20!10 


define service{ 

use ganglia-service 

service_description 系统负载

check_command check_ganglia!load_one!4!5

define service{ 

use ganglia-service 

service_description 内存空闲

check_command check_ganglia!mem_free!50000!30000 

 } 

#service nagios reload

#web 访问192.168.0.27/nagios

ganglia监控_第2张图片

如果一切正常,您应该看到 Ganglia 数据现在已经在 Nagios 的监视之下 ,结合使用 Ganglia 和 Nagios,您可以监视任何内容。 

                                                                                                                                                                ——[email protected]


你可能感兴趣的:(ganglia监控)