python3的api_python3--zabbixapi 的使用

python3 使用zabbix api的一些案例。。具体可以去zabbix官网找API借口,替换一下就可以。#!/usr/bin/env python

# -*- coding: utf-8 -*-

import urllib.request

import json

import re

url = 'http://xxxxxxxxxxxxxxxx/api_jsonrpc.php'

username = 'xxxxxxxxxxxxxxx'

password = 'xxxxxx'

# 登陆

def requestJson(url, values):

data = json.dumps(values).encode('utf-8')

req = urllib.request.Request(url, data, {'Content-Type': 'application/json-rpc'})

response = urllib.request.urlopen(req, data)

a = response.read().decode(encoding='utf-8')

output = json.loads(a)

#    print output

try:

message = output['result']

except:

message = output['error']['data']

print(message)

quit()

return output['result']

##登陆的API

def authenticate(url, username, password):

values = {'jsonrpc': '2.0',

'method': 'user.login',

'params': {

'user': username,

'password': password

},

'id': '0'

}

idvalue = requestJson(url, values)

return idvalue

# auth的值

auth = authenticate(url, username, password)

##查询组ID {'groupid': '8', 'name': 'Switch'}

def groups(auth):

values = {

"jsonrpc": "2.0",

"method": "hostgroup.get",

"params": {

"output": ["groupid", "name"],

},

'auth': auth,

'id': '1'

}

output = requestJson(url, values)

return output

# b = groups(auth)

# print(b)

##查询主机  {'hostid': '10108',

def hosts(auth):

values = {

"jsonrpc": "2.0",

"method": "host.get",

"params": {

"output": ["groupid", "name"],

"groupids": "8",

},

'auth': auth,

'id': '1'

}

output = requestJson(url, values)

return output

host = hosts(auth)

host1 = []

host2 = []

for i in range(len(host)):

host1.append(host[i]['name'])

host2.append(host[i]['hostid'])

host3 = dict(zip(host1, host2))

##查询主机项目 {'key_': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'itemid': '26399'}

def item(auth):

values = {

"jsonrpc": "2.0",

"method": "item.get",

"params": {

"output": ["itemids", "key_"],

"hostids": "10108",

},

'auth': auth,

'id': '1'

}

output = requestJson(url, values)

return output

# print(item(auth))

##查询项目的历史值  'lastvalue': '-14760.0000'

def his(auth, itemids):

values = {

"jsonrpc": "2.0",

"method": "item.get",

"params": {

"output": "extend",

"history": 0,

"itemids": itemids,

"sortfield": "itemid",

"sortorder": "DESC",

"limit": 1

},

'auth': auth,

'id': '1'

}

output = requestJson(url, values)

return output

# print(his(auth,26399))

##查询触发项目值和监控项目  {'description': 'xxxxxxxxxxxxxxx', 'hostname': 'xxxxxxxxxxxxxxx', 'items': [{'itemid': '26399'}], 'triggerid': '17030'}

def trigger(auth, hostid):

values = {

"jsonrpc": "2.0",

"method": "trigger.get",

"params": {

"output": [

"description",

],

"filter": {

"hostid": hostid,

},

"selectItems": "",

"sortfield": "hostname",

"sortorder": "DESC"

},

'auth': auth,

'id': '1'

}

output = requestJson(url, values)

return output

###简单使用案例,可查考,根据触发器查找历史。

t1 = trigger(auth, host3[msg['Content']])

t2 = []

t3 = []

for i in range(len(t1)):

t5 = t1[i]['items'][0]  ##   'items': [{'itemid': '26399'}]

t6 = his(auth, t5['itemid'])  ##   his(auth,26399)

t2.append(t1[i]['description'])  ##监控项目描述

t3.append(round(float(t6[0]['lastvalue'])) / 1000)  ##项目ID 的值

t4 = dict(zip(t2, t3))

t8 = []

for k in t4:

t7 = k + ":" + "{}".format(t4[k]) + "db"

t8.append(t7)

t9 = "\n".join(t8)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值