Zabbix进阶12--如何使用ZabbixAPI

一旦您设置了前端,就可以使用远程 HTTP 请求来调用 API。为此,您需要发送 HTTP POST 请求到前端目录中的 api_jsonrpc.php 文件。例如,如果您的 Zabbix 前端安装在 https://example.com/zabbix 下,调用 apiinfo.version 方法的 HTTP 请求可能看起来像这样: :::

1
2
3
4
curl --request POST \
--url 'https://example.com/zabbix/api_jsonrpc.php' \
--header 'Content-Type: application/json-rpc' \
--data '{"jsonrpc":"2.0","method":"apiinfo.version","params":{},"id":1}'

请求必须将 Content-Type 头部设置为以下值之一:application/json-rpc、application/json 或 application/jsonrequest。

获取token

有两种方式来获取token,一种是通过用户名密码登陆,另一种是直接创建一个api

使用账号密码获取token

通过接口调用的方式来获取

1
2
3
4
curl --request POST \
--url 'https://example.com/zabbix/api_jsonrpc.php' \
--header 'Content-Type: application/json-rpc' \
--data '{"jsonrpc":"2.0","method":"user.login","params":{"username":"Admin","password":"zabbix"},"id":1}'

直接创建

在Zabbix console的左下角有一个User settings, 选第二个API tokens

然后在右上角点击 Create API token可以直接创建token,还能设置token的有效期

如何通过token调用API

其实很简单,只要在请求API的时候,加一个header

1
2
3
4
5
# 假定token的内容是12345,那么请求个格式就是这样

curl --request POST \
--url 'https://example.com/zabbix/api_jsonrpc.php' \
--header 'Authorization: Bearer 12345'

即可返回你所需要的信息啦