☰
基于 Zabbix 的 Rittal PDU 7955 智能配电单元监控模板全解析(SNMP + LLD)
2026/10/16 2:03:08 网站建设 项目流程

【免费下载链接】community-templates

Zabbix Community Templates repository

项目地址:https://gitcode.com/gh_mirrors/co/community-templates
点击查看免费下载

本文围绕 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 AnalogcmcIIIVarName.Analog模拟量传感器(如气流 AirFlow)
Discovery Unit EnergycmcIIIVarName.Unit.Energy整机能耗(含 Custom/Runtime/Active)
Phase L1 PowercmcIIIVarName.PhaseL1.PowerL1 相有功功率
Energy Meter 2cmcIIIVarName.EnergyMeter22 号电度表
Phase L1 EnergycmcIIIVarName.PhaseL1.EnergyL1 相能耗
Discovery Input 1cmcIIIVarName.Input11 号输入(干接点/数字输入)
Discovery HumiditycmcIIIVarName.Humidity湿度传感器
Discovery LeakagecmcIIIVarName.Leakage漏水检测探头
Discovery cmsIIIVarName SettingscmsIIIVarNames.WalkSNMP通用参数遍历(Walk)
Discovery Unit PowercmcIIIVarName.Unit.Power整机功率
Discovery ClimatecmcIIIVarName.Climate气候(Climate)状态
Discovery AccesscmcIIIVarName.Access门禁/机柜门状态
Discovery TemperaturecmcIIIVarName.Temperature温度传感器
Energy Meter 1cmcIIIVarName.EnergyMeter11 号电度表
Discovery Input 2cmcIIIVarName.Input22 号输入

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 numberentPhysicalSerialNum物理实体序列号(来自 ENTITY-MIB 物理实体表)
FirmwareentPhysicalSoftwareRev固件软件版本

2. 整机功率与能耗(更新周期 2m)

采集项Key
Unit Energie Active kWhUnit.Energy.Active.Value[{#SNMPINDEX}]
Unit Energie Custom kWhUnit.Energy.Active.Custom.Value[{#SNMPINDEX}]
Unit Energie RuntimeUnit.Energy.Active.Runtime.Value[{#SNMPINDEX}]
Unit Power Active StatusUnit.Power.Active.Status[{#SNMPINDEX}]
Unit Power Active ValueUnit.Power.Active.Value[{#SNMPINDEX}]

3. L1 相电学参数(电流/电压/功率/能耗)

采集项Key更新周期
Phase L1 Current Status / ValuecmcIIIVarValueInt.PhaseL1.Current.*1m
Phase L1 Power Active Status / ValuecmcIIIVarValueInt.PhaseL1.Power.Active.*1m / 5m
Phase L1 Voltage Status / ValuecmcIIIVarValueInt.PhaseL1.Voltage.*1m
L1 Energy Active ValuecmcIIIVarValueInt.L1.Energy.Active.Value5m
L1 Energy Active Custom ValuecmcIIIVarValueInt.L1.Energy.Active.Custom.Value5m
L1 Energy Apparent ValuecmcIIIVarValueInt.L1.Energy.Apparent.Value5m

注意:尽管模板名为 "1Phase",其 L1 相电学采集项同时兼容三相 PDU 的第一相(3-phase 5.0 型号),为监控三相设备留出了扩展空间。

4. 电度表(Energy Meter)

采集项Key更新周期
Energy Meter 1 status / valuecmcIIIVarValueStrg.EnergyMeter1.*10m / 5m
Energy Meter 2 status / valuecmcIIIVarValueStrg.EnergyMeter2.*10m / 5m

5. 环境与安防传感器

采集项Key更新周期
Temperature Status / ValuecmcIIIVarValueInt.Temperature.*[{#SNMPINDEX}]1m
Humidity Status / ValuecmcIIIVarValueInt.Humidity.*[{#SNMPINDEX}]1m / 10m
Leakage StatuscmcIIIVarValueInt.Leakage.Status[{#SNMPINDEX}]1m
Climate StatuscmcIIIVarValueInt.Climate[{#SNMPINDEX}]1m
Door statuscmcIIIVarValueInt.Access.Status1m
Access DescNamecmcIIIVarValueStrg.Access.DescName1h
Analog DescNamecmcIIIVarValueStrg.Analog.DescName[{#SNMPINDEX}]1h
Analog Status - AirFlowcmcIIIVarValueStrg.Analog.Status[{#SNMPINDEX}]1m

6. 数字输入(Input 1 / Input 2)

采集项Key更新周期
Input N.DescNamecmcIIIVarStrg.InputN.DescName[{#SNMPINDEX}]1h
Input N StatuscmcIIIVarStrg.InputN.Status[{#SNMPINDEX}]2m
Input N ValuecmcIIIVarStrg.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 warningcmcIIIVarValueInt.Access.Status.last()<>13warning
AirFlow Status alarmcmcIIIVarValueStrg.Analog.Status[{#SNMPINDEX}].last()<>4high

从表达式可以推断:门状态值 13 表示"门已关闭",偏离即告警;Analog 气流状态值 4 表示正常,非 4 即告警。

2. 气候与温度分级告警

触发器阈值逻辑优先级
Climate alarm {ITEM.LASTVALUE}气候值 >= 35high
Climate alarm HIGH {ITEM.LASTVALUE}气候值 >= 40disaster
Temparture status alarm温度状态<>4high
Temperature Above Normal25 <= 温度 < 26average
Temperature Very Above Normal温度 >= 26high
Temperature Below Normal13 < 温度 <= 15average
Temperature Far Below Normal温度 <= 13high

温度采用"过温/低温 + 越界程度"分级:25–26 ℃ 为 average 提示,≥26 ℃ 升级为 high;13–15 ℃ 为低温提示,≤13 ℃ 升级为 high。所有阈值在 LLD 触发器原型中保持一致。

3. 湿度分级告警

触发器阈值逻辑优先级
Alarm Humidity Status湿度状态<>4high
Humidity Above Normal75 < 湿度 < 80average
Humidity Very Above Normal湿度 >= 80high
Humidity Below Normal25 < 湿度 <= 30average
Humidity Very Below Normal湿度 <= 25high

湿度以 25% / 75% 为正常区间边界,80% 与 25% 为严重阈值,与机房湿度标准(约 40%–60% 理想区)相比留有合理裕量。

4. L1 相电学参数告警

触发器表达式优先级
Alarm Current Status Phase L1电流状态<>10high
Alarm Power Status Phase L1电流状态<>10(与上一条共用状态项)high
Alarm Voltage Status Phase L1电压状态<>4high

注意"Alarm Power Status Phase L1"的表达式实际引用的是PhaseL1.Current.Status项,从源码结构看这是模板作者的一个笔误(Power 状态应引用PhaseL1.Power.Active.Status),部署时若依赖该触发器需自行核对实际 OID 语义。另外从状态值推断:电流/功率状态 10 表示正常,电压状态 4 表示正常。

5. 输入与漏水告警

触发器表达式优先级
Input 1/2 status alarm状态=4且值<>1high
Alarm Leakage Status漏水状态<>4disaster

输入告警的语义为"输入状态报告异常(=4)且输入值非 1",即输入值 1 表示该输入正常(如插头在位/信号正常);漏水告警被直接定级为disaster(灾难),反映机房漏水的高危害性。

6. 整机状态与重启检测

触发器表达式优先级
Alarm Unit Power Active Status整机功率状态<>4disaster
PDU has been restartet (uptime < 5m)运行时间<5maverage
{HOST.NAME} $1Walk-SNMP[...].str(OK)<>1disaster
  • 整机功率异常直接 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:创建主机并链接模板

  1. 创建主机:在 Zabbix 中为主机添加SNMP 接口,填写 PDU(CMC III 控制器)的 IP 地址与端口(默认 UDP/161);
  2. 配置 SNMP 参数:在主机 SNMP 接口上配置 community(团体名)与 SNMP 版本(模板基于 SNMPv2 体系,模块模板内的snmp_oid均为符号 OID);
  3. 链接模板:在主机模板栏链接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 控制器家族的通用数据接口,本模板的发现规则完全可以迁移复用到同家族设备上。

使用注意事项

  1. 状态值语义来自触发器反推:文中所列"4=正常、10=正常、13=门关、1=输入正常"等语义均由触发器表达式推断,不同固件版本可能存在差异,建议先snmpwalk实际设备核对;
  2. 模板无自定义宏:主模板阈值全部硬编码在触发器表达式中,如需参数化可自行将 25/26 ℃、75/80% 等替换为{$...}用户宏;
  3. 1 相与 3 相兼容:模板以 L1 相为采集对象,三相设备的 L2/L3 相指标需要在该模板基础上扩展,或参考 7979 模板的分相 LLD 思路;
  4. 权限与只读:模板仅做 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

项目地址:https://gitcode.com/gh_mirrors/co/community-templates
点击查看免费下载
上一篇:react-native-bottom-sheet单元测试实践:确保组件稳定性的测试策略
下一篇:Vajra与Nuclei模板扫描:如何自定义规则检测特定漏洞

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询