1.复制所需脚本到nagios的脚本目录,并设置权限php
cp -fr ./ganglia-3.7.1/contrib/check_ganglia.py /usr/local/nagios/libexec/ chown nagios.nagios /usr/local/nagios/libexec/check_ganglia.py chmod 755 /usr/local/nagios/libexec/check_ganglia.py
2.添加check_ganglia的命令node
编辑commands.cfg文件,添加以下内容ios
# 'check_ganglia' command definition define command { command_name check_ganglia command_line $USER1$/check_ganglia.py -h $HOSTNAME$ -m $ARG1$ -w $ARG2$ -c $ARG3$ }
3.check_ganglia.py 使用方法:ui
./check_ganglia.py -hurl
check_gmond: option -h requires argumentspa
Usage: check_ganglia -h|--host= -m|--metric= -w|--warning= -c|--critical= [-s|--server=] [-p|--port=]code
-h :指定监控的nodesorm
-m 指定监控的metric server
-w 指定 wanning 值blog
-c 指定错误值
-s 指定ganglia 的server
-p 指定端口
/usr/local/nagios/libexec/check_ganglia.py -h puppet.sa.beyond.com -m load_one -w 1 -c 2
4. 根据脚本使用方法,进行配置监控
define service { use beyond-service host_name test.sa.beyond.com service_description check_load_one check_command check_ganglia!load_on!1!2 } define service { use beyond-service host_name test.sa.beyond.com service_description check_load_five check_command check_ganglia!load_five!0.9!1 } define service { use beyond-service host_name test.sa.beyond.com service_description check_load_fifteen check_command check_ganglia!load_fifteen!1!2 }
5.打开nagios界面,能够看到效果
6. 在nagiosUI上添加ganglia的图
若是主机和服务名在ganglia和nagios中保持一致,那么只须要使用内置的nagios宏就能够将任意服务的action_url指回ganglia的graph.php文件,这样用户在点击nagiosUI中的action_url来请求某项服务时,就能够得到这个服务在ganglia的图标形式的数据
例如:某项服务 load_one咱们能够用下面语句来获取ganglia的数据
http://203.130.45.173:9100/ganglia/graph.php?c=beyond&h=puppet.sa.beyond.com&m=load_one&r=hour&z=large
c表示主机所在的cluster
h表示主机 能够使用nagios内置宏hostname来传递
m表示metric 能够使用nagios内置宏 servicedesc 来传递
因为在nagios中没有集群的概念,因此须要自动宏来传递主机所在的cluster。nagios自定义宏如下划线开头,以下
最后 为统一管理,能够在模版上加如action_url
重启nagios。会在nagios的ui上看到图标,点击进去以后,是ganglia的图表
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">