# Zabbix如何自定義監控項
## 一、自定義監控項概述
Zabbix作為企業級分布式監控系統,其核心功能之一是通過監控項(Items)采集各類指標數據。當內置監控模板無法滿足特定需求時,自定義監控項就成為管理員必須掌握的技能。本文將全面介紹Zabbix自定義監控項的實現方法、配置流程及最佳實踐。
### 1.1 自定義監控項的應用場景
- 監控業務特有指標(如訂單處理量)
- 采集非標準服務/設備的數據
- 實現應用性能深度監控
- 滿足合規性監控需求
### 1.2 技術實現原理
Zabbix通過以下方式采集自定義數據:
- **Agent采集**:執行本地腳本/命令
- **SNMP**:讀取設備OID信息
- **JMX**:監控Java應用
- **HTTP/API**:調用RESTful接口
- **IPMI**:硬件級監控
## 二、Agent方式自定義監控項
### 2.1 UserParameter配置
在Zabbix Agent端配置`zabbix_agentd.conf`:
```ini
# 格式:UserParameter=<key>,<command>
UserParameter=mysql.connections, mysqladmin -uroot status | awk '{print $4}'
UserParameter=custom.discovery[*], /etc/zabbix/scripts/discovery_$1.sh
/etc/zabbix/scripts/
chmod +x
并設置zabbix
用戶可執行示例腳本(disk_discovery.sh):
#!/bin/bash
disks=$(lsblk -ln | grep disk | awk '{print $1}')
echo -n '{"data":['
for disk in $disks; do
echo -n "{\"{#DISKNAME}\":\"$disk\"},"
done | sed 's/,$//'
echo ']}'
模式 | 數據傳輸方向 | 適用場景 |
---|---|---|
被動模式 | Server → Agent | 默認模式,實時性高 |
主動模式 | Agent → Server | 大規模分布式環境 |
snmpwalk -v 2c -c public 192.168.1.1 .1.3.6.1.2.1.1.5
Type: SNMP agent
Key: sysName.0
SNMP OID: 1.3.6.1.2.1.1.5.0
SNMP community: ${SNMP_COMMUNITY}
啟動參數添加JMX支持:
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false
JavaGateway=192.168.1.100
StartJavaPollers=5
Type: HTTP agent
URL: http://example.com/api/health
Request type: GET
Timeout: 30s
Required status codes: 200
使用預處理(Preprocessing):
JSONPath: $.data.connections
{
"data": [
{
"{#FSNAME}": "/",
"{#FSTYPE}": "ext4"
},
{
"{#FSNAME}": "/data",
"{#FSTYPE}": "xfs"
}
]
}
Key: vfs.fs.size[{#FSNAME},free]
Update interval: 30s
Flexible intervals:
- 00:00-06:00 5m
- */30 09:00-18:00 1m
創建映射表:
0 ? 正常
1 ? 警告
2 ? 嚴重
Steps:
1. Regular expression: ^Total: (\d+)$
2. Custom multiplier: 1024
3. Delta (speed per second)
su - zabbix -s /bin/bash -c "/etc/zabbix/scripts/cpu_temp.sh"
tail -f /var/log/zabbix/zabbix_agentd.log
journalctl -u zabbix-agent -f
zabbix_get -s 127.0.0.1 -k "system.cpu.load[all,avg1]"
通過靈活運用Zabbix自定義監控項功能,企業可以構建完全貼合業務需求的監控體系。建議從簡單監控項開始,逐步擴展到自動發現和復雜預處理,同時注意建立完善的監控項命名規范和文檔記錄。當標準方法無法滿足時,可考慮開發自定義模塊或通過Zabbix API進行擴展。 “`
該文檔包含完整的自定義監控項實現方案,涵蓋: 1. 多種數據采集方式(Agent/SNMP/JMX/HTTP) 2. 詳細配置示例和代碼片段 3. 運維調試技巧 4. 性能與安全最佳實踐 可根據實際需求調整具體參數和腳本內容。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。