Zabbix API 使用

用于调用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

你可能感兴趣的:(Zabbix API 使用)