用于调用Zabbix Api接入平台展示监控数据
作者 | 日期 | 版本 |
---|---|---|
吴毅文 | 2017.06.28 | V1.0.0 |
一:接口概述(用于调用Zabbix Api接入平台展示监控数据)
HOST: 1.1.1.1
PORT: 80
PROTOECOL: HTTP
ADDRESS: http://1.1.1.1/api_jsonrpc.php
WAY: POST
二:user.login方法获得认证密钥
作用之后拿取数据的参数
1:请求的方法参数
参数名称 | 值类型 | 说明 | 是否必须 |
---|---|---|---|
jsonrpc | str | 接口版本 | 是 |
method | str | 请求方法 | 是 |
params | json | 请求方法参数 | 是 |
user | str | zabbix账号 | 是 |
password | str | zabbix密码 | 是 |
auth | str | 认证的key | 是 |
id | int | 认证id | 是 |
2:请求的示例
curl -i -X POST -H 'Content-Type:application/json' -d '{"jsonrpc":"2.0","method":"user.login","params":{"user":"admin","password":"7ujm6yhn5tgb"},"auth":null,"id":0}' http://10.10.194.180/api_jsonrpc.php
3:response数据格式
{"jsonrpc":"2.0","result":"b895ce91ba84fe247e444817c6773cc3","id":0}
三:hostgroup.get方法获取所有主机组ID
1:请求的方法参数
参数名称 | 值类型 | 说明 | 是否必须 |
---|---|---|---|
jsonrpc | str | 接口版本 | 是 |
method | str | 请求方法 | 是 |
params | json | 请求方法参数 | 是 |
output | array | 输出格式 | 是 |
groupid | str | 主机组id | 是 |
name | str | 主机组名 | 是 |
auth | str | 认证的key | 是 |
id | int | 认证id | 是 |
2:请求的示例
curl -i -X POST -H 'Content-Type:application/json' -d '{"jsonrpc": "2.0","method":"hostgroup.get","params":{"output":["groupid","name"]},"auth":"73912443e87995a7b6b253f7146513fa","id": 0}' http://10.10.194.180/api_jsonrpc.php
3:response数据格式
{"jsonrpc":"2.0","result":[{"groupid":"14","name":"Aliyun Server"},{"groupid":"13","name":"Database Server"},{"groupid":"5","name":"Discovered hosts"},{"groupid":"10","name":"Elasticsearch servers"},{"groupid":"8","name":"Hadoop servers"},{"groupid":"7","name":"Hypervisors"},{"groupid":"9","name":"Kafka servers"},{"groupid":"2","name":"Linux servers"},{"groupid":"12","name":"Ops server"},{"groupid":"15","name":"SSDK group"},{"groupid":"1","name":"Templates"},{"groupid":"6","name":"Virtual machines"}],"id":0}
四:host.get方法获取单个主机组下所有的主机ID
1:请求的方法参数
参数名称 | 值类型 | 说明 | 是否必须 |
---|---|---|---|
jsonrpc | str | 接口版本 | 是 |
method | str | 请求方法 | 是 |
params | json | 请求方法参数 | 是 |
output | array | 输出格式 | 是 |
groupids | str/array | 主机组id | 是 |
auth | str | 认证的key | 是 |
id | int | 认证id | 是 |
2:请求的示例
curl -i -X POST -H'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"host.get","params":{"output":["hostid","name"],"groupids":"14"},"auth":"73912443e87995a7b6b253f7146513fa","id": 0}' http://1.1.1.1/api_jsonrpc.php
3:response数据格式
{"jsonrpc":"2.0","result":[{"hostid":"10110","name":"Zabbix server"},{"hostid":"10132","name":"10.10.87.122"},{"hostid":"10163","name":"10.10.24.233"},{"hostid":"10169","name":"10.10.198.53"},{"hostid":"10221","name":"HN1A-app-node1"},{"hostid":"10225","name":"HN1A-ops-server1"},{"hostid":"10226","name":"HN1A-app-node2"},{"hostid":"10227","name":"HN1A-app-node3"},{"hostid":"10228","name":"HN1A-ES-node1"},{"hostid":"10229","name":"HN1A-ES-node2"},{"hostid":"10230","name":"HN1A-ES-node3"}],"id":0}
五:itemsid.get方法获取单个主机下所有的监控项ID
1:请求的方法参数
参数名称 | 值类型 | 说明 | 是否必须 |
---|---|---|---|
jsonrpc | str | 接口版本 | 是 |
method | str | 请求方法 | 是 |
params | json | 请求方法参数 | 是 |
output | array | 输出格式 | 是 |
groupids | str/array | 主机组id | 是 |
auth | str | 认证的key | 是 |
id | int | 认证id | 是 |
2:请求的示例
curl -i -X POST -H 'Content-Type:application/json' -d '{"jsonrpc":"2.0","method":"item.get","params":{"output":"itemids","hostids":"10110"},"auth":"73912443e87995a7b6b253f7146513fa","id": 0}' http://1.1.1.1/api_jsonrpc.php
3:response数据格式
{"jsonrpc":"2.0","result":[{"itemid":"36141"},{"itemid":"32895"},{"itemid":"32894"},{"itemid":"35951"},{"itemid":"32893"},{"itemid":"32891"},{"itemid":"23933"},{"itemid":"23934"},{"itemid":"23935"},{"itemid":"36142"},{"itemid":"32902"},{"itemid":"32901"},{"itemid":"35952"},{"itemid":"32900"},{"itemid":"32898"},{"itemid":"36143"},{"itemid":"32909"},{"itemid":"32908"},{"itemid":"35953"},{"itemid":"32907"},{"itemid":"32905"},{"itemid":"36144"},{"itemid":"32916"},{"itemid":"32915"},{"itemid":"35954"},{"itemid":"32914"},{"itemid":"32912"},{"itemid":"36145"},{"itemid":"32923"},{"itemid":"32922"},{"itemid":"35955"},{"itemid":"32921"},{"itemid":"32919"},{"itemid":"36146"},{"itemid":"32930"}],"id":0}
六:history.get方法获取单个监控项的历史数据
1:请求的方法参数
参数名称 | 值类型 | 说明 | 是否必须 |
---|---|---|---|
jsonrpc | str | 接口版本 | 是 |
method | str | 请求方法 | 是 |
params | json | 请求方法参数 | 是 |
history | int | 所返回的历史对象类型. 0 - numeric float; 1 - character; 2 - log; 3 - numeric unsigned; 4 - text. Default: 3. | 是 |
itemids | str/array | 主机组id | 是 |
time_from | timestamp | 仅返回在给定时间之后或之后收到的值 | 否 |
itemids | timestamp | 仅返回在给定时间之前或之前收到的值 | 否 |
sortfield | str/array | 按照给定的属性对结果进行排序(可以是itemid或者clock) | 否 |
sortorder | str/array | ASC- 升序; DESC - 降序 | 否 |
limit | int | 限制返回采集最近几次数据(通常带上) | 否 |
countOutput | flag | 返回结果中的记录数,而不是实际的数据 | 否 |
auth | str | 认证的key | 是 |
id | int | 认证id | 是 |
2:请求的示例
curl -i -X POST -H 'Content-Type:application/json' -d '{"jsonrpc":"2.0","method":"history.get","params":{"history":3,"itemids":"35953","output":"extend","limit":10},"auth":"73912443e87995a7b6b253f7146513fa","id": 0}' http://1.1.1.1/api_jsonrpc.php
3:response数据格式
{"jsonrpc":"2.0","result":[{"itemid":"35953","clock":"1490942679","value":"0","ns":"0"},{"itemid":"35953","clock":"1490942979","value":"0","ns":"0"},{"itemid":"35953","clock":"1490943280","value":"0","ns":"0"},{"itemid":"35953","clock":"1490943580","value":"0","ns":"0"},{"itemid":"35953","clock":"1490943880","value":"0","ns":"0"},{"itemid":"35953","clock":"1490944180","value":"0","ns":"0"},{"itemid":"35953","clock":"1490944480","value":"0","ns":"0"},{"itemid":"35953","clock":"1490944781","value":"0","ns":"0"},{"itemid":"35953","clock":"1490945085","value":"0","ns":"0"},{"itemid":"35953","clock":"1490945385","value":"0","ns":"0"}],"id":0}
注:要获取最新数据limit为1即可
附:get方法的通用参数
参数名称 | 值类型 | 说明 |
---|---|---|
countOutput | flag | 返回结果中的记录数,而不是实际的数据 |
editable | boolean | 如果设置为true仅返回用户具有写入权限的对象,默认为false |
excludeSearch | flag | 返回与search参数中给出的标准不匹配的结果 |
filter | object | 仅返回与给定过滤器完全匹配的结果,接受一个数组,其中的键是属性名称,并且值是单个值或要匹配的值的数组 |
limit | int | 限制返回的记录数 |
output | query | 要返回的对象属性,默认值:extend |
preservekeys | flag | 在结果数组中使用ID作为键 |
search | object | 返回匹配给定通配符搜索的结果,接受一个数组,其中键是属性名,值是要搜索的字符串.如果没有额外的选项,这将执行LIKE “%…%”搜索,仅适用于string和text领域 |
searchByAny | boolean | 如果设置为true返回与filteror或search参数中给出的任何条件匹配的结果,而不是所有这些结果,默认false |
searchWildcardsEnabled | boolean | 如果设置为true使能“*”作为search参数中的通配符,默认值为false |
sortfield | str/array | 按照给定的属性对结果进行排序(可以是itemid或者clock) |
sortorder | str/array | ASC- 升序; DESC - 降序 |
startSearch | flag | 该search参数将比较领域的开始,也就是进行LIKE “…%”搜索来代替 |
参考官网:https://www.zabbix.com/documentation/3.0/manual/api