【免费下载链接】community-templates
Zabbix Community Templates repository
本篇以 Zabbix 社区模板仓库 community-templates 中的SNMP HP v1905 POE模板为主体,完整讲解该模板如何通过 SNMP agent 对一台 HP 1905 系列 PoE 交换机的 26 个端口采集运行状态、收发字节、收发错误计数,并配套 CRC 错误、端口 down 和重启告警。读完本文,你可以掌握该模板全部 132 个监控项与 79 个触发器的组织方式、每个端口项对应的真实 OID 偏移规律、默认禁用项的处理方法,以及将其导入 Zabbix 6.0 后的适用边界与迁移注意事项。
模板定位与仓库文件结构
该模板位于仓库的Network_Devices/HP/目录下,按 Zabbix 版本提供了三种历史导出格式:
| 版本目录 | 文件 | 说明 |
|---|---|---|
| 6.0 | template_zabbix_2.2_hp_v1905_poe_snmp.yaml | YAML 导出,zabbix_export.version: '6.0',本文分析依据 |
| 5.4 | template_zabbix_2.2_hp_v1905_poe_snmp.yaml | 面向 Zabbix 5.4 的 YAML 导出 |
| 5.0 | template_zabbix_2.2_hp_v1905_poe_snmp.xml | 面向 Zabbix 5.0 的 XML 导出 |
| 6.0 | README.md | 6.0 版本的监控项清单文档 |
模板导出文件的元信息为:模板名SNMP HP v1905 POE,所属模板组Templates,模板 uuid949cdd54be9544ff8f63d35be45b568b(见 YAML 第 4–16 行)。
按 README.md 的说明,该模板具有以下结构特征:
- 无用户宏("There are no macros links in this template"):不需要在任何主机上预先配置宏;
- 无模板链接:不依赖
SNMP Interface等官方模板,是独立模板,导入后自成一体; - 无发现规则(LLD):26 个端口是写死在模板中的固定条目,而非通过低级别发现动态生成。这一点直接决定了它适用于端口固定、规划明确的接入交换机场景(详见"适用边界"一节);
- 全部监控项类型均为
SNMP agent。
监控项体系:132 个项的分类与参数
README 的 "Items collected" 表格共列出 132 个监控项(每行一项,见 README 第 17–150 行),对照 6.0 YAML 导出可将其归纳为 7 类:
| 分类 | 命名规律 | Key 规律 | SNMP OID | 采集间隔 | 数量 |
|---|---|---|---|---|---|
| 设备描述 | Model | .1.3.6.1.2.1.1.1.0 | sysDescr | 3600 s | 1 |
| 运行时长 | Uptime | Uptime | .1.3.6.1.2.1.1.3.0(sysUpTime) | 60 s | 1 |
| 端口状态 | Status port 1…Status port 26 | ifOperStatus.N | 1.3.6.1.2.1.2.2.1.8.N | 120 s | 26 |
| 接收字节 | Bytes Rx port 1…port 26 | ifInOctets.N | ifInOctets.(518+128×(N-1)) | 120 s | 26 |
| 发送字节 | Bytes Tx port 1…port 26 | ifOutOctets.N | ifOutOctets.(518+128×(N-1)) | 120 s | 26 |
| 接收错误 | Errors Rx port 1…port 26 | ifInErrors.N | ifInErrors.(518+128×(N-1)) | 120 s | 26 |
| 发送错误 | Errors Tx port 1…port 26 | ifOutErrors.N | ifOutErrors.(518+128×(N-1)) | 120 s | 26 |
所有端口项均设置 7 天历史(history: 7d)。每个端口项还带有Application标签,取值为Oper Status/Bytes Rx/Bytes Tx/CRC Errors Rx/CRC Errors Tx,Model与Uptime的标签值为General——这使得在 Zabbix 前端按标签筛选、聚合时可以把 26 个端口归入同一应用维度。
几个关键项值得单独展开。
Model:写入设备清单的描述项
Model项读取sysDescr(OID.1.3.6.1.2.1.1.1.0),值类型 TEXT,采集间隔 1 小时,且配置了inventory_link: MODEL,即采集值会自动回填到主机清单的"型号"字段;同时显式关闭了趋势(trends: '0'),见 YAML 第 17–31 行。
Uptime:带单位换算的秒级 uptime 与重启告警
Uptime项读取sysUpTime(OID.1.3.6.1.2.1.1.3.0),采集间隔 60 秒,单位为s。注意它带了一个预处理步骤(见 YAML 第 2632–2654 行):
units: s preprocessing: - type: MULTIPLIER parameters: - '0.01'sysUpTime原始单位是 hundredths of a second(1/100 秒),该模板通过MULTIPLIER 0.01预处理将其换算为秒,因此图上读到的就是直观的秒数。它挂载了一个 AVERAGE 级别触发器:
expression: 'last(/SNMP HP v1905 POE/Uptime)<600' name: '{HOSTNAME} has just been restarted'即设备运行时间不足 600 秒(10 分钟)时产生"刚刚重启过"的告警——这是识别交换机闪断、重启问题的标准做法。
端口项的 OID 偏移:从导出文件看实测 ifIndex 的写死策略
这是本模板最值得注意的实现细节。在 6.0 导出文件 中,README 表格里展示的 Key(如ifInOctets.1)与真实的snmp_oid并不相同。以Errors Rx port 1为例(YAML 第 32–43 行):
name: 'Errors Rx port 1' type: SNMP_AGENT snmp_oid: ifInErrors.518 key: ifInErrors.1 delay: '120'Key 中的端口号(1)是给人看的逻辑端口号,而snmp_oid指向的是 ifTable 中该端口的真实实例索引 518。对全部 26 个端口项逐行核对后可以确认,其 OID 实例号呈严格的等差数列:
端口 N 的实例索引 = 518 + 128 × (N - 1) 端口 1 → ifInErrors.518 端口 2 → ifInErrors.646 端口 3 → ifInErrors.774 ... 端口 26 → ifInErrors.3718从导出文件结构看,作者是在该型号 HP 1905 交换机上实测 ifIndex 后,把每个端口的 OID 直接写死为具体实例。这种"写死式"做法的优点是导入即用、无需 LLD;局限则在于:
- 端口号与物理端口的对应关系取决于该设备的 ifIndex 布局,迁移到其他设备或固件后必须重新核对(可通过
snmpget/snmpwalk查询1.3.6.1.2.1.2.2.1.1.0(ifDescr)逐实例确认); - 状态项(
ifOperStatus.N)使用的却是标准 ifTable 索引1.3.6.1.2.1.2.2.1.8.N(N=1…26,见 YAML 第 1073–1084 行),与流量/错误项的 518 偏移方案并不一致。这说明状态项的索引映射以设备实际 ifTable 为准,二者取值逻辑不同,排查端口数据异常时应分别核对。
默认禁用:26 个状态项与 26 个端口 down 触发器
Status port N项及其触发器在导出文件中均标记status: DISABLED(全文件共 52 处status: DISABLED,恰好对应 26 个状态项 + 26 个触发器)。以Status port 1为例(YAML 第 1073–1091 行):
name: 'Status port 1' type: SNMP_AGENT snmp_oid: 1.3.6.1.2.1.2.2.1.8.1 key: ifOperStatus.1 delay: '120' status: DISABLED triggers: - expression: 'last(/SNMP HP v1905 POE/ifOperStatus.1)=2' name: 'Port 1 status down on {HOSTNAME}' status: DISABLED priority: INFO触发条件last(...)=2对应ifOperStatus的down状态值。作者默认禁用了这些项,推测是为了让模板导入后先只跑流量与错误类采集,使用者在确认状态项 OID 映射无误后再按需启用——实际使用时需要在 Zabbix 前端逐项(或按端口)启用。
触发器体系:79 个触发器的完整构成
这里需要指出 README 与导出文件之间的一个差异:README 的 "Triggers" 章节写着 "There are no triggers in this template",但从 6.0 导出文件的结构看,触发器以嵌套在监控项内的形式存在(Zabbix 5.4+ 导出格式的常见组织方式),README 的汇总章节并未把它们统计进去。完整清点后,模板实际包含 79 个触发器,分三组:
| 触发器组 | 表达式 | 级别 | 默认状态 | 数量 |
|---|---|---|---|---|
| CRC 接收错误 | last(/SNMP HP v1905 POE/ifInErrors.N)>100 | HIGH | 启用 | 26 |
| CRC 发送错误 | last(/SNMP HP v1905 POE/ifOutErrors.N)>100 | HIGH | 启用 | 26 |
| 端口 down | last(/SNMP HP v1905 POE/ifOperStatus.N)=2 | INFO | 禁用 | 26 |
| 设备重启 | last(/SNMP HP v1905 POE/Uptime)<600 | AVERAGE | 启用 | 1 |
CRC 错误触发器挂载在每个错误计数项之下,命名形如CRC Errors Rx on port 1(见 YAML 第 44–49 行),阈值统一为最近一次采集值大于 100。由于ifInErrors/ifOutErrors本身是单调递增计数器,这里用last() > 100判断"累计错误数"而非"错误速率",意味着阈值 100 是一次性累计门槛:设备重启计数器清零后会重新累积。若希望监控瞬时错误突增,可以自行将表达式改造为基于diff()/change()的速率型判断——但注意仓库只读,此类调整应在导入后于 Zabbix 前端修改,而不是改动本仓库文件。
端口 down 触发器使用{HOSTNAME}宏在消息中带上主机名,且默认禁用(原因见上一节)。
图表:26 张逐端口流量图
模板附带 26 张名为Port 1 stats…Port 26 stats的图表(见 YAML 第 2655–2687 行),每张图固定包含两条曲线:
name: 'Port 1 stats' graph_items: - color: '000099' item: host: 'SNMP HP v1905 POE' key: ifOutOctets.1 - sortorder: '1' color: '990000' item: host: 'SNMP HP v1905 POE' key: ifInOctets.1发送字节(ifOutOctets.N,深蓝色000099)与接收字节(ifInOctets.N,深红色990000)同图展示,ymin_type_1: FIXED固定 Y 轴起点为 0。由于字节项是计数器,Zabbix 前端会按增量展示流量。
导入与使用
- 在 Zabbix 6.0 Web 界面进入管理 → 模板 → 导入模板,选择本仓库 6.0 目录下的 YAML 文件 导入(5.4 / 5.0 版本用户请选用对应目录的文件);
- 模板无宏、无模板链接,导入后无需额外前置配置。创建被监控主机时,将模板应用到该 HP 交换机,并配置好 SNMP 接口(SNMPv2 社区串或对应的 SNMPv3 凭据);
- 导入后默认生效的采集包括:
Model(1 小时一次)、Uptime(60 秒一次)、26 端口 ×(收发字节 + 收发错误)共 104 个 120 秒间隔的项,以及 52 个 CRC 错误 HIGH 触发器和重启 AVERAGE 触发器; - 如需端口 down 告警,在模板或主机层启用 26 个
Status port N项及其触发器。
适用边界与迁移注意
- 版本适配:模板按 Zabbix 版本分目录存放,请以所在版本对应的导出文件导入;6.0 文件声明的
zabbix_export.version为6.0(YAML 第 1–3 行)。 - 无 LLD 的固定端口设计:26 个端口全部是静态项,适合端口数量、编号固定的接入层交换机。若网络中存在大量型号混杂的交换机,或端口会动态变化,带 LLD 的接口发现方案(如仓库中其他 Generic/HP 接口类模板)会更合适。
- ifIndex 写死:如前所述,流量与错误项的 OID 是按该设备实测 ifIndex(518 起、步长 128)写死的,更换设备时务必先用
snmpwalk核对ifDescr与ifInErrors等表项的实例号,再决定是修改 OID 还是换用带发现的模板。 - 计数器型阈值:CRC 告警基于累计值
>100,设备重启会清零重新累积,解读告警时需结合Uptime与重启告警一起看。
小结
SNMP HP v1905 POE模板用 132 个 SNMP agent 项、79 个触发器和 26 张端口流量图,为 HP 1905 系列 PoE 交换机提供了一套零宏依赖、导入即用的逐端口监控方案:sysDescr/sysUpTime覆盖设备基础信息,ifInOctets/ifOutOctets/ifInErrors/ifOutErrors覆盖 26 个端口的流量与 CRC 错误,ifOperStatus提供可按需启用的端口 down 告警。理解其中"逻辑端口 Key + 实测 ifIndex OID"的映射方式和 518 偏移规律,是正确复用与迁移该模板的关键。
【免费下载链接】community-templates
Zabbix Community Templates repository
相关推荐
Zabbix 社区模板 SNMP HP v1905 POE:用 SNMP 监控 HP ProCurve v1905 PoE 交换机 26 个端口的完整实战
Zabbix 社区模板 SNMP HP v1905 POE:用 SNMP 监控 HP ProCurve v1905 PoE 交换机 26 个端口的完整实战 本文
Zabbix 社区模板实战:用 SNMP 模板 SNMP HP v1905 POE 监控 HP 1905 网管型 PoE 交换机的 26 个端口
Zabbix 社区模板实战:用 SNMP 模板 SNMP HP v1905 POE 监控 HP 1905 网管型 PoE 交换机的 26 个端口 本文围绕 Za
用 Zabbix 监控 HP OfficeConnect 19XX 交换机:community-templates 中 SNMP OfficeConnect 19XX 模板完全解析
用 Zabbix 监控 HP OfficeConnect 19XX 交换机:community templates 中 SNMP OfficeConnect 1
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考