通过Zabbix的api_jsonrpc.php提供的接口服务进行二次开发,是个非常不错的选择,比如开发移动端页面、获取指定数据等,接口文件位置默认在http://{host_ip}/zabbix/api_jsonrpc.php。
参数说明
参数 | 说明 |
jsonrps | JSON-RPC版本 |
method | 调用的API方法 |
params | 需要传递的参数 |
id | 请求标志 |
auth | 用户token,登录前为null |
更多方法请访问官网,本文举例几个常见的调用实例。
常用实例
获取API版本
curl -X POST -H "Content-Type":application/json-rpc --data '{"jsonrpc":"2.0", "method":"apiinfo.version", "id":1, "auth":null, "params":{}}' http://10.10.10.201/api_jsonrpc.php
建议写成脚本并通过python的json工具对结果格式化,如zabbix-api-info.sh:
curl -X POST -H "Content-Type":application/json-rpc --data ' { "jsonrpc":"2.0", "method":"apiinfo.version", "id":1, "auth":null, "params":{} }' http://10.10.10.201/zabbix/api_jsonrpc.php | python -m json.tool
获取token
在操作zabbix之前,先获取token,在后续的操作中必须包含token,否则没有权限,获取token的请求方法如下:
curl -s -X POST -H "Content-Type":application/json-rpc -d ' { "jsonrpc": "2.0", "method": "user.login", "params": { "user": "user", "password": "password" }, "id": 1, "auth": null }' http://10.10.10.201/zabbix/api_jsonrpc.php | python -m json.tool
如果验证成功,将返回以下数据:
{ "id": 1, "jsonrpc": "2.0", "result": "c8d88f5ab9ee0744dcdd43efe2ef7f6b" }
创建主机
curl -s -X POST -H "Content-Type":application/json-rpc -d ' { "jsonrpc": "2.0", "method": "host.create", "params": { "host": "HostName", "interfaces": [ { "type": 1, "main": 1, "useip": 1, "ip": "10.10.10.201", "dns": "","" "port": "10050" } ], "groups": [ { "groupid": "8" } ], "templates": [ { "templateid": "10008" } ] }, "auth": "c8d88f5ab9ee0744dcdd43efe2ef7f6b", "id": 1 }' http://10.10.10.201/zabbix/api_jsonrpc.php | python -m json.tool
检索主机
curl -s -X POST -H "Content-Type":application/json-rpc -d ' { "jsonrpc": "2.0", "method": "host.get", "params": { "output": [ "hostid", "host" ], "selectInterfaces": [ "interfaceid", "ip" ] }, "id": 2, "auth": "c8d88f5ab9ee0744dcdd43efe2ef7f6b" }' http://10.10.10.201/zabbix/api_jsonrpc.php | python -m json.tool
删除主机
curl -s -X POST -H "Content-Type":application/json-rpc -d ' { "jsonrpc": "2.0", "method": "host.delete", "params": [ "10265" #通过检索主机获取hostid ], "id": 3, "auth": "c8d88f5ab9ee0744dcdd43efe2ef7f6b" }' http://10.10.10.201/zabbix/api_jsonrpc.php | python -m json.tool
原创文章禁止转载:技术学堂 » Zabbix API二次开发之jsonrpc调用基本方法及实例