您的位置:首页 > 运维架构

zabbix二次开发之批量添加web监控

2016-02-26 18:37 507 查看
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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: