python使用zabbix的API接口

一、实验环境

  • python3.6.6
  • zabbix 3.0.9

二、实验目的

  • 了解Zabbix的API接口格式
  • 通过python实现登陆zabbix服务,获得登陆token
  • 通过python检索zabbix上的所有脚本

 

三、实验代码

import json
import requests

#zabbix的API地址
url = 'http://172.12.99.114/zabbix/api_jsonrpc.php'

#zabbix的登陆API接口(python格式)
data = {
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "Admin",
        "password": "zabbix"
    },
    "id": 1,
    "auth": None,
}

#一定要定义请求头的Content-Type为json格式
headers = {
    'Content-Type': 'application/json-rpc'
}

#数据json化,zabbix端接收j'son格式
json_data = json.dumps(data)

#请求zabbix的api的token,及返回的result字段里的内容
res = requests.post(url,data=json_data,headers=headers)

#收到的内容json-->dict格式
res_data_dic=json.loads(res.text)

#检测服务端相应的内容里,是否还有key里有result字段
is_success=res_data_dic.get('result')
if is_success:
    #reulst对应的value就是token,之后请求其他API接口,带着此token,就不用在重新登陆
    auth_token=is_success
else:
    print('用户名或者密码错误,错误代码:%s'%res_data_dic.get('error').get('data'))

#定义检索脚本的API的请求报文
data2={
    "jsonrpc": "2.0",
    "method": "script.get",
    "params": {
        "output": "extend"
    },
    "auth": auth_token,
    "id": 1
}
#讲字典转换成j'son格式,用于传输到zabbix服务端
json_data2 = json.dumps(data2)
res2 = requests.post(url,data=json_data2,headers=headers)


res_data_dic = json.loads(res2.text)
for line in res_data_dic.get('result'):
    print(line)

#将字典转化成json格式,indent参数使用缩进3,漂亮打印,默认是紧凑排列
res2_json = json.dumps(res_data_dic,indent=3)
print(res2_json)

 

四、部分截图

 

转载于:https://www.cnblogs.com/lisenlin/p/10071101.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值