zabbix api
简介
zabbix api 为批量操作,第三方软件集成及其他作用提供可编程接口。
zabbix api 在1.8版本以后开始提供,zabbix移动客户端和原生的web前端部分都是建立在zabbix api上。zabbix api中间件使得架构更加模块化并避免对数据库进行操作。允许你使用JSON RPC协议来创建、更新和获取zabbix 对象并操作(认证你的账户)。
zabbix api 提供两项功能:
- 远程管理zabbix 配置
- 远程检索配置和历史数据
zabbix API开发库
zabbix API请求和响应都是json,并且还提供了各种语法的lib库,http://zabbix.org/wiki/Docs/api/libraries,包含php、c#、Python、Perl、go等等语言
使用JSON
采用JSON RPC协议实现。调用任何函数,都要发送POST请求,输入输出都是JSON格式。
工作方式如下:
- 准备JSON对象,描述你想要做什么(创建主机,获取图像,更新监控项)
- 采用POST方式 http://zabbix.*.info/zabbix/api_jsonrpc.php发送此JSON对象. http://example.com/zabbix/是Zabbix前端地址。api_jsonrpc.php是调用API的PHP脚本。可在安装可视化前端的目录下找到。
- 获取json响应格式
请求方法必须是POST方法,HTTP Header Content-Type 必须为【application/jsonrequest,application/json-rpc,application/json】其中之一
基本请求格式
JSON 请求如下:
1 2 3 4 5 6 7 8 9 10
| { "jsonrpc": "2.0", "method": "method.name", "params": { "param_1_name": "param_1_value", "param_2_name": "param_2_value" }, "id": 1, "auth": "159121b60d19a9b4b55d49e30cf12b81", }
|
- json rpc协议版本
- 具体执行的操作 如:host.create item.update
- 传递json对象来作为参数,如创建监控项 ,name 和key是必须的。
- id 1 绑定json请求和响应
- auth 认证令牌
API 使用
1 登录
1 2
| curl -i -X POST -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"user.login","params":{"user":"***","password":"***"},"auth":null,"id":0}' http://zabbix.***.info/api_jsonrpc.php
|
2 获取主机
1
| curl -i -X POST -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"host.get","params":{"output":["hostid","name"],"filter":{"host":""}},"auth":"22ad296ae1ac36a07d16ea91d7af7227","id":1}' http://zabbix.***.info/api_jsonrpc.php
|
3 获取监控主机的hostids
1 2
| curl -i -X POST -H 'Content-Type: application/json' -d '{"jsonrpc": "2.0","method":"host.get","params":{"output":["hostid"],"filter": {"host":"192.168.11.1"}},"auth": "22ad296ae1ac36a07d16ea91d7af7227","id": 0}' http: #"hostid":"10243"
|
(3)获得监控项itemids
1 2 3
| curl -i -X POST -H 'Content-Type: application/json' -d '{"jsonrpc": "2.0","method":"item.get","params":{"output":"itemids","hostids":"10243","search":{"key_":"system.cpu.util [,idle,avg1]"}},"auth": "a826fca79a0795ccc1224dc76329972f","id": 0}' http: #“item”:"24526"
|
(4)获取监控项”system.cpu.util[,idle,avg1] “在2014.2.19 14:00~14:20的值
1
| curl -i -X POST -H 'Content-Type: application/json' -d '{"jsonrpc": "2.0","method":"history.get","params":{"history":0,"itemids":["24526"],"time_from":"1392789600","time_till":"1392790200","output":"extend"},"auth": "a826fca79a0795ccc1224dc76329972f","id": 0}' http:
|
参考地址
https://www.zabbix.com/documentation/2.4/manual/api