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;">