Zabbix通過API管理監控主機
阿新 • • 發佈:2018-11-19
一、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