「Zabbix」- Web API @20210402

当有大批量数据需要导入 Zabbix 时,或者需要管理 Zabbix 服务时,可以通过 Zabbix 的 WebAPI 进行进行批量操作,而不是手动添加。

通过接口操作 Zabbix 的基本流程

Zabbix Documentation 4.4 / 19. API

第一步、测试接口是否可用(可选)

该步骤是可选的,目的是测试接口是否可用:

# curl -s --header 'Content-Type: application/json-rpc' http://zabbix.example.com/api_jsonrpc.php | jq
{
  "jsonrpc": "2.0",
  "error": {
    "code": -32600,
    "message": "Invalid Request.",
    "data": "The received JSON is not a valid JSON-RPC Request."
  },
  "id": null
}

第二步、用户登录,以获取凭证信息

如下为请求信息:

POST http://company.com/zabbix/api_jsonrpc.php HTTP/1.1
Content-Type: application/json-rpc

{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "Admin",
        "password": "zabbix"
    },
    "id": 1,
    "auth": null
}

响应信息如下:

{
    "jsonrpc": "2.0",
    "result": "0424bd59b807674191e7d77572075f33",
    "id": 1
}

第三步、使用凭证信息请求数据接口

这里我们使用主机接口作为示例,获取所有主机信息

如下为请求信息:

{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": [
            "hostid",
            "host"
        ],
        "selectInterfaces": [
            "interfaceid",
            "ip"
        ]
    },
    "id": 2,
    "auth": "0424bd59b807674191e7d77572075f33"
}

响应信息如下:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "hostid": "10084",
            "host": "Zabbix server",
            "interfaces": [
                {
                    "interfaceid": "1",
                    "ip": "127.0.0.1"
                }
            ]
        }
    ],
    "id": 2
}

第四步、阅读官方文档,获取其他数据

阅读官方 Zabbix Documentation 4.4 / Method reference 以获取其他数据。

相关链接

批量导入主机

通过zabbix自带api进行主机的批量添加操作

相关文章

「Zabbix」- Number of CPUs [no data](未解决)
「Zabbix 3.2」- 使用源码安装
「Zabbix」- 中文字体“乱码”(无中文字体)
「Zabbix」- 基本概念
「Zabbix」- Debain 8.2 and Zabbix 4.0
「Zabbix」- please increase CacheSize configuration parameter
「Zabbix」- 安装(CentOS)

参考文献

Zabbix Documentation 4.4 / 19. API


posted @ 2021-04-02 11:50  研究林纳斯写的  阅读(119)  评论(0编辑  收藏  举报