python nagios监控cloudstack集群的host机状态示例

cloudstack集群中,host主机有时候状态不正常,从而影响到iaas的业务,于是写了个监控脚本来进行监控,如下:


 
 
#cat check_cs_host
#!/usr/bin/python
#desc: this script is to check the status of hosts  in cloudstack
#     can use -h to show usage
 
import os,sys
import json
from optparse import OptionParser
 
E_OK = 0
E_WARNING = 1
E_CRITICAL = 2
E_UNKNOWN = 3
E_CODE = E_OK
 
parser = OptionParser()
parser.add_option("-i","--ignore",dest="ignore",
          help="ipaddress that ignore to check ")
(options,args) = parser.parse_args()
 
 
comm = '/usr/bin/cloudmonkey -d json list hosts type=Routing filter=ipaddress,state'
performance = ''
info = ''
 
host_info = os.popen(comm).read()
host_json = json.loads(host_info)['host']
if options.ignore:
    for item in host_json:
        if not item['ipaddress'] in options.ignore and item['state'] != 'Up':
            info += '%s : %s' % (item['ipaddress'],item['state'])    
            E_CODE = E_CRITICAL
else:
    for item in host_json:
                if item['state'] != 'Up':
                        info += '%s:%s; ' % (item['ipaddress'],item['state'])
                        E_CODE = E_CRITICAL  
 
if E_CODE == E_OK :
    performance += 'OK'
elif E_CODE == E_WARNING:
        performance = 'WARNING-' + info
elif E_CODE == E_CRITICAL:
    performance = 'CRITICAL-' + info
else:
    performance = 'UNKNOWN-' + info
 
print performance
sys.exit(E_CODE)


脚本可以添加 -i 或 --ignore参数来忽略一些host的监控告警

如忽略172.16.2.5和172.16.2.6这两台host的状态不正常告警,可以这么写:

check_cs_host --ignore=172.16.2.5,172.16.2.6

本文出自 “月童” 博客,请务必保留此出处http://littlefive.blog.51cto.com/6440205/1895958

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值