官方介绍
https://www.zabbix.com/documentation/4.0/zh/manual/api
API(Application Programming Interface,应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。
目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。
API 理解
例如:我写一个脚本,里面很多命令,但是使用者只需要根据中文提示输入简单且容易理解的字符就可以执行脚本中的命令。使用脚本的人并不需要具备编写脚本的能力。
后台的程序接口、登录的接口、访问的接口
可以在命令行上进行创建主机、删除主机、创建监控项等等
API 使用
获取身份令牌与查看主机信息
[root@db01 ~]
> "jsonrpc": "2.0",
> "method": "user.login",
> "params": {
> "user": "Admin",
> "password": "zabbix"
> },
> "id": 1,
> "auth": null
> }' http://10.0.0.71/zabbix/api_jsonrpc.php
{"jsonrpc":"2.0","result":"f97c82b1caf8d69dd35e144ad68ed768","id":1}
#介绍
jsonrpc - API使用的JSON-RPC协议的版本; Zabbix API实现的JSON-RPC版本是2.0;
method - 被调用的API方法名;
params - 将被传递给API方法的参数;
"user": "Admin",
"password": "zabbix" #zabbix 页面登陆的超级管理员用户和密码
id - 请求的任意标识符;
auth -用户认证令牌; 因为我们还没有一个,它的设置null。
jsonrpc - JSON-RPC协议的版本;
result - 方法返回的数据;
id - 相应请求的标识符。
#利用得到的身份令牌获取zabbix页面的信息
检索主机
现在有一个有效的用户身份验证令牌 f97c82b1caf8d69dd35e144ad68ed768 ,可以用来访问Zabbix中的数据。
例如,让我们使用 host.get 方法检索所有已配置主机的ID,主机名和接口
[root@db01 ~]# curl -s -X POST -H 'Content-Type: application/json' -d '{
> "jsonrpc": "2.0",
> "method": "host.get",
> "params": {
> "output": [
> "hostid",
> "host"
> ],
> "selectInterfaces": [
> "interfaceid",
> "ip"
> ]
> },
> "id": 2,
> "auth": "f97c82b1caf8d69dd35e144ad68ed768"
> }' http://10.0.0.71/zabbix/api_jsonrpc.php
{"jsonrpc":"2.0","result":[{"hostid":"10084","host":"Zabbix server","interfaces":[{"interfaceid":"1","ip":"127.0.0.1"}]}],"id":2}
添加主机
信息来源 groupid 主机群组的值 15

信息来源 templateid 模板的值 10283

[root@db01 ~]
> "jsonrpc": "2.0",
> "method": "host.create",
> "params": {
> "host": "web01",
> "interfaces": [
> {
> "type": 1,
> "main": 1,
> "useip": 1,
> "ip": "172.16.1.7",
> "dns": "",
> "port": "10050"
> }
> ],
> "groups": [
> {
> "groupid": "15"
> }
> ],
> "templates": [
> {
> "templateid": "10283"
> }
],
> "inventory_mode": 0,
> "inventory": {
> "macaddress_a": "01234",
> "macaddress_b": "56768"
> }
> },
> "auth": "d4526e54168d05e8c191ed50fc6bb7bb",
> "id": 1
> }' http://10.0.0.71/zabbix/api_jsonrpc.php
{"jsonrpc":"2.0","result":{"hostids":["10316"]},"id":1}

删除主机
[root@db01 ~]
> "jsonrpc": "2.0",
> "method": "host.delete",
> "params": [
> "10316",
> "10315"
> ],
> "auth": "d4526e54168d05e8c191ed50fc6bb7bb",
> "id": 1
> }' http://10.0.0.71/zabbix/api_jsonrpc.php
{"jsonrpc":"2.0","result":{"hostids":["10316"]},"id":1}