一、实验环境

  • 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)

四、部分截图

python使用zabbix的API接口的更多相关文章

  1. 用Python调用华为云API接口发短信

    [摘要] 用Python调用华为云API接口实现发短信,当然能给调用发短信接口前提条件是通过企业实名认证,而且有一个通过审核的短信签名,话不多说,showcode #!/usr/bin/python3 ...

  2. (41)zabbix监控api接口性能及可用性 天气预报api为例

    现在各种应用都走api,例如淘宝,天气预报等手机.pad客户端都是走api的,那么平时也得对这些api做监控了.怎么做呢?zabbix的web监控是不二选择了.今天就以天气预报api作为一个例子. 天 ...

  3. Python多线程豆瓣影评API接口爬虫

    爬虫库 使用简单的requests库,这是一个阻塞的库,速度比较慢. 解析使用XPATH表达式 总体采用类的形式 多线程 使用concurrent.future并发模块,建立线程池,把future对象 ...

  4. python访问cloudstack的api接口

    1.CloudStack API 如同 AWS API 一样,CloudStack API 也是基于 Web Service,可以使用任何一种支持 HTTP 调用的语言(例如 Java,python, ...

  5. 通过zabbix的API接口获取服务器列表

    Zabbix API说明 1) 基于Web的API,作为Web前端的一部分提供,使用JSON-RPC 2.0协议 2) 身份认证Token:在访问Zabbix中的任何数据之前,需要登录并获取身份验证令 ...

  6. zabbix的api接口

    zabbix官方文档解释,api是开发者能获得修改zabbix配置,获取历史数据.主要用于: 1.创建新应用 2.集成zabbix与第三方软件 3.自动运行任务 运用JSON-RPC2.0协议,因此接 ...

  7. 简单实现Python调用有道API接口(最新的)

    # ''' # Created on 2018-5-26 # # @author: yaoshuangqi # ''' import urllib.request import urllib.pars ...

  8. Python实现简单的API接口

    get方法 代码实现   # coding:utf-8       import json   from urlparse import parse_qs   from wsgiref.simple_ ...

  9. 关于python调用zabbix api接口

    因公司业务需要,引进了自动化运维,所用到的监控平台为zbbix3.2,最近正在学习python,计划使用python调用zabbix api接口去做些事情,如生成报表,我想最基本的是要取得zabbix ...

随机推荐

  1. MMM 状压dp学习记

    状压dp学习记 by scmmm 开始日期 2019/7/17 前言 状压dp感觉很好理解(本质接近于爆搜但是又有广搜的感觉),综合了dp的高效性(至少比dfs,bfs优),又能解决普通dp难搞定的问 ...

  2. npm-472错误

    今天无聊给npm进行了一波升级,却没想到导致出现bug,搞了半天才解决了....这里进行一下分享 1.安装npm npm install -g 升级到最新版npm install -g npm@< ...

  3. baserecyclerviewadapterhelper -- setOnItemChildClickListener出现的问题

    出现问题 使用baserecyclerviewadapterhelper 的时候使用 adapter.setOnItemChildClickListener()方法,点击没有反应. adapter.s ...

  4. restapi(2)- generic restful CRUD:通用的restful风格数据库表维护工具

    研究关于restapi的初衷是想搞一套通用的平台数据表维护http工具.前面谈过身份验证和使用权限.文件的上传下载,这次来到具体的数据库表维护.我们在这篇示范里设计一套通用的对平台每一个数据表的标准维 ...

  5. php laravel5.6引入geetest 行为验证

    php laravel5.6引入geetest 行为验证 使用必要性 网站和APP,在所有可能被机器行为攻击的场景,例如但不限于注册.登录.短信接口.查询接口.营销活动.发帖评论等等,都可以部署使用「 ...

  6. 神奇的 SQL 之 CASE表达式,妙用多多 !

    前言 历史考试选择题:黄花岗起义第一枪谁开的? A宋教仁 B孙中山 C黄兴 D徐锡麟,考生选C. 又看第二题:黄花岗起义第二枪谁开的? 考生傻了,就选了个B. 接着看第三题:黄花岗起义中,第三枪谁开的 ...

  7. Java中Random随机数

    java中一般有两种随机数,一个是Math中random()方法,一个是Random类. 一.Math.random() 随即生成0<=x<1的小数. 实例:如何写,生成随机生成出0~10 ...

  8. 异常处理 _this.setData is not a function

    _this.setData is not a function;at api request success callback function TypeError: _this.setData is ...

  9. [Hei.Captcha] Asp.Net Core 跨平台验证码实现

    写在前面 说起来比较丢脸.我们有个手机的验证码发送逻辑需要使用验证码,这块本来项目里面就有验证码绘制逻辑,.Net Framework的,使用的包是System.Drawing,我把这验证码绘制逻辑复 ...

  10. 03-Django模型类

    ORM框架:对象-关系-映射 将面向对象语言程序中的对象自动持久化到关系数据库中.本质就是将数据从一种形式转换到另外一种形式O表示Object 对象类R表示Relations 关系,关系数据库中的表M ...