zabbix利用API添加Web页面监控代码实现(2)
#!/usr/bin/env python# coding:utf-8from pyzabbix import ZabbixAPIimport sysfrom re import compile,IGNORECASEreload(sys)sys.setdefaultencoding('utf8')ZABBIX_SERVER = "http://10.131.171.37/zabb...
·
#!/usr/bin/env python
# coding:utf-8
from pyzabbix import ZabbixAPI
import sys
from re import compile,IGNORECASE
reload(sys)
sys.setdefaultencoding('utf8')
ZABBIX_SERVER = "http://10.131.171.37/zabbix"
USER = "Admin"
PASSWORD = "zabbix"
HOSTNAME = "10.131.171.36"
URL="http://10.131.88.110:18080/lens"
def login(ZABBIX_SERVER,USER,PASSWORD):
zapi = ZabbixAPI(ZABBIX_SERVER)
zapi.login(USER,PASSWORD)
return zapi
def gethostid(auth,HOSTNAME):
request = ZabbixAPI.do_request(auth, 'host.get', params={ "filter": {"host":HOSTNAME}})
if request['result']:
return request['result'][0]['hostid']
else:
print ("找不到该主机")
sys.exit(1)
def getapplicationid(auth,hostid):
try:
request = ZabbixAPI.do_request(auth, 'application.create', params={"name": u"WebMonitor","hostid": hostid})
except Exception as e:
print(e)
request = ZabbixAPI.do_request(auth, 'application.get', params={"hostids": hostid})
for num in xrange(0,len (request['result'])):
if request['result'][num]['name'] == "WebMonitor":
print(request)
return request['result'][num]['applicationid']
def create_web_scenario(auth,URL,hostid,applicationid):
request = ZabbixAPI.do_request(auth, 'httptest.get', params={ "filter": {"name": URL}})
if request['result']:
print('该web监控已经添加过了' )
else:
try:
ZabbixAPI.do_request(auth, 'httptest.create',params={"name": URL,"hostid": hostid,"applicationid": applicationid, "steps": [ { 'name': URL, 'url': URL, 'status_codes': '200', 'no': '1'} ] } )
except Exception as e:
print(e)
def create_trigger(auth,HOSTNAME,URL):
expression="{"+"{0}:web.test.rspcode[{1},{1}].last()".format(HOSTNAME,URL)+"}"+"<>200"
try:
ZabbixAPI.do_request(auth, 'trigger.create', params={"description": "[{0}] Pages Monitor".format(URL),"expression": expression,"priority":4})
except Exception as e:
print(e)
auth = login(ZABBIX_SERVER,USER,PASSWORD)
hostid = gethostid(auth,HOSTNAME)
applicationid=getapplicationid(auth,hostid)
create_web_scenario(auth,URL,hostid,applicationid)
create_trigger(auth,HOSTNAME,URL)
花了大半天又踩了踩坑,因为zabbix3和zabbix4参数有些差别,边学习边改代码。不过终于打通啦,很高兴!
更多推荐
已为社区贡献12条内容
所有评论(0)