zabbix通过api批量添加web监控
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix通过api批量添加web监控相关的知识,希望对你有一定的参考价值。
zabbix 添加web监控始终是大问题,不能自动发现只能手动添加
写了个py脚本
#!/usr/bin/env python # -*- coding: utf-8 -*- import json import urllib2 import sys class zabbixtools: def __init__(self): self.url = "Zabbixserver" self.header = {"Content-Type": "application/json"} self.authID = self.user_login() def user_login(self): data = json.dumps( { "jsonrpc": "2.0", "method": "user.login", "params": { "user": "USER", "password": "PASSWORD" }, "id": 0 }) request = urllib2.Request(self.url,data) for key in self.header: request.add_header(key,self.header[key]) try: result = urllib2.urlopen(request) except URLError as e: print "Auth Failed, Please Check Your Name And Password:",e.code else: response = json.loads(result.read()) result.close() authID = response[‘result‘] return authID def get_data(self,data,hostip=""): request = urllib2.Request(self.url,data) for key in self.header: request.add_header(key,self.header[key]) try: result = urllib2.urlopen(request) except URLError as e: if hasattr(e, ‘reason‘): print ‘We failed to reach a server.‘ print ‘Reason: ‘, e.reason elif hasattr(e, ‘code‘): print ‘The server could not fulfill the request.‘ print ‘Error code: ‘, e.code return 0 else: response = json.loads(result.read()) result.close() return response def host_create(self): data = json.dumps( { "jsonrpc": "2.0", "method": "httptest.create", "params": { "hostid": "10788", "name": "Homepage", "steps": [ { "name": "1", "url": "http://mycompany.com", "no": 1 } ] }, "auth": self.authID, "id": 1, }) res = self.get_data(data) print res def main(): test = zabbixtools() test.host_create() if __name__ == "__main__": main()
以上是关于zabbix通过api批量添加web监控的主要内容,如果未能解决你的问题,请参考以下文章