喜欢需要理由吗?需要吗?当然需要,zabbix的那么多功能足以让你喜欢她,现在还有zabbix API,zabbix真让我疯了,太牛逼了,太让人喜欢了。有zabbix API我们可以做很多,自己开发web界面、开发手机端zabbix、获取zabbix指定数据、创建zabbix监控项等等。

zabbix API开发库

zabbix API请求和响应都是json,并且还提供了各种语法的lib库,http://zabbix.org/wiki/Docs/api/libraries,包含php、c#、Python、Perl、go等等语言,使用非常方便。

请求zabbix API

post json数据到api接口地址,例如你的zabbix地址是http://company.com/zabbix,那么你的接口地址是:http://company.com/zabbix/api_jsonrpc.php,必须包含content-type头,值为application/json-rpc, application/json or application/jsonrequest之一。

zabbix API登陆

获取auth token(登陆)

在操作zabbix之前,我们必须先登陆zabbix,得到token,以后的操作带着这个token即可,要不然肯定没权限。

#!/usr/bin/env python

# Version = 3.5.2

# __auth__ = '无名小妖'

import json

from urllib import request, parse

ZABBIX_URL = 'http://alyz.xxxxxxx.com'

ZABBIX_USERNAME = "admin"

ZABBIX_PASSWORD = "xxxxxx"

url = "{}/api_jsonrpc.php".format(ZABBIX_URL)

header = {"Content-Type": "application/json"}

# auth user and password

data = {

"jsonrpc": "2.0",

"method": "user.login",

"params": {

"user": ZABBIX_USERNAME,

"password": ZABBIX_PASSWORD

},

"id": 1,

}

# 由于API接收的是json字符串,故需要转化一下

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

# 对请求进行包装

req = request.Request(url, headers=header, data=value)

# 验证并获取Auth ID

try:

# 打开包装过的url

result = request.urlopen(req)

except Exception as e:

print("Auth Failed, Please Check Your Name And Password:", e)

else:

response = result.read()

# 上面获取的是bytes类型数据,故需要decode转化成字符串

page = response.decode('utf-8')

# 将此json字符串转化为python字典

page = json.loads(page)

result.close()

print("Auth Successful. The Auth ID Is: {}".format(page.get('result')))

输出:Auth Successful. The Auth ID Is: 3c5ed7eadecc3761e7b541426a461921

附:

python3 中 urllib 的用法:  http://www.cnblogs.com/wumingxiaoyao/p/7478573.html

python调用zabbixapi接口_python3 + zabbix api 的使用相关推荐

  1. python调用zabbixapi接口_python调用zabbix api获取主机信息

    import requests import json headers = { 'Content-Type': 'application/json' } class GetZabbix: def __ ...

  2. pythondockerapi_docker-py 用Python调用Docker接口的方法

    众所周知,Docker向外界提供了一个API来管理其中的资源.这个API可以是socket文件形式的(一般也是默认的,在/var/run/docker.sock中),也可以是TCP形式的.以前想要通过 ...

  3. python调用第三方接口获取数据_python调用接口,python接收post请求接口(附完整代码)...

    与Scala语言相比,Python有其独特的优势和广泛的应用,python调用接口,因此Spark也推出了PySpark,它在框架上提供了一个使用Python语言的接口,python接收post请求接 ...

  4. c调python_应该是史上最全的python调用C接口

    在这段时间里,我需要使用python调用C接口.我在网上搜索了很多,再加上python的官方文件,并组织备份1.从ctypes加载dll导入* dll = () # func1dll = CDLL ( ...

  5. python调用webservice接口实例_python调用各种接口,webservice,c接口,com接口,socket协议方法...

    python调用webservice接口(SOAP) (2)调用示例: 需要先安装suds库:pip install suds from suds.client import Client #如果需要 ...

  6. python rpc_对python调用RPC接口的实例详解

    要调用RPC接口,python提供了一个框架grpc,这是google开源的 rpc相关文档: 需要安装的python包如下: 1.grpc安装 pip install grpcio 2.grpc的p ...

  7. Python 调用WebService接口出错-suds.transport.TransportError: HTTP Error 401: Unauthori

    使用Python调用WebService接口出现"suds.transport.TransportError: HTTP Error 401: Unauthorized"错误. 问 ...

  8. 实现python 调用 C++ 接口的 easypr

    实现python 调用 C++ 接口的 easypr 本文实现了用python 调用 C++ 的easypr ,实现车牌的识别. CMakelist.txt 以及调用方法将会附上 CMakelist. ...

  9. python调用百度接口实现ocr识别_Python调用百度OCR实现图片文字识别的示例代码

    百度AI提供了一天50000次的免费文字识别额度,可以愉快的免费使用!下面直接上方法: 首先在百度AI创建一个应用,按照下图创建即可,创建后会获得如下: 创建后会获得如下信息: APP_ID = '* ...

最新文章

  1. powerpoint打字慢
  2. 闲话网名之“jrfly331”
  3. 6、Power Map—实例:柱状图按月展示数据变动
  4. linux服务器 远程桌面,如何远程桌面Linux服务器
  5. SAP Kyma能像SAP BYD那样做field extension吗
  6. Java中9大内置基本数据类型Class实例和数组的Class实例
  7. AI评委引热议,阿里巴巴表示:AI不会取代工程师
  8. 【全开源商城小程序源码】ThinkPHP 5.1+带后台商城源码程序+带详细安装使用文档
  9. c oracle 参数赋值,利用c#反射实现实体类生成以及数据获取与赋值
  10. python爬虫方向的第三方库,Python网络爬虫方向的第三方库是
  11. [Android Traffic] android 流量计算方法
  12. 【亚伦博客】《蝙蝠侠前传2:黑暗骑士》里发生了什么
  13. Android技术点滴记录
  14. php函数大小写转化,php大小写转换函数(strtolower、strtoupper)用法介绍
  15. 前端:解决vue2.0只能运行在Local,不能运行在NetWork的问题
  16. Qt5 QML TreeView currentIndex当前选中项的一些问题
  17. Hello 内存 cache 主存 外存
  18. 既然选择了远方——30自制操作系统之第2天--汇编语言学习与Makefile入门
  19. 数据库的IOPS计算
  20. 使用键盘移动鼠标指针

热门文章

  1. 【教女朋友学网络系列3】之手把手教她明白交换机的基本原理
  2. 常用公差配合表图_模具设计,常用模具零件选用
  3. 如何将实时计算 Flink 与自身环境打通?
  4. java学习笔记:Storm 常用配置
  5. 如何使用ZBrush和3DMAX雕刻一个百夫长?
  6. 快节奏多人游戏同步:技术与算法的实现
  7. ImportError: cannot import name ‘options‘ from ‘pyecharts‘
  8. JMeter环境搭建
  9. SQL基础【十九、触发器】(不建议使用触发器的原因)
  10. seconds_behind_master监控复制推延的不足及pt-heartbeat改进方法