【免费下载链接】community-templates
Zabbix Community Templates repository
本文围绕 Zabbix 官方社区模板仓库中的
Rittal_PDU 1Phase EN模板展开,面向需要在数据中心机柜内监控 Rittal PDU 7955 系列智能配电单元的运维工程师。通过本文,你将掌握该模板如何基于 SNMP 采集配电单元的电压、电流、功率、能耗、温度、湿度、漏水与门禁等关键指标,理解其 15 条 LLD 自动发现规则、36 个采集项与 46 条告警触发器的设计逻辑,并能够将模板导入自己的 Zabbix 环境完成部署与调优。
模板定位:面向机柜基础设施的 IT 监控
Rittal_PDU 1Phase EN模板由作者 RPW 提交,定位为IT Infrastructure Monitoring(IT 基础设施监控)。其适用对象是Rittal PDU 7955 系列智能配电单元,并且同时覆盖两个硬件形态:
- 1 相(1-phase,固件/型号 4.4):单相输入配电单元;
- 3 相(3-phase,型号 5.0):三相输入配电单元。
模板通过 SNMP 采集的传感器数据不仅包含电学量(输入、电流、功率、能耗),还包含机房环境量(温度、湿度、漏水检测)以及机柜物理状态(门禁 Access、气流 AirFlow、Climate 气候),因此它实际上是一个"电力 + 环境 + 安防"三位一体的机柜监控方案,非常适合机柜级容量管理与机房环境巡检场景。
模板本体定义在 Network_Appliances/template_rittal_pdu-7955/5.0/README.md,同目录下还提供了可直接导入的导出文件 template_rittal_pdu-7955.xml(Zabbix 5.0 格式)。仓库同时提供了 5.4 版本 YAML 与 6.0 版本 YAML 两种导出格式,三个版本的 README 内容一致,可据此选用适配自己 Zabbix 版本的导入文件。
模板结构:一个主模板 + 两个模块模板
该模板的依赖关系非常清晰:Rittal_PDU 1Phase EN主模板自身没有定义任何用户宏(README 中明确 "There are no macros links in this template"),而是通过Template links链接了两个社区标准模块模板:
| 链接的模板 | 作用 |
|---|---|
| Template Module ICMP Ping | 提供 ICMP 连通性、丢包率、响应时间监控与告警 |
| Template Module Generic SNMP | 提供 SNMP 基础可用性、系统信息(名称、描述、位置、联系人、Object ID、Uptime)与 SNMP trap 兜底采集 |
从 5.0 的 XML 导出文件 可以看到这两个模块模板被完整内嵌,导入主模板时会自动带入。其中:
- Template Module Generic SNMP定义了大量
SNMPv2-MIB基础项(如system.contact[sysContact.0]、system.descr[sysDescr.0]、system.name、system.uptime[sysUpTime.0]等),并定义了宏{$SNMP.TIMEOUT}(默认5m),用于判定 "No SNMP data collection"; - Template Module ICMP Ping定义
icmpping、icmppingloss、icmppingsec三个简单检查项,并定义了宏{$ICMP_LOSS_WARN}(默认20%)与{$ICMP_RESPONSE_TIME_WARN}(默认0.15s)。
也就是说,主模板负责 PDU 业务指标,两个模块模板负责"设备可达性"与"SNMP 健康度",告警之间还通过触发器依赖(dependency)做了降噪编排,例如 "No SNMP data collection" 依赖 "Unavailable by ICMP ping",避免网络故障时告警风暴。
15 条 LLD 发现规则:传感器与电表的自动发现
模板的数据采集核心是LLD(Low-Level Discovery,低层自动发现)。由于 PDU 的传感器数量(如温湿度探头数量、输入路数、电表数量)随硬件配置不同而变化,模板用 15 条发现规则动态感知实际接入的传感器。所有发现规则均为SNMP agent类型,更新周期统一为1h:
| 发现规则名称 | 关键 Key | 发现对象 |
|---|---|---|
| Discovery Analog | cmcIIIVarName.Analog | 模拟量传感器(如气流 AirFlow) |
| Discovery Unit Energy | cmcIIIVarName.Unit.Energy | 整机能耗(含 Custom/Runtime/Active) |
| Phase L1 Power | cmcIIIVarName.PhaseL1.Power | L1 相有功功率 |
| Energy Meter 2 | cmcIIIVarName.EnergyMeter2 | 2 号电度表 |
| Phase L1 Energy | cmcIIIVarName.PhaseL1.Energy | L1 相能耗 |
| Discovery Input 1 | cmcIIIVarName.Input1 | 1 号输入(干接点/数字输入) |
| Discovery Humidity | cmcIIIVarName.Humidity | 湿度传感器 |
| Discovery Leakage | cmcIIIVarName.Leakage | 漏水检测探头 |
| Discovery cmsIIIVarName Settings | cmsIIIVarNames.WalkSNMP | 通用参数遍历(Walk) |
| Discovery Unit Power | cmcIIIVarName.Unit.Power | 整机功率 |
| Discovery Climate | cmcIIIVarName.Climate | 气候(Climate)状态 |
| Discovery Access | cmcIIIVarName.Access | 门禁/机柜门状态 |
| Discovery Temperature | cmcIIIVarName.Temperature | 温度传感器 |
| Energy Meter 1 | cmcIIIVarName.EnergyMeter1 | 1 号电度表 |
| Discovery Input 2 | cmcIIIVarName.Input2 | 2 号输入 |
LLD 的 OID 组织方式
从命名规律可以推断,模板基于 CMC III 控制器的变量表体系组织 OID:
cmcIIIVarName.*是变量名索引表,Zabbix 通过它枚举出所有已接入的传感器实例;- 实际取值时再通过
cmcIIIVarValueInt.*(整型值)与cmcIIIVarValueStrg.*(字符串值)按{#SNMPINDEX}索引取数。
这种"先枚举、再按索引取值"的模式,正是 Zabbix LLD 的标准做法:发现规则产出{#SNMPINDEX}宏,后续的采集项原型与触发器原型通过该宏展开为具体传感器实例。仓库中同为 CMC III 体系的 Rittal PDU 7979 模板(Power_(UPS)/template_pdu_rittal_7979/7.4/README.md/template_pdu_rittal_7979/7.4/README.md))采用了相同的cmcIIIVarName.{#SNMPINDEX}发现思路,可作为对照参考。
采集项清单:36 个采集项的分类解读
除模块模板自带的系统项外,主模板直接采集 36 个业务项,全部为SNMP agent类型。按功能可划分为六大类:
1. 设备资产信息(更新周期 1h)
| 采集项 | Key | 说明 |
|---|---|---|
| Serial number | entPhysicalSerialNum | 物理实体序列号(来自 ENTITY-MIB 物理实体表) |
| Firmware | entPhysicalSoftwareRev | 固件软件版本 |
2. 整机功率与能耗(更新周期 2m)
| 采集项 | Key |
|---|---|
| Unit Energie Active kWh | Unit.Energy.Active.Value[{#SNMPINDEX}] |
| Unit Energie Custom kWh | Unit.Energy.Active.Custom.Value[{#SNMPINDEX}] |
| Unit Energie Runtime | Unit.Energy.Active.Runtime.Value[{#SNMPINDEX}] |
| Unit Power Active Status | Unit.Power.Active.Status[{#SNMPINDEX}] |
| Unit Power Active Value | Unit.Power.Active.Value[{#SNMPINDEX}] |
3. L1 相电学参数(电流/电压/功率/能耗)
| 采集项 | Key | 更新周期 |
|---|---|---|
| Phase L1 Current Status / Value | cmcIIIVarValueInt.PhaseL1.Current.* | 1m |
| Phase L1 Power Active Status / Value | cmcIIIVarValueInt.PhaseL1.Power.Active.* | 1m / 5m |
| Phase L1 Voltage Status / Value | cmcIIIVarValueInt.PhaseL1.Voltage.* | 1m |
| L1 Energy Active Value | cmcIIIVarValueInt.L1.Energy.Active.Value | 5m |
| L1 Energy Active Custom Value | cmcIIIVarValueInt.L1.Energy.Active.Custom.Value | 5m |
| L1 Energy Apparent Value | cmcIIIVarValueInt.L1.Energy.Apparent.Value | 5m |
注意:尽管模板名为 "1Phase",其 L1 相电学采集项同时兼容三相 PDU 的第一相(3-phase 5.0 型号),为监控三相设备留出了扩展空间。
4. 电度表(Energy Meter)
| 采集项 | Key | 更新周期 |
|---|---|---|
| Energy Meter 1 status / value | cmcIIIVarValueStrg.EnergyMeter1.* | 10m / 5m |
| Energy Meter 2 status / value | cmcIIIVarValueStrg.EnergyMeter2.* | 10m / 5m |
5. 环境与安防传感器
| 采集项 | Key | 更新周期 |
|---|---|---|
| Temperature Status / Value | cmcIIIVarValueInt.Temperature.*[{#SNMPINDEX}] | 1m |
| Humidity Status / Value | cmcIIIVarValueInt.Humidity.*[{#SNMPINDEX}] | 1m / 10m |
| Leakage Status | cmcIIIVarValueInt.Leakage.Status[{#SNMPINDEX}] | 1m |
| Climate Status | cmcIIIVarValueInt.Climate[{#SNMPINDEX}] | 1m |
| Door status | cmcIIIVarValueInt.Access.Status | 1m |
| Access DescName | cmcIIIVarValueStrg.Access.DescName | 1h |
| Analog DescName | cmcIIIVarValueStrg.Analog.DescName[{#SNMPINDEX}] | 1h |
| Analog Status - AirFlow | cmcIIIVarValueStrg.Analog.Status[{#SNMPINDEX}] | 1m |
6. 数字输入(Input 1 / Input 2)
| 采集项 | Key | 更新周期 |
|---|---|---|
| Input N.DescName | cmcIIIVarStrg.InputN.DescName[{#SNMPINDEX}] | 1h |
| Input N Status | cmcIIIVarStrg.InputN.Status[{#SNMPINDEX}] | 2m |
| Input N Value | cmcIIIVarStrg.InputN.Value[{#SNMPINDEX}] | 1m |
此外,Discovery cmsIIIVarName Settings规则还会生成一个通用的Walk-SNMP 采集项(Key 为Walk-SNMP[{#SNMPVALUE} ({#SNMPINDEX})],更新 1m),用于对设备返回的配置/状态字符串做全文巡检。
更新周期设计小结
模板对更新周期做了差异化设计:快速变化且与告警强相关的量(温度、湿度状态、门禁、气流、L1 电学参数)采用1m高频轮询;累计型能耗(kWh)与状态型量(电度表 status)采用5m~10m;纯资产信息(序列号、固件、DescName 描述名)采用1h。这种"高频告警量 + 低频累计量"的组合能有效控制 SNMP 轮询开销。
触发器体系:46 条告警的阈值逻辑解读
模板定义了 46 条触发器,其中 23 条为普通触发器,23 条为对应 LLD 触发器原型(名称带(LLD)后缀,作用于发现出的每个传感器实例),优先级覆盖 warning / average / high / disaster 四级。
1. 门禁与气流告警
| 触发器 | 表达式 | 优先级 |
|---|---|---|
| Open door warning | cmcIIIVarValueInt.Access.Status.last()<>13 | warning |
| AirFlow Status alarm | cmcIIIVarValueStrg.Analog.Status[{#SNMPINDEX}].last()<>4 | high |
从表达式可以推断:门状态值 13 表示"门已关闭",偏离即告警;Analog 气流状态值 4 表示正常,非 4 即告警。
2. 气候与温度分级告警
| 触发器 | 阈值逻辑 | 优先级 |
|---|---|---|
| Climate alarm {ITEM.LASTVALUE} | 气候值 >= 35 | high |
| Climate alarm HIGH {ITEM.LASTVALUE} | 气候值 >= 40 | disaster |
| Temparture status alarm | 温度状态<>4 | high |
| Temperature Above Normal | 25 <= 温度 < 26 | average |
| Temperature Very Above Normal | 温度 >= 26 | high |
| Temperature Below Normal | 13 < 温度 <= 15 | average |
| Temperature Far Below Normal | 温度 <= 13 | high |
温度采用"过温/低温 + 越界程度"分级:25–26 ℃ 为 average 提示,≥26 ℃ 升级为 high;13–15 ℃ 为低温提示,≤13 ℃ 升级为 high。所有阈值在 LLD 触发器原型中保持一致。
3. 湿度分级告警
| 触发器 | 阈值逻辑 | 优先级 |
|---|---|---|
| Alarm Humidity Status | 湿度状态<>4 | high |
| Humidity Above Normal | 75 < 湿度 < 80 | average |
| Humidity Very Above Normal | 湿度 >= 80 | high |
| Humidity Below Normal | 25 < 湿度 <= 30 | average |
| Humidity Very Below Normal | 湿度 <= 25 | high |
湿度以 25% / 75% 为正常区间边界,80% 与 25% 为严重阈值,与机房湿度标准(约 40%–60% 理想区)相比留有合理裕量。
4. L1 相电学参数告警
| 触发器 | 表达式 | 优先级 |
|---|---|---|
| Alarm Current Status Phase L1 | 电流状态<>10 | high |
| Alarm Power Status Phase L1 | 电流状态<>10(与上一条共用状态项) | high |
| Alarm Voltage Status Phase L1 | 电压状态<>4 | high |
注意"Alarm Power Status Phase L1"的表达式实际引用的是PhaseL1.Current.Status项,从源码结构看这是模板作者的一个笔误(Power 状态应引用PhaseL1.Power.Active.Status),部署时若依赖该触发器需自行核对实际 OID 语义。另外从状态值推断:电流/功率状态 10 表示正常,电压状态 4 表示正常。
5. 输入与漏水告警
| 触发器 | 表达式 | 优先级 |
|---|---|---|
| Input 1/2 status alarm | 状态=4且值<>1 | high |
| Alarm Leakage Status | 漏水状态<>4 | disaster |
输入告警的语义为"输入状态报告异常(=4)且输入值非 1",即输入值 1 表示该输入正常(如插头在位/信号正常);漏水告警被直接定级为disaster(灾难),反映机房漏水的高危害性。
6. 整机状态与重启检测
| 触发器 | 表达式 | 优先级 |
|---|---|---|
| Alarm Unit Power Active Status | 整机功率状态<>4 | disaster |
| PDU has been restartet (uptime < 5m) | 运行时间<5m | average |
| {HOST.NAME} $1 | Walk-SNMP[...].str(OK)<>1 | disaster |
- 整机功率异常直接 disaster;
- 通过能耗运行时间项(
Unit.Energy.Active.Runtime.Value)检测 PDU5 分钟内发生过重启; {HOST.NAME} $1触发器对 Walk-SNMP 采集到的字符串做全文匹配,只要不包含 "OK" 即 disaster,相当于对设备所有可遍历配置参数的兜底健康检查。
7. 触发器优先级分布与 LLD 原型
整体来看,模板把漏水、整机功率、气候≥40、Walk-SNMP 非 OK归为 disaster;温度/湿度/气流/输入/相参数异常归为 high;温度湿度轻微越界归为 average;开门归为 warning。所有涉及{#SNMPINDEX}的触发器都同时提供了 LLD 版本(23 条),保证传感器实例被自动发现后告警规则即刻生效。
部署与使用指南
步骤 1:导入模板
在 Zabbix Web 前端进入配置(Configuration)→ 模板(Templates)→ 导入(Import),根据 Zabbix 版本选择对应文件:
- Zabbix 5.0:template_rittal_pdu-7955.xml;
- Zabbix 5.4:template_rittal_pdu-7955.yaml;
- Zabbix 6.0:template_rittal_pdu-7955.yaml。
导入后,Template Module Generic SNMP与Template Module ICMP Ping两个模块模板会一并写入。
步骤 2:创建主机并链接模板
- 创建主机:在 Zabbix 中为主机添加SNMP 接口,填写 PDU(CMC III 控制器)的 IP 地址与端口(默认 UDP/161);
- 配置 SNMP 参数:在主机 SNMP 接口上配置 community(团体名)与 SNMP 版本(模板基于 SNMPv2 体系,模块模板内的
snmp_oid均为符号 OID); - 链接模板:在主机模板栏链接
Rittal_PDU 1Phase EN,保存后 Zabbix 即开始 SNMP 轮询。
步骤 3:等待 LLD 生效
发现规则默认更新周期为 1h,首次导入后建议在发现规则 → 立即执行(Check now)手动触发一次,即可看到温度、湿度、输入、电度表等传感器实例被自动创建,对应 LLD 触发器原型同步展开。
步骤 4(可选):调优
- 告警阈值:温度 25/26 ℃、湿度 25/75/80%、气候 35/40 等阈值均可直接在触发器表达式中修改;
- 轮询频率:若传感器数量多、SNMP 压力大,可适当放宽 1m 高频项的更新周期;
- 门状态语义:
Access.Status<>13依赖设备端门传感器返回值,若实际设备返回语义不同需核对 CMC III 手册调整。
深入原理:从导出文件看模板实现细节
模块模板的内嵌宏与依赖链
5.0 XML 导出文件 完整保留了模块模板定义,可观察到以下实现细节:
{$SNMP.TIMEOUT}(默认 5m):用于zabbix[host,snmp,available]内部监控项判定 "No SNMP data collection";{$ICMP_LOSS_WARN}(20)与{$ICMP_RESPONSE_TIME_WARN}(0.15):用于 ICMP 丢包率与响应时间告警;- 触发器依赖编排:"No SNMP data collection" 依赖 "Unavailable by ICMP ping"、"High ICMP ping loss" 依赖 "Unavailable by ICMP ping",形成 ICMP → SNMP 的降噪链路;
snmptrap.fallback(SNMP_TRAP 类型):兜底收集未被其他 snmptrap 项匹配的 SNMP trap,日志时间格式为hh:mm:sszyyyy/MM/dd;- 系统信息项大多配置了
DISCARD_UNCHANGED_HEARTBEAT预处理(1h/1d),避免资产类信息重复入库。
CMC III 变量表与 OID 命名空间
综合模板中出现的 OID 符号可以还原 CMC III 控制器的数据模型:
cmcIIIUnit*:控制器单元级信息(序列号、固件、运行时间等),主模板通过 ENTITY-MIB 的entPhysicalSerialNum/entPhysicalSoftwareRev采集资产信息;cmcIIIVarName.*/cmcIIIVarValueInt.*/cmcIIIVarValueStrg.*:以变量名做索引、按{#SNMPINDEX}取值的传感器表,覆盖 Temperature / Humidity / Leakage / Climate / Access / Analog / Input / PhaseL1 全部分类;Unit.*/EnergyMeter*/L1.Energy*:整机与分相功率能耗专用分支。
作为交叉验证,仓库内同源的 Rittal PDU 7979 模板/template_pdu_rittal_7979/7.4/README.md) 在其 YAML 中同样大量使用cmcIIIVarName.{$RITTAL.PDU.DEVIDX}、cmcIIIVarValueInt.{$RITTAL.PDU.DEVIDX}.{#SNMPINDEX}形式的 OID,说明cmcIIIVarTable 系列 OID 是 Rittal CMC III 控制器家族的通用数据接口,本模板的发现规则完全可以迁移复用到同家族设备上。
使用注意事项
- 状态值语义来自触发器反推:文中所列"4=正常、10=正常、13=门关、1=输入正常"等语义均由触发器表达式推断,不同固件版本可能存在差异,建议先
snmpwalk实际设备核对; - 模板无自定义宏:主模板阈值全部硬编码在触发器表达式中,如需参数化可自行将 25/26 ℃、75/80% 等替换为
{$...}用户宏; - 1 相与 3 相兼容:模板以 L1 相为采集对象,三相设备的 L2/L3 相指标需要在该模板基础上扩展,或参考 7979 模板的分相 LLD 思路;
- 权限与只读:模板仅做 SNMP 轮询,不涉及对设备的写操作(Set),使用只读 community 即可满足需求。
小结
Rittal_PDU 1Phase EN是一个结构清晰、开箱即用的机柜级 PDU 监控模板:以 CMC III 的cmcIIIVarTable变量表为数据底座,用 15 条 LLD 规则自动适配不同传感器配置,用 36 个采集项覆盖"电力 + 环境 + 安防"三类指标,用 46 条触发器(含 LLD 原型)完成从 warning 到 disaster 的分级告警,再叠加 ICMP/SNMP 模块模板实现网络层降噪。对于希望快速落地数据中心机柜配电与环境监控的团队,该模板可直接导入使用,也可作为扩展三相监控、socket 级监控的起点。
【免费下载链接】community-templates
Zabbix Community Templates repository
相关推荐
Zabbix 监控 MikroTik PowerBox 路由器:基于 SNMP 模板的部署、宏调优与 LLD 深度解析
Zabbix 监控 MikroTik PowerBox 路由器:基于 SNMP 模板的部署、宏调优与 LLD 深度解析 本篇技术指南围绕当前仓库 templat
指标监控可观测性告警运维基于 SNMP 的 EVS XServer 监控:Zabbix 社区模板 "EVS by SNMP" 深度解析
基于 SNMP 的 EVS XServer 监控:Zabbix 社区模板 "EVS by SNMP" 深度解析 本篇文章围绕 Zabbix Community
使用 Zabbix 社区模板监控 F5 BIG-IP:Device BigIP F5 SNMP 模板的监控项、LLD 与触发器实战解析
使用 Zabbix 社区模板监控 F5 BIG IP:Device BigIP F5 SNMP 模板的监控项、LLD 与触发器实战解析 本指南以 communi
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考