本次實驗緊接上次實驗,ganglia節點須要開啓,且已經安裝Nagios,Nagios安裝可參考我前面關於nagios的博客:實戰Nagios網絡監控(1)——監控本機運行狀態和Mysq主機html
注:ganglia與nagios能夠部署在不一樣的主機linux
主機nagios狀態以下:ios
主機ganglia狀態以下:vim
server1瀏覽器
server2
網絡
nagios監控遠程主機的方式爲nagios+nrpe,而ganglia能夠使用客戶端daemon(Ganglia Monitoring Daemon(gmond))監控遠程主機,本次實驗爲server1上只裝有nagios,server1和server2上沒有裝nrpe服務,服務端server1沒法獲取server2的主機資源。添加ganglia服務,ganglia集羣資源中有server1和server2服務。利用server1上的nagios集成ganglia服務從而讓server1上的nagios監控遠程主機server2上的資源。ide
1.ganglia配置ui
[root@server1 html]# cp /root/ganglia-3.4.0/contrib/check_ganglia.py /usr/local/nagios/libexec/spa
[root@server1 html]# cd /usr/local/nagios/libexec/3d
[root@server1 libexec]# chown nagios.nagios check_ganglia.py
注:check_ganglia.py 命令僅在閾值太高時發出警告。若是但願在閾值太低時發出警告(在disk_free 中是這樣),則須要修改代碼。我更改了文件的最後部分,以下所示:
[root@server1 libexec]# vim check_ganglia.py
89 if critical > warning:
90 if value >= 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)
99 else:
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)
[root@server1 libexec]# /usr/local/nagios/libexec/check_ganglia.py -h server2.example.com -m disk_free -w 20 -c 10
CHECKGANGLIA CRITICAL: disk_free is 6.36
2.nagios配置
[root@server1 ~]# cd /usr/local/nagios/etc/objects/
[root@server1 objects]# vim commands.cfg
添加以下內容:
# 'check_ganglia' command definition
define command {
command_name check_ganglia
command_line $USER1$/check_ganglia.py -h $HOSTNAME$ -m $ARG1$ -w $ARG2$ -c $ARG3$
}
[root@server1 objects]# vim templates.cfg
添加以下內容:
define service {
use generic-service
name ganglia-service
hostgroup_name ganglia-servers
service_groups ganglia-metrics
}
[root@server1 objects]# vim hosts.cfg
添加以下內容:
define host{
use linux-server
host_name server2.example.com
alias server2
address 172.25.254.2
icon_p_w_picpath switch.gif
statusmap_p_w_picpath switch.gd2
2d_coords 400,100
3d_coords 400,200,100
}
define hostgroup {
hostgroup_name ganglia-servers
alias ganglia-servers
members server2.example.com
}
[root@server1 objects]# vim services.cfg
添加以下內容:
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
}
[root@server1 objects]# /etc/init.d/nagios restart
瀏覽器端刷新查看,servre2端的資源被監控:
等一段時間,狀態都變成了OK: