zabbix 官網api 4.0, 請選擇你自己的zabbix 版本
通過對zabbix 伺服器傳送 http 請求,可以完成配置,尤其是大量和需要自動化的時候
建立大量主機還有一種方式就是通過xml檔案,需要事先將檔案匯出(export),修改後將檔案匯入(import)
本文主題通過api 為 zabbix 新增主機
,使用語言為 python
zabbix api 文件
zabbix 使用json 格式的檔案進行傳輸,理論上支援多種語言進行操作,本文使用python進行操作
api 支援四種操作create
,get
,delete
,update
,分別對應建立,獲取,刪除,更改
api 操作都需要先執行登陸操作獲取token,而後攜帶token進行訪問
下面是登陸獲取token 的操作
def login_zabbix():
'''retrieve the token, authentication
:return:
'''login_data =
}resp_login = requests.post(url=url, json=login_data)
auth = resp_login.json().get("result")
return auth
下表為主要引數解釋,url 通常為http://ip/zabbix/api_jsonrpc.php
, 填寫自己的ip位址,埠為 80,預設不填寫 引數
解釋型別
備註jsonrpc
api的版本
string
為2.0
method
操作方法
string
檢視相應文件
id預設為 1
int官網上說是識別符號,填 1 就行了
auth
登陸的token
str執行登陸操作可不填寫
params
引數項dict
這一步主要為了建立主機時做準備,因為主機的很多配置資訊在zabbix 中都是以數字代號的形式存在的
為了獲取相對應的代號和配置名稱之前的關係,需要你手動在zabbix 中配置一台主機
而後,獲取這一台模板主機的資訊,從而進行配置
下面是進行獲取操作,主要獲取配置資訊是 template 和 group
def get_hosts():
"""獲取配置資訊
:return:
"""data =
}auth = login_zabbix()
data.update()
resp = requests.post(url=url, json=data)
# 美化列印
print(json.dumps(resp.json().get("result"), indent=4, separators=(",", ":")))
result = resp.json().get("result")
return result
獲取的資訊部分
"groups":[
],"parenttemplates":[
]
主機資訊一覽表
主機的資訊有很多,主要介紹一些關鍵的引數 引數
解釋型別
備註host
主機名str
唯一標識該主機的字段,不可重複
name
可見主機名(visible name)
str在監控中顯示的可見名稱
inte***ces
介面配置項
list(陣列)
獲取遠端資料的方式和具體ip,port
groups
主機組配置項
list
用來區分主機的性質
templates
監控項配置(模板)
list
模板就是多個監控項的集合
獲取到引數後,接下來就是進行建立,method 為host.create
下面是具體**
def create_hosts():
data =
],"groups": [
],"templates": [
],},
"id": 1,
"auth": "199d2e96ccc8bc7a0d5c8d6065e1a91f",
"jsonrpc": "2.0"
}auth = login_zabbix()
data.update()
resp = requests.post(url=url, json=data)
print(resp.json())
return resp.json().get("result")
inte***ces 中的 type 是介面型別
型別id含義1
agent **
2snmp
3ipmi
4jmx
結果返回
, 'id': 1}
no permissions to referred object or it does not exist!
incorrect arguments passed to function.
no inte***ces for host "my linux s1erver
host "my linux s1erver" cannot be without host group.
最後奉上** github
zabbix新增主機流程
1新增host 以及新增host group 2鏈結到組的item模板 3看需求disable 不需要的item項 4檢視latest date 5 trigger看需求,關掉不需要的 6新增user以及郵件 給supper admin許可權,否則無法收到郵件 7配置action,盡量clone a...
zabbix新增監控主機
zabbix新增監控主機 安裝rpm uvh yum clean all install zabbix agent 安裝zabbix監控元件 yum install zabbix agent配置zabbix agentvim etc zabbix zabbix agentd.conf hostnam...
zabbix 通過API部署主機
id 1 python3 m json.tool 要想通過api訪問資料,需要登入,獲取到token s靜默模式 x指定方法 d指定需要上傳的內容 把返回的資料通過管道傳遞給python,python指定json模組進行序列化 此命令的作用是從zabbix server上獲取到token 此為返回的...