最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Python解析xml监控nowsms脚本的方法
时间:2016-03-05 编辑:简简单单 来源:一聚教程网
nowsms短信彩信框架的admin页面有提供一个xml页面,该页面详细显示modem的各个状态。然后结合nagios,可以很好的监控modem状态。该xml地址类似如:http://192.168.0.115:8800/admin/xmlstatus?username=sijitao&password=sijitao。
如果对python如何解析xml不是很清楚的可以参考这个网址:http://www.runoob.com/python/python-xml.html。
脚本内容
脚本中暂时只需要获取smscstatus中的status,显示ok说明modem接收发送正常,脚本类似如下。
#!/usr/bin/env python
#coding:utf-8
import urllib2
from xml.dom.minidom import parse
import sys
import argparse
parser=argparse.ArgumentParser(description="check nowsms status script.")
parser.add_argument("-H",dest="host",help="Host name argument for servers using host headers")
parser.add_argument("-P",dest="port",default=8800,help="nowsms http port ,default 8800.")
parser.add_argument("-u",dest="username",help="nowsms admin username")
parser.add_argument("-p",dest="password",help="nowsms admin user's password")
args=parser.parse_args()
if not args.host or not args.port or not args.username or not args.password :
print "Critical - Invalid command,please check."
sys.exit(2)
url='http://%s:%s/admin/xmlstatus?username=%s&password=%s' % (args.host,args.port,args.username,args.password)
req=urllib2.Request(url)
req.add_header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36")
try:
response=urllib2.urlopen(req,timeout=5)
DOMTree = parse(response)
except:
print "Critical - nowsms admin status get error."
sys.exit(2)
nowsms = DOMTree.documentElement
smsc = nowsms.getElementsByTagName("SMSCStatus")
for s in smsc:
#print s.getElementsByTagName('Name')[0].childNodes[0].data
status = s.getElementsByTagName('Status')[0].childNodes[0].data
if status != 'OK':
detail=s.getElementsByTagName('StatusDetail')[0].childNodes[0].data
print "%s - %s" % (status,detail)
sys.exit(2)
else:
print "%s - nowsms is ok." % status
sys.exit(0)
脚本部署
1、复制上面的脚本内容,保存到nagios服务端,一般保存在/usr/local/nagios/libexec目录。
2、修改commands.cfg,添加command命令。端口,用户名密码也可以使用参数,因为我这边几台都一样所以就写在command中了。
3、添加service,定义完成后就可以了。
-
下一个: php 适配器模式的学习笔记
相关文章
- JDom进行XML解析时的一个小错误以 08-16
- java 解析xml文档四种有效的方法 02-02
- java解析xml二种方法 03-19
- jdom解析xml二种方法 01-20
- as 3.0不分解析xml 11-09
- Xml解析校验引起的依赖问题 04-28