buhong 发表于 2019-1-18 09:30:42

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]
查看完整版本: zabbix api example