【免费下载链接】community-templates
Zabbix Community Templates repository
本文围绕 Zabbix 社区模板仓库(community-templates)中的 SNMP HP v1905 POE 模板展开,完整解读这份面向 HP 1905 系列 PoE 交换机的 SNMP 监控方案:模板采集的 133 个监控项(26 端口的ifOperStatus端口状态、ifInOctets/ifOutOctets双向字节流量、ifInErrors/ifOutErrors双向错误计数,外加Model型号与Uptime运行时长)、各监控项的 SNMP OID、更新周期与预处理逻辑、79 条内置触发器的表达式与优先级,以及 26 张端口流量图。读完本文,你可以直接按版本选择导入文件、配置 SNMP 主机,并理解每个键值背后的 MIB 含义与告警设计。
1. 模板定位与版本演进
该模板位于仓库的Network_Devices/HP目录下,模板名为SNMP HP v1905 POE(uuid949cdd54be9544ff8f63d35be45b568b),归属 Zabbix 模板分组Templates。从模板名可以看出它的两个定位:一是监控对象为 HP 1905 系列网管型交换机("v1905" 即 HP 1905 系列),二是该系列的核心特征是 PoE(以太网供电),常见于园区、办公网的接入层部署,通常以 24/26 口千兆 PoE 交换机的形态出现——模板恰好覆盖了 26 个端口,说明作者就是针对 26 口型号逐项固化了监控项。
仓库中保留了三个版本的导出文件,体现了 Zabbix 模板格式从 XML 到 YAML 的演进:
| 版本目录 | 导出格式 | 对应 Zabbix 版本线 |
|---|---|---|
| 5.0 版 XML | XML(<zabbix_export><version>5.0</version>) | Zabbix 5.0 |
| 5.4 版 YAML | YAML | Zabbix 5.4 |
| 6.0 版 YAML | YAML(version: '6.0',导出日期 2021-11-25) | Zabbix 6.0 |
三个版本的元数据完全一致:三个导出文件的导出日期均为2021-11-25T12:38:25/26Z,说明它们是同一份模板在不同版本线下的同步导出。模板名中的 "zabbix 2.2" 表明它最初是在 Zabbix 2.2 时代创建的早期社区模板,后续由社区迁移到了新格式。
5.0 版 README 明确列出了模板的三个"空"特性:
- Macros used:There are no macros links in this template(没有使用任何 LLD 或自定义宏);
- Template links:There are no template links in this template(不链接其他模板,也不依赖
SNMP interface之类的标准接口模板); - Discovery rules:There are no discovery rules in this template(没有自动发现规则)。
这决定了它的实现方式是逐项硬编码(static items):26 个端口、每种指标都单独建一个监控项,而不是用低级别发现(LLD)动态生成。优点是结构简单、导入即用、与 Zabbix 的 SNMP 接口自动发现体系零耦合;代价是端口数量被固定为 26,换用 48 口型号时需要手工增删监控项。
2. 采集体系:133 个监控项的完整构成
README 的 "Items collected" 表格列出了模板采集的全部监控项(5.0 版 README 中为 133 行),类型全部是SNMP agent。按指标类型归纳,构成如下:
| 指标族 | 数量 | 监控项命名模式 | Item Key | 更新周期 | 数据来源 OID(示例:端口 1) |
|---|---|---|---|---|---|
| 端口运行状态 | 26 | Status port N | ifOperStatus.N | 120s | ifOperStatus.1→1.3.6.1.2.1.2.2.1.1 |
| 接收字节数 | 26 | Bytes Rx port N | ifInOctets.N | 120s | ifInOctets.1→1.3.6.1.2.1.2.2.1.10 |
| 发送字节数 | 26 | Bytes Tx port N | ifOutOctets.N | 120s | ifOutOctets.1→1.3.6.1.2.1.2.2.1.16 |
| 接收错误 | 26 | Errors Rx port N | ifInErrors.N | 120s | ifInErrors.1→1.3.6.1.2.1.2.2.1.14 |
| 发送错误 | 26 | Errors Tx port N | ifOutErrors.N | 120s | ifOutErrors.1→1.3.6.1.2.1.2.2.1.20 |
| 设备型号 | 1 | Model | .1.3.6.1.2.1.1.1.0 | 3600s | sysDescr |
| 运行时长 | 1 | Uptime | Uptime | 60s | 1.3.6.1.2.1.1.3.0(sysUpTime) |
26 × 5 + 2 =133 个监控项,与 README 表格行数一致。下面逐类说明。
2.1 端口运行状态:ifOperStatus.N
每个端口一个Status port N监控项,键为ifOperStatus.N(N = 1…26),更新周期 120 秒。ifOperStatus是 IF-MIB 中定义的操作状态计数器,取值含义为:1 = up(运行中)、2 = down(关闭)、3 = testing(测试中)。它是判断"这个 PoE 端口是否还活着"的最直接信号:对端设备断电、光模块/网线故障、端口被管理面关闭时都会反映为down。
2.2 双向字节流量:ifInOctets.N / ifOutOctets.N
Bytes Rx port N与Bytes Tx port N分别采集ifInOctets.N与ifOutOctets.N,更新周期 120 秒,历史保留 7 天(YAML 中history: 7d)。原始值是字节累计计数器,6.0 版 YAML 中为它们配置了预处理管道(以端口 1 的ifInOctets.1为例):
preprocessing: - type: CHANGE_PER_SECOND # 求变化率:每秒增量 parameters: - '' - type: MULTIPLIER # 乘以 8,换算为 bps parameters: - '8' tags: - tag: Application value: 'Bytes Rx' # 归类到 Bytes Rx 应用组两步预处理合起来就是把"字节累计计数器"变成"每秒比特数(bps)":CHANGE_PER_SECOND先算出 Δbytes/s,再乘 8 得到 Δbits/s。这样存储进 Zabbix 的值已经是可直接用于趋势分析的流量速率。Bytes Tx方向同理,标签值为Bytes Tx。
2.3 双向错误计数:ifInErrors.N / ifOutErrors.N
Errors Rx port N/Errors Tx port N采集ifInErrors.N/ifOutErrors.N,更新周期同样是 120 秒。ifInErrors统计的是接收方向上因 CRC 等原因被丢弃的数据帧,ifOutErrors对应发送方向。模板给这两族监控项打的标签分别是CRC Errors Rx与CRC Errors Tx(见 2.4 节应用分组),即作者把它们明确当作 CRC 错误指标来用。
一个值得注意的实现细节:各版本导出文件里,错误类监控项的snmp_oid写法与键值并不一一对应。例如 6.0 版 YAML 中:
name: 'Errors Rx port 1' type: SNMP_AGENT snmp_oid: ifInErrors.518 # 端口 1 的 ifInErrors 绝对索引为 518 key: ifInErrors.1 # 而 Item Key 仍写作 ifInErrors.1端口 2 为ifInErrors.646、端口 3 为ifInErrors.774……每个端口间隔 128,这是 HP 1905 在其 SNMP 视图中的接口索引(ifIndex)映射方式。而ifOperStatus/ifInOctets/ifOutOctets等项则直接使用.1~.26的端口号索引。从源码结构看,这是早期 Zabbix 2.2 模板的遗留写法(当时 SNMP 项必须显式填 OID),Zabbix 5.4/6.0 导入后会以key作为实际轮询依据,因此按ifInErrors.1~ifInErrors.26理解键值即可。
2.4 系统级监控项:Model 与 Uptime
Model:键为 OID.1.3.6.1.2.1.1.1.0,即sysDescr(系统描述符),更新周期 3600 秒,值类型TEXT,不写趋势(trends: '0'),并在 6.0 版中配置了inventory_link: MODEL——采集到的文本会自动写入主机的资产清单(Asset tag)的 Model 字段。这意味着模板导入后无需手工填设备型号,sysDescr的返回值会同步到资产记录。
Uptime:键为Uptime,对应 OID.1.3.6.1.2.1.1.3.0(sysUpTime,系统运行时间),更新周期 60 秒(全部监控项中最快),单位s。sysUpTime原始单位是百分之一秒(centisecond),模板通过预处理完成换算:
name: Uptime type: SNMP_AGENT snmp_oid: .1.3.6.1.2.1.1.3.0 key: Uptime delay: '60' units: s preprocessing: - type: MULTIPLIER parameters: - '0.01' # centisecond -> second乘 0.01 后存储值即为秒数,用于趋势图观察设备重启周期。
2.5 应用分组(Application / Tags)
5.0 版 XML 中定义了六个应用(application),6.0 版中转换为等价的 item tags(tag: Application),用于在界面中按功能分组展示:
| 分组名 | 覆盖的监控项 |
|---|---|
General | Model、Uptime |
Oper Status | 26 个ifOperStatus.N |
Bytes Rx | 26 个ifInOctets.N |
Bytes Tx | 26 个ifOutOctets.N |
CRC Errors Rx | 26 个ifInErrors.N |
CRC Errors Tx | 26 个ifOutErrors.N |
3. 告警设计:README 未列出的 79 条触发器
5.0 版 README 的 "Triggers" 一节写着 "There are no triggers in this template"。但对照各版本实际导出文件,这个描述与模板内容不符:6.0 版 YAML 中共有 158 处expression:与priority:字段(即79 条触发器),5.0 版 XML 同样包含触发器定义。可以判断 README 是模板生成器输出的占位文案,实际触发器以导出文件为准。三类触发器如下(6.0 版 YAML 原文摘录):
(1) 端口 CRC 接收错误告警—— 每个端口一条,共 26 条,优先级HIGH:
expression: 'last(/SNMP HP v1905 POE/ifInErrors.1)>100' name: 'CRC Errors Rx on port 1' priority: HIGH语义是:最近一次采样的ifInErrors.1值大于 100 就产生 HIGH 级告警(ifOutErrors侧对称地有 26 条CRC Errors Tx on port N)。需要注意该表达式用的是last()而非差分,对 PoE 接入层交换机来说,120 秒一次的采样间隔下计数器增量就是错误发生的直接证据;阈值 100 属于偏敏感的设定,在繁忙的共享链路(如接了坏线缆或风暴环路)上可能产生持续告警,实际部署时可按网络情况调整。
(2) 端口 Down 告警—— 每个端口一条,共 26 条。ifOperStatus取值 2 即 down:
expression: 'last(/SNMP HP v1905 POE/ifOperStatus.1)=2' name: 'Port 1 is down' # 同类命名(3) 设备重启告警—— 作用于 Uptime,优先级AVERAGE:
expression: 'last(/SNMP HP v1905 POE/Uptime)<600' name: '{HOSTNAME} has just been restarted' priority: AVERAGE设备运行时间不足 600 秒(10 分钟)即提示"刚刚重启"。这里{HOSTNAME}是 Zabbix 5.4+ 触发器名称中的标准宏,显示时替换为实际主机名。配合 60 秒的 Uptime 采集周期,重启事件最多延迟一分钟被发现。
26 + 26 + 26 + 1 = 79 条,与 YAML 中的数量完全吻合。
4. 可视化:26 张端口流量图
模板的graphs部分定义了 26 张图,命名为Port 1 stats至Port 26 stats,每张图固定最小 Y 轴(ymin_type_1: FIXED),包含两条曲线:
name: 'Port 1 stats' ymin_type_1: FIXED 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由于ifInOctets.N/ifOutOctets.N已经过预处理(见 2.2 节),图上的纵轴单位直接是 bps,双曲线同屏对比收发方向,便于快速定位 PoE 交换机的流量不对称(例如上联风暴、环路导致的单向流量暴涨)。
5. 导入与部署要点
前提条件:
- HP 1905 交换机的 SNMP Agent 已启用,且 Zabbix Server/Proxy 能访问其 UDP 161 端口;
- 在 Zabbix 中为主机配置 SNMP Agent 接口,并填入与交换机一致的 Community 字符串(v2c);
- 模板中不存在宏(README "Macros used" 一节已确认),因此导入后无需再补任何
{$SNMP_COMMUNITY}之类的宏配置,这是它区别于带宏模板的一点。
导入步骤:按你的 Zabbix 版本选择对应导出文件——Zabbix 5.0 导入 5.0 版 XML;Zabbix 5.4 导入 5.4 版 YAML;Zabbix 6.0 导入 6.0 版 YAML(Zabbix Web 界面:Configuration → Templates → Import)。导入后在目标主机(Snmp agent 类型)上应用模板SNMP HP v1905 POE即可。
适用限制:
- 端口覆盖固定为 26 个,键值从
.1排到.26,适用于 26 口 1905 型号;用于其他口数或接口索引不同的 HP 设备时,需要自行裁剪或扩展监控项; - 模板没有链接标准
SNMP interface接口模板,也提供不了带宽利用率(需要ifSpeed)等衍生指标,流量速率与端口状态是它的监控边界; - 错误告警阈值为硬编码的
>100(HIGH),重启告警阈值<600(AVERAGE),调整需手工修改触发器表达式。
6. 小结
SNMP HP v1905 POE 是一份典型的"小而全"接入层交换机模板:133 个 SNMP 监控项完整覆盖 26 端口的状态、双向流量、双向 CRC 错误,外加sysDescr型号(自动写入资产清单)与 60 秒周期的sysUpTime运行时长;79 条触发器提供端口 down、CRC 错误、设备重启三类告警;26 张收发双曲线图支撑逐端口的流量排查。它的价值在于零宏、零模板依赖、导入即用的静态设计,适合作为 HP 1905 PoE 系列监控的基线模板,也可作为理解"IF-MIB 端口指标如何在 Zabbix 中落地为 SNMP 监控项(OID、键值、预处理、标签、触发器、图形全链路)"的范例来研读。
【免费下载链接】community-templates
Zabbix Community Templates repository
相关推荐
Zabbix 社区模板实战:基于 SNMP 监控 HP Procurve 2920 系列交换机
Zabbix 社区模板实战:基于 SNMP 监控 HP Procurve 2920 系列交换机 导读 本文基于 Zabbix Community Templat
Zabbix 监控 HP OfficeConnect 19xx 交换机:SNMP OfficeConnect 19XX 社区模板全解
Zabbix 监控 HP OfficeConnect 19xx 交换机:SNMP OfficeConnect 19XX 社区模板全解 本文以 HP Office
Zabbix 社区模板实战:用 SNMP 监控 3COM(HP)4500 28 口交换机——community-templates 模板深度解读
Zabbix 社区模板实战:用 SNMP 监控 3COM(HP)4500 28 口交换机——community templates 模板深度解读 本篇文章以 Z
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考