Zabbix api简介
部署zabbix
- Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案
- 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题
Zabbix api概述
- Zabbix API允许你以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。它广泛用于:
(1) 创建新的应用程序以使用Zabbix
(2) 将Zabbix与第三方软件集成
(3) 自动执行常规任务
JSON-RPC
- Zabbix API是基于Web的API,作为Web前端的一部分提供。它使用JSON-RPC 2.0协议,这意味着两件事:
- 该API包含一组独立的方法
- 客户端和API之间的请求和响应使用JSON格式进行编码
API结构
- Zabbix API包含许多方法,这些方法都名义上分组为单组的API
- 每个方法执行一个特定任务。例如,方法host.create 隶属于 host 这个API ,用于创建新主机
- 历史上,API有时被称为“类”
- 大多数API至少包含四种方法: get, create,update 和 delete ,分别是检索,创建,更新和删除数据。但是某些API提供一套完全不同的一组方法。
执行请求
- 设置前端后,你就可以使用远程HTTP请求来调用API。为此,需要向 api_jsonrpc.php 位于前端目录中的文件发送HTTP POST请求。例如,如果你的Zabbix前端安装在 http://company.com/zabbix , 那么用HTTP请求来调用 apiinfo.version 方法就如下面这样:
POST http://company.com/zabbix/api_jsonrpc.php HTTP/1.1
Content-Type: application/json-rpc
{"jsonrpc":"2.0","method":"apiinfo.version","id":1,"auth":null,"params":{
}}
请求的 Content-Type 头部必须设置为以下值之一:
- application/json-rpc
- application/json
- application/jsonrequest
使用API
- 通过zabbix提供的API接口,就可以使用python与其交互了
url = 'http://zabbix_server/api_jsonrpc.php'
headers = {
'Content-Type': 'application/json-rpc’}
data = {
'jsonrpc': '2.0',
'method': 'apiinfo.version',
'id': 1,
'auth': None,
'params': {
},
}
r = requests.post(url,headers=headers,data=json.dumps(data))
print(r.json())
工作流程
- 在访问大多数Zabbix中的任何数据之前,需要登录并获取身份验证令牌
- 取得令牌后,访问其他数据只要出示该令牌即可,不需要再进行身份验证
- 通过zabbix api提供的各种方法实现数据的检索、项目的创建等
获取令牌
- 使用 user.login 方法登录并获取身份验证令牌
{
"jsonrpc":"2.0",
"method": "user.login",
"params": {
"user":"Admin",
"password"</