自学Zabbix14.1 二次开发API
自学Zabbix14.1 二次开发API
Zabbix API我们可以做很多,自己开发web界面、开发手机端zabbix、获取zabbix指定数据、创建zabbix监控项等等。
1. zabbix API开发库
zabbix API请求和响应都是json,并且还提供了各种语法的lib库,http://zabbix.org/wiki/Docs/api/libraries,包含php、c#、Python、Perl、go等等语言,简单看了下phpzabbixapi,使用非常方便。
2. 请求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
之一。
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":{}}
3 . zabbix API登陆
获取auth token(登陆)
在操作zabbix之前,我们必须先登陆zabbix,得到token,以后的操作带着这个token即可,要不然肯定没权限。
请求的json如下:
{ "jsonrpc": "2.0", "method": "user.login", "params": { "user": "Admin", "password": "zabbix" }, "id": 1, "auth": null }
属性说明:
- jsonrps - JSON-RPC版本,基本上用2.0就行了;
- method - 调用的API方法,方法列表请上官网;
- params - 需要传递的参数,这边是user和password;
- id - 请求标志;
- auth - 用户token,这边使用null,因为还没通过验证
验证成功,会返回如下json数据
{ "jsonrpc": "2.0", "result": "0424bd59b807674191e7d77572075f33", "id": 1 }
result便是我们要德token数据,id对应请求的id。
4. zabbix api检索主机
通过验证之后,我们带着token使用host.get获取主机列表,请求的json如下:
{ "jsonrpc": "2.0", "method": "host.get", "params": { "output": [ "hostid", "host" ], "selectInterfaces": [ "interfaceid", "ip" ] }, "id": 2, "auth": "0424bd59b807674191e7d77572075f33" }
获取到如下数据:
{ "jsonrpc": "2.0", "result": [ { "hostid": "10084", "host": "Zabbix server", "interfaces": [ { "interfaceid": "1", "ip": "127.0.0.1" } ] } ], "id": 2 }
请使用你的程序处理一下即可。
作者:CARLOS_CHIANG
出处:http://www.cnblogs.com/yaoyaojcy/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
posted on 2018-01-03 15:05 CARLOS_KONG 阅读(939) 评论(0) 编辑 收藏 举报