Nagios插件化之ganglia插件
架构:
nagios跟ganglia一样可以都是监控软件,但是两个也有不同之处,Ganglia的优势在于实时对监控集群中的机器的各项指标,比如CPU、内存、磁盘、温度等数据,汇总成各种图形化界面,并提供可调用数据。而在出现问题的时候报警提示功能,相对较弱。
Nagios的优势在于出现问题之时可以提供强大的报警提示功能,但是在时间监控上,功能比较弱,即使使用NRPE插件也不足以提供强大的机器监控,所以此处将两者结合起来。实现监控、报警功能。
环境介绍:
1.服务器中已经安装好了Ganglia,安装过程参考:http://9480860.blog.51cto.com/9470860/1746122
2.服务器中已经安装好了Nagios,安装过程详见:http://9480860.blog.51cto.com/9470860/1746124
安装思路:
通过Nagios调用Ganglia的接口,获取整个服务器的监控指标。如果超过设定的指标,则予以报警。
安装过程:
1.Ganglia与naios的结合
#cpganglia-3.6.0/contrib/check_ganglia.py/usr/local/nagios/libexec/
#chownnagios.nagioscheck_ganglia.py
#/usr/local/nagios/libexec/check_ganglia.py
2.修改gmetad配置,使其shared监控数据
#vim/usr/local/ganglia/etc/gmetad.conf
trusted_hosts127.0.0.1192.168.235.138cjx
##vimcheck_ganglia.py修改报警脚本
try:
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((ganglia_host,ganglia_port))
parser=GParser(host,metric)
value=parser.parse(s.makefile("r"))
s.close()
exceptException,err:
print"CHECKGANGLIAUNKNOWN:Errorwhilegettingvalue\"%s\""%(err)
sys.exit(3)
ifcritical>warning:
ifvalue>=critical:
print"CHECKGANGLIACRITICAL:%sis%.2f"%(metric,value)
sys.exit(2)
elifvalue>=warning:
print"CHECKGANGLIAWARNING:%sis%.2f"%(metric,value)
sys.exit(1)
else:
print"CHECKGANGLIAOK:%sis%.2f"%(metric,value)
sys.exit(0)
else:
ifcritical>=value:
print"CHECKGANGLIACRITICAL:%sis%.2f"%(metric,value)
sys.exit(2)
elifwarning>=value:
print"CHECKGANGLIAWARNING:%sis%.2f"%(metric,value)
sys.exit(1)
else:
print"CHECKGANGLIAOK:%sis%.2f"%(metric,value)
sys.exit(0)
//报警脚本需要特别注意格式,否则会显示错误提示
#pythoncheck_ganglia.py-hcjx-mload_one-w10-c100
3.增加检测ganglia的命令
#vim/etc/nagios/objects/commands.cfg
#'check_ganglia'commanddefinition
definecommand{
command_namecheck_ganglia
command_line$USER1$/check_ganglia.py-h$HOSTADDRESS$-m$ARG1$-w$ARG2$-c$ARG3$
}
4.定义ganglia模板
#vimtemplates.cfg
defineservice{
nameganglia-service;Thenameofthisservicetemplate
usegeneric-service
hostgroup_namegangliaservers
service_groupsgangliametrics
register0
}
5.定义主机
[root@cjxobjects]#vimhosts.cfg
definehost{
uselinux-server
host_namecjx
aliasManager
address127.0.0.1
icon_p_w_picpathserver.gif
statusmap_p_w_picpathserver.gd2
2d_coords200,300
3d_coords200,300,100
}
definehostgroup{
hostgroup_nameganglia-servers;Thenameofthehostgroup
aliasgangliaservers;Longnameofthegroup
members*;
}
~
5.定义服务
[root@cjxobjects]#vimservice.cfg
defineservicegroup{
#servicegroup_nameganglia-metrics
servicegroup_namegangliametrics
aliasGangliaMetrics
}
defineservice{
useganglia-service
host_namecjx
hostgroup_nameganglia-servers
service_descriptionload_one
check_commandcheck_ganglia!load_one!4!5
}
defineservice{
host_namecjx
hostgroup_nameganglia-servers
useganglia-service
service_descriptiondisk_free
check_commandcheck_ganglia!disk_free!0.2!0.1
}
//定义服务时一定要定义好主机、主机组、服务组,否则会出现error、warning错误提示,且网上不好找到答案
6.把文件路径加入到nagios主配置文件里面
[root@cjxobjects]#cd..
#vim/etc/nagios/nagios.cfg
cfg_file=/etc/nagios/objects/hosts.cfg
cfg_file=/etc/nagios/objects/service.cfg
7.验证配置正确性
#/usr/local/nagios/bin/nagios-v/etc/nagios/nagios.cfg
8.重启nagios服务
#servicenagiosrestart
9.打开nagios-web页面可以看到相关信息
这个时候就静静的看着web页面吧。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。