zabbix批量生成監控項教程
在zabbix使用過程中,可能會有大批量監控性能測試的場景,這時候可能需要模擬生成大批量的監控項用于測試,這里演示使用自動發現的方式進行創建。
配置自動發現
Low-Level Discovery 是 Zabbix 的一種自動發現機制,允許你自動檢測并添加多個具有相同結構的監控項,比如:服務器上的磁盤分區、網絡接口、數據庫中的表、自定義資源(如進程、日志文件等)。
LLD 的核心是返回一個特定格式的 JSON,例如:
{
"data": [
{ "{#DISKNAME}": "sda1" },
{ "{#DISKNAME}": "sda2" }
]
}
了解了以上原理后,首先我們編寫一個Python腳本,用于輸出符合LLD格式的JSON數據,舉例如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json
# 生成 A1 到 A1000 的磁盤名
disk_list = ["A{}".format(i) for i in range(1, 1001)]
# 構造符合 Zabbix LLD 的數據結構
lld_data = {
"data": [
{"{#DISKNAME}": disk} for disk in disk_list
]
}
# 輸出 JSON 格式
print(json.dumps(lld_data, indent=4, ensure_ascii=False))
將以上腳本放到zabbix外部檢查腳本目錄下后,創建一臺用于生成指標的主機

在此主機下,創建一個自動發現規則,類型選擇外部檢查,鍵值選擇我們剛才新建的腳本即可

在此發現規則下,創建一個監控項原型,類型選擇zabbix采集器,方便進行接收數據

創建好之后,即可手動執行此發現規則

執行后,可以看到生成了1000個監控項目

發送監控數據
以上步驟做好之后,還需要往監控項上報數據,這里通過zabbix_sender的方式進行。
以下為腳本舉例:
#!/bin/bash
for i in $(seq 1 1000); do
#echo "A[A$i]"
/itops/zabbix/bin/zabbix_sender -z 127.0.0.1 -s test -k "A[A$i]" -o '0.01'
執行此腳本后,可看到監控項已有數據。

至此,已簡單實現批量生成監控項目。后續也可根據實際需求,進行監控類型,信息類型的更改,用于測試更復雜的場景~

浙公網安備 33010602011771號