1. 程式人生 > >Zabbix通過API管理監控主機

Zabbix通過API管理監控主機

一、Zabbix API簡介

Zabbix API在1.8版本中開始引進並且已經被廣泛應用。
Zabbix API 中介軟體使得架構更加模組化也避免直接對資料庫進行操作。允許通過JSON RPC協議來建立、更新和獲取Zabbix物件並且做任何操作。
Zabbix API提供兩項主要功能:

  • 遠端管理Zabbix配置
  • 遠端檢索配置和歷史資料

二、具體部署

注意:停用自動發現、自動註冊

在這裡插入圖片描述

1、獲得身份驗證令牌(user.login方法)

在可以訪問Zabbix內部的任何資料之前,需要登入並獲得身份驗證令牌。這可以使用user.login方法來完成。假想以標準ZabBixAdmin使用者登入。那麼JSON請求將是這樣的:

[[email protected] ~]# vim zabbix-api
curl  -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "Admin",               ##zabbix監控系統的使用者名稱、密碼
        "password": "zabbix"
    },
    "id": 1,
    "auth": null
}' http://172.25.51.11/zabbix/api_jsonrpc.php | python -m json.tool
[
[email protected]
~]# chmod +x zabbix-api
  • 執行指令碼,獲取令牌
    在這裡插入圖片描述

2、刪除被監控主機(host.delete方法)

[[email protected] ~]# vim zabbix-api
curl  -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.delete",
    "params": [
        "10256"     ##zabbix agent主機的id(被監控主機的id)
    ],
    "id": 1,
    "auth": "900b8e1ed292e48c82296626c2e01fb8"
}' http://172.25.51.11/zabbix/api_jsonrpc.php | python -m json.tool
  • 執行指令碼,刪除被監控主機
    在這裡插入圖片描述
  • 檢視被監控主機的id
    在這裡插入圖片描述
  • 被監控主機已被刪除
    在這裡插入圖片描述

3、獲取監控主機的資訊(host.get方法)

現在,我們有一個有效的使用者認證令牌,可以用來訪問Zabbix中的資料。例如,讓我們使用host.get方法檢索所有配置主機的ID、主機名和介面:

[[email protected] ~]# vim zabbix-api
curl  -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output":["host"]
    },
    "id": 1,
    "auth": "900b8e1ed292e48c82296626c2e01fb8"
}' http://172.25.51.11/zabbix/api_jsonrpc.php | python -m json.tool
  • 執行指令碼,獲取監控主機資訊
    在這裡插入圖片描述

4、建立新的被監控主機(host.creat方法)

curl  -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.create",
    "params": {
        "host": "server12",                 ##被監控主機的主機名
        "interfaces": [
          {
                "type": 1,
                "main": 1,
                "useip": 1,
                "ip": "172.25.51.12",       ##被監控主機的IP
                "dns": "",
                "port": "10050"
            }
        ],
        "groups": [
            {
                "groupid": "4"              ##指定的groupid(Linux Server)
            }
         ],
        "templates": [
            {
                "templateid": "10001"       ##指定的templateid(Template OS Linux)
            }
        ],
        "inventory_mode": 0,
        "inventory": {
            "macaddress_a": "01234",
            "macaddress_b": "56768"
        }
},
    "id": 1,
    "auth": "900b8e1ed292e48c82296626c2e01fb8"
}' http://172.25.51.11/zabbix/api_jsonrpc.php | python -m json.tool
  • 執行指令碼,建立新的被監控主機
    在這裡插入圖片描述
  • 成功建立新的被監控主機
    在這裡插入圖片描述
  • 檢視groupid,主機—>主機群組—>zabbix servers
    在這裡插入圖片描述