在運維工作中,zabbix自定義發(fā)現(xiàn)是怎么做的?
在運維工作中,Zabbix 的自定義發(fā)現(xiàn)功能(Low-Level Discovery, LLD)是一個非常強大的工具,可以自動發(fā)現(xiàn)和監(jiān)控系統(tǒng)中的資源,如文件系統(tǒng)、網(wǎng)絡接口、服務等。以下是詳細的步驟說明,幫助你實現(xiàn) Zabbix 的自定義發(fā)現(xiàn):
1. 創(chuàng)建自動發(fā)現(xiàn)規(guī)則
自動發(fā)現(xiàn)規(guī)則定義了如何發(fā)現(xiàn)特定的實體(如文件系統(tǒng)、網(wǎng)絡接口等),并為這些實體生成監(jiān)控項、觸發(fā)器和圖形。
- 步驟:
- 登錄到 Zabbix Web 界面。
- 導航到 配置 > 模板 > 發(fā)現(xiàn)。
- 點擊 創(chuàng)建發(fā)現(xiàn)規(guī)則。
- 填寫發(fā)現(xiàn)規(guī)則的名稱和鍵值。鍵值通常是內(nèi)置的發(fā)現(xiàn)鍵(如
net.if.discovery)或自定義腳本返回的鍵。 - 設置更新間隔,指定多久運行一次發(fā)現(xiàn)規(guī)則。
2. 編寫自定義腳本
如果需要自定義發(fā)現(xiàn)規(guī)則,需要編寫一個腳本,該腳本返回符合 Zabbix 規(guī)定格式的 JSON 數(shù)據(jù)。
-
示例腳本:
#!/usr/bin/env python3 import json data = [ {"{#FSNAME}": "root", "{#FSTYPE}": "ext4"}, {"{#FSNAME}": "boot", "{#FSTYPE}": "ext2"} ] print(json.dumps({"data": data})) -
腳本要求:
- 腳本必須返回一個 JSON 對象,其中包含一個
data鍵,其值是一個字典列表。 - 每個字典包含一個或多個宏(如
{#FSNAME})及其對應的值。
- 腳本必須返回一個 JSON 對象,其中包含一個
3. 配置 Zabbix Agent
在 Zabbix Agent 的配置文件中(通常是 /etc/zabbix/zabbix_agentd.conf),添加自定義監(jiān)控項。
-
示例配置:
UnsafeUserParameters=1 UserParameter=fs.discovery,/path/to/your/script.py -
說明:
UnsafeUserParameters=1允許使用自定義監(jiān)控項。UserParameter定義了自定義監(jiān)控項的鍵值和對應的腳本路徑。
4. 添加監(jiān)控項原型
在發(fā)現(xiàn)規(guī)則中,添加監(jiān)控項原型,這些原型將用于生成具體的監(jiān)控項。
- 步驟:
- 在發(fā)現(xiàn)規(guī)則頁面,點擊 添加監(jiān)控項原型。
- 填寫監(jiān)控項的名稱、鍵值等信息。鍵值可以包含發(fā)現(xiàn)規(guī)則中定義的宏,如
vfs.fs.size[{#FSNAME},pfree]。 - 設置監(jiān)控項的其他參數(shù),如更新間隔、歷史數(shù)據(jù)保留時間等。
5. 添加觸發(fā)器原型
同樣地,可以為發(fā)現(xiàn)的實體添加觸發(fā)器原型,這些觸發(fā)器原型將用于生成具體的觸發(fā)器。
- 步驟:
- 在發(fā)現(xiàn)規(guī)則頁面,點擊 添加觸發(fā)器原型。
- 填寫觸發(fā)器的名稱、表達式等信息。表達式可以使用發(fā)現(xiàn)規(guī)則中定義的宏,如
{vfs.fs.size[{#FSNAME},pfree].last()}<10。 - 設置觸發(fā)器的其他參數(shù),如優(yōu)先級、描述等。
6. 應用發(fā)現(xiàn)規(guī)則
將創(chuàng)建的發(fā)現(xiàn)規(guī)則應用到目標主機或模板上。
- 步驟:
- 導航到 配置 > 主機 或 配置 > 模板。
- 選擇目標主機或模板,點擊 監(jiān)控項 > 發(fā)現(xiàn)。
- 將創(chuàng)建的發(fā)現(xiàn)規(guī)則鏈接到目標主機或模板。
7. 測試和驗證
- 測試發(fā)現(xiàn)規(guī)則:在 Zabbix Web 界面中,手動執(zhí)行發(fā)現(xiàn)規(guī)則,查看是否能夠正確發(fā)現(xiàn)目標實體。
- 驗證監(jiān)控項和觸發(fā)器:檢查生成的監(jiān)控項和觸發(fā)器是否正常工作,是否能夠正確收集數(shù)據(jù)和觸發(fā)告警。
綜上所述,通過以上步驟,你可以實現(xiàn) Zabbix 的自定義發(fā)現(xiàn)功能,自動發(fā)現(xiàn)和監(jiān)控系統(tǒng)中的資源,提高運維效率和監(jiān)控的準確性。

浙公網(wǎng)安備 33010602011771號