zabbix 新增主機 API

2021-09-12 03:03:50 字數 2981 閱讀 3283

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 此為返回的...