zabbix api example
zabbixapiexample[*]#!/usr/bin/env python
[*]#coding=utf-8
[*]
[*]import json,urllib2
[*]
[*]#url and url header
[*]zabbix_url="http://zabbix.test.org/api_jsonrpc.php"
[*]zabbix_header = {"Content-Type":"application/json"}
[*]zabbix_user="admin"
[*]zabbix_pass="123456"
[*]
[*]#auth user adn password
[*]auth_data = json.dumps(
[*]{
[*] "jsonrpc":"2.0",
[*] "method":"user.login",
[*] "params": {
[*] "user":zabbix_user,
[*] "password":zabbix_pass
[*] },
[*]"id":0
[*]})
[*]
[*]# create request object
[*]request = urllib2.Request(zabbix_url,auth_data)
[*]for key in zabbix_header:
[*] request.add_header(key,zabbix_header)
[*]
[*]#auth and get authid
[*]try:
[*] result = urllib2.urlopen(request)
[*]except URLError as e:
[*] print "认证失败,请检查用户名和密码是否正确",e.code
[*]else:
[*] response=json.loads(result.read())
[*] result.close()
[*] auth_code=response['result']
[*]
[*]
[*]
[*]
[*]# request json
[*]get_host_data = json.dumps(
[*]{
[*] "jsonrpc":"2.0",
[*] "method":"host.get",
[*] "params":{
[*] "output":["hostid","name","available","maintenance_status","status","error"],
[*] #"filter":{"host":""}
[*] },
[*] #auth string
[*] "auth":auth_code,
[*] "id":1,
[*]})
[*]
[*]# create request object
[*]request = urllib2.Request(zabbix_url,get_host_data)
[*]for key in zabbix_header:
[*] request.add_header(key,zabbix_header)
[*]
[*]# get host list
[*]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
[*]else:
[*] response = json.loads(result.read())
[*] result.close()
[*]
[*] print "Number Of Hosts: ", len(response['result'])
[*]
[*] for host in response['result']:
[*] print "Host ID:",host['hostid'],"Host Name:",host['name'],"Status",host['status']
页:
[1]