- 指标监控
- 可观测性
- 告警
- 运维
【免费下载链接】zabbix
Real-time monitoring of IT components and services, such as networks, servers, VMs, applications and the cloud.
本篇技术指南围绕 Zabbix 官方模板Huawei AR600 by SNMP(本仓库 templates/net/huawei_ar600_snmp/README.md 与其完整导出文件 template_net_huawei_ar600_snmp.yaml)展开,系统讲解华为 AR600 系列企业路由器的 SNMP 监控方案。读者通过本文可以掌握:模板覆盖的监控对象与所用 MIB、20 余个可调阈值宏的含义与默认值、SNMP 接口/双工/NQA/CBQoS/MPU 五类低层发现(LLD)规则的过滤原理与触发器表达式,以及模板自带的 General/NQA/COS 三页仪表盘。文中所有参数、OID、预处理与表达式均以仓库实际内容为准,可直接对照部署。
模板概述:监控能力与 MIB 全景
该模板面向Huawei AR600 系列路由器,通过 SNMP 完成整机监控。根据模板说明(README.md),其监控范围覆盖五类能力:
- CPU、内存与温度传感器:通过 MPU 发现规则,针对主处理单元逐项采集 CPU 利用率、内存利用率与实体温度;
- 硬件资产清单(Hardware inventory):序列号、硬件版本、软件版本,并与 Zabbix 资产清单联动;
- 网络质量分析 NQA:基于华为私有 NQA-MIB 采集时延(RTT)、抖动(jitter)与丢包(packet loss);
- QoS 队列(CBQoS):基于
HUAWEI-CBQOS-MIB采集队列的匹配、入队、丢弃字节速率; - 网络接口与流量统计:基于 IF-MIB 的接口状态、速率、错误包与丢弃包统计,以及 EtherLike-MIB 的双工状态。
模板使用的 MIB 清单如下(README.md):
| MIB | 用途 |
|---|---|
| HOST-RESOURCES-MIB | 硬件运行时间(hrSystemUptime) |
| EtherLike-MIB | 接口双工状态(dot3StatsDuplexStatus) |
| SNMPv2-MIB | 系统信息与网络运行时间(sysUpTime、sysDescr等) |
| IF-MIB | 接口状态、速率、流量计数器 |
| NQA-MIB | 华为 NQA 测试的 RTT / 抖动 / 丢包 |
| HUAWEI-CBQOS-MIB | QoS 队列统计 |
| HUAWEI-ENTITY-EXTENT-MIB | 电源、CPU、内存、温度等实体扩展信息 |
适用前提:模板要求Zabbix 8.0 及以上版本(README.md);已按官方开箱即用模板章节完成 Zabbix 配置;并已在华为设备侧开启 SNMP 服务。模板官方验证机型为Huawei AR611(README.md),AR600 系列其他型号建议以实际 MIB 输出为准。
基础监控项:系统信息、运行时间与可用性
模板在顶层定义了 12 个基础监控项(见 template_net_huawei_ar600_snmp.yaml),可划分为四组:
1. 系统信息(SNMPv2-MIB,采集周期 15m)system.name、system.descr[sysDescr.0]、system.contact[sysContact.0]、system.location[sysLocation.0]、system.objectid[sysObjectID.0],均带12 小时未变化即丢弃(Discard unchanged with heartbeat)预处理,避免无意义入库;其中 name/contact/location 三项还通过inventory_link写回主机资产清单。
2. 运行时间(30s 采集)
system.net.uptime[sysUpTime.0](SNMPv2-MIB):网络管理子系统运行时间,原始单位为百分之一秒,预处理Custom multiplier: 0.01换算为秒;system.hw.uptime[hrSystemUptime.0](HOST-RESOURCES-MIB):整机运行时间。其预处理更精细:先Check for not supported value: any error并“设置值为 0”兜底,再做 0.01 乘法,保证设备不支持该 OID 时监控不中断。
3. 可用性(Simple check 与 Zabbix 内部项)
icmpping/icmppingloss/icmppingsec:分别返回 ICMP 可达性(0/1)、丢包率(%)与平均响应时间(s)。其底层由 src/libs/zbxpinger/pinger.c 中的pinger与add_icmpping_item()等实现负责解析 key 参数、批量发起探测并统计丢包与响应;zabbix[host,snmp,available]:SNMP 轮询可用性(0 不可用 / 1 可用 / 2 未知),用于主机列表的可用性图标。
4. 电源信息(HUAWEI-ENTITY-EXTENT-MIB)
huawei.ar600.device.power.total(OID1.3.6.1.4.1.2011.5.25.31.3.1.0,单位 W)与huawei.ar600.device.power.used(OID1.3.6.1.4.1.2011.5.25.31.3.2.0,单位 W)。两项均带Does not match regular expression: ^0$预处理,当设备返回 0(不支持电源信息)时自定义报错“The device does not support power information retrieval via SNMP.”,保证不会产生无意义的 0 值数据。
基础触发器:可用性与告警依赖链
模板通过**触发器依赖(depends on)**构建了清晰的告警收敛链(README.md):
| 触发器 | 表达式要点 | 级别 | 依赖 |
|---|---|---|---|
| Unavailable by ICMP ping | max(icmpping,#3)=0,连续 3 次超时 | High | — |
| No SNMP data collection | max(zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 | Warning | 依赖 ICMP 不可用 |
| High ICMP ping loss | min(icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(...)<100 | Warning | 依赖 ICMP 不可用 |
| High ICMP ping response time | avg(icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} | Warning | 依赖高丢包与 ICMP 不可用 |
| Host has been restarted | 双分支判断硬件/网络 uptime 回退,并排除 32 位计数器回绕(2^32 百分之一秒,约 497 天)误报 | Warning | 依赖 No SNMP data collection |
| System name has changed | 比较最近两次system.name值,要求非空 | Info(手动关闭) | — |
| High power utilization | used / total * 100 > {$POWER.USAGE.WARN} | Warning | — |
其中“Host has been restarted”的表达式是模板中最复杂的部分:它先检查硬件 uptime 下降且上一次读数未接近42949672.96(即 2^32 × 0.01 秒,对应 32 位计数器极限),再兜底检查网络 uptime 分支;恢复条件为任一 uptime 超过{$SNMP.UPTIME.WARN}(默认 10m),对应 template_net_huawei_ar600_snmp.yaml。
阈值宏一览:23 个可调参数
模板将全部阈值与过滤规则外置为宏,均可在主机或模板级别覆盖(README.md)。下表按用途分组整理:
阈值类(Thresholds)
| 宏 | 默认值 | 说明 |
|---|---|---|
| {$CPU.UTIL.CRIT} | 90 | MPU CPU 利用率告警阈值(%) |
| {$MEMORY.UTIL.MAX} | 90 | MPU 内存利用率触发阈值(%) |
| {$POWER.USAGE.WARN} | 80 | 整机电源使用率告警阈值(%) |
| {$ICMP_LOSS_WARN} | 20 | ICMP 丢包告警阈值(%) |
| {$ICMP_RESPONSE_TIME_WARN} | 0.15 | ICMP 平均响应时间告警阈值(s) |
| {$IF.UTIL.MAX} | 95 | 接口带宽利用率上限(%),支持按接口上下文覆盖 |
| {$IF.ERRORS.WARN} | 2 | 错误包速率告警阈值,支持按接口上下文覆盖 |
| {$HUAWEI.AR600.RTT.AVG.CRIT} | 200 | NQA 平均 RTT 临界阈值(ms) |
| {$HUAWEI.AR600.PACKET.LOSS.CRIT} | 90 | NQA 丢包率临界阈值(%) |
| {$HUAWEI.AR600.JITTER.CRIT} | 60 | NQA 抖动临界阈值(ms) |
| {$HUAWEI.AR600.COS.DISCARDED.BPS.WARN} | 100000 | CBQoS 队列丢弃字节速率告警阈值(Bps) |
运行类(Other)
| 宏 | 默认值 | 说明 |
|---|---|---|
| {$SNMP.TIMEOUT} | 5m | SNMP 可用性判定时间窗 |
| {$SNMP.UPTIME.WARN} | 10m | 重启问题自动恢复的 uptime 阈值 |
| {$IFCONTROL} | 1 | 接口链路 down 触发器开关,可设 0 忽略指定接口 |
接口过滤类(Filters,均支持{#IFNAME}等上下文)
| 宏 | 默认值 | 说明 |
|---|---|---|
| {$NET.IF.IFNAME.MATCHES} / .NOT_MATCHES | ^.*$/ 默认过滤 Loopback、NULL、veth、docker 桥 | 按名称包含/排除接口 |
| {$NET.IF.IFOPERSTATUS.MATCHES} / .NOT_MATCHES | ^.*$/^6$(notPresent) | 按运行状态包含/排除 |
| {$NET.IF.IFADMINSTATUS.MATCHES} / .NOT_MATCHES | ^.*/^2$(down) | 按管理状态包含/排除 |
| {$NET.IF.IFDESCR.MATCHES} / .NOT_MATCHES | .*/CHANGE_IF_NEEDED | 按描述包含/排除 |
| {$NET.IF.IFTYPE.MATCHES} / .NOT_MATCHES | .*/CHANGE_IF_NEEDED | 按接口类型包含/排除 |
| {$NET.IF.IFALIAS.MATCHES} / .NOT_MATCHES | .*/CHANGE_IF_NEEDED | 按别名包含/排除 |
NQA / CBQoS 过滤类
| 宏 | 默认值 | 说明 |
|---|---|---|
| {$HUAWEI.AR600.NQA.ADMIN.MATCHES} / .NOT_MATCHES | .*/CHANGE_IF_NEEDED | 按 NQA admin 名正则过滤 |
| {$HUAWEI.AR600.NQA.TEST.MATCHES} / .NOT_MATCHES | .*/CHANGE_IF_NEEDED | 按 NQA 测试类名正则过滤 |
| {$HUAWEI.AR600.COS.DIRECTION.MATCHES} / .NOT_MATCHES | ^OUT$/CHANGE_IF_NEEDED | 按队列方向(IN/OUT)过滤,默认仅 OUT |
| {$HUAWEI.AR600.COS.IFNAME.MATCHES} / .NOT_MATCHES | .*/CHANGE_IF_NEEDED | 按接口名过滤(如^GigabitEthernet0/0/3$) |
| {$HUAWEI.AR600.COS.QUEUE.MATCHES} / .NOT_MATCHES | .*/CHANGE_IF_NEEDED | 按队列号过滤(如^(1\|2\|3)$) |
在 YAML 导出中,宏还带有config.regex约束(如百分比类宏限定^-?([0-9]+|(([0-9]+)\.([0-9]+)))$),在 8.0 的宏配置界面中直接校验取值范围,见 template_net_huawei_ar600_snmp.yaml。
LLD 规则详解:五条发现链路的运作原理
模板的核心设计是**“master item 采集原始数据 + 依赖型 LLD 规则二次加工”**:先用 SNMP walk 一次性抓取整表原始数据(raw master item),再由发现规则解析出 JSON 并生成逐项监控项与触发器。五条链路如下。
1. 网络接口发现(IF-MIB)
- Master item:
huawei.ar600.net.if.walk,一次性 walk 13 个 IF-MIB 表列(ifOperStatus、ifAdminStatus、ifAlias、ifName、ifDescr、ifType、ifInOctets、ifOutOctets、ifInErrors、ifOutErrors、ifOutDiscards、ifInDiscards、ifSpeed); - LLD 规则:
net.if.discovery,预处理为SNMP walk to JSON(失败时丢弃)加 1h 未变化丢弃,再经{#IFOPERSTATUS}、{#IFADMINSTATUS}、{#IFALIAS}、{#IFNAME}、{#IFDESCR}、{#IFTYPE}六组 MATCHES/NOT_MATCHES 宏过滤; - Item prototypes:入/出流量(
net.if.in/out[ifInOctets/ifOutOctets.{#SNMPINDEX}],Change per second × 8 换算为 bps)、入/出错误包、入/出丢弃包(均 Change per second + 3m 未变化丢弃)、运行状态、接口类型、速率(net.if.speed[ifSpeed.{#SNMPINDEX}])。
相关触发器原型(详见 README.md):
- Link down(Average,手动关闭):
{$IFCONTROL:"{#IFNAME}"}=1 and last(ifOperStatus)=2 and last(#1)<>last(#2)——要求接口此前曾 up,避免“永久关闭”接口误报; - High bandwidth usage(Warning):15 分钟平均入/出流量超过
{$IF.UTIL.MAX:"{#IFNAME}"}/100 × ifSpeed; - High error rate(Warning):5 分钟最小错误速率超过
{$IF.ERRORS.WARN:"{#IFNAME}"},恢复需降至阈值的 80%; - Ethernet has changed to lower speed(Info):速率下降且接口类型属于 6/7/11/62/69/117(ethernetCsmacd、iso88023Csmacd、starLan、fastEther、fastEtherFX、gigabitEthernet)等以太网类型,提示自协商异常。
2. EtherLike-MIB 双工发现
- Master item:
huawei.ar600.net.if.duplex.walk,walkdot3StatsDuplexStatus(1.3.6.1.2.1.10.7.2.1.19)及 IF-MIB 的 ifOperStatus、ifAlias、ifName、ifDescr; - LLD 规则:
net.if.duplex.discovery,过滤条件为{#IFOPERSTATUS}匹配1(up)且{#SNMPVALUE}匹配(2|3)(即仅发现半双工/全双工明确的接口); - Item prototype:
net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}],经值映射EtherLike-MIB::dot3StatsDuplexStatus(1=unknown、2=halfDuplex、3=fullDuplex)显示; - Trigger prototype:值为 2(半双工)时触发In half-duplex mode(Warning,手动关闭),提示检查自协商与线缆。
3. NQA 网络质量发现(核心亮点)
NQA 是华为设备内置的网络质量探测能力。该模板的 NQA 链路采用两层 JavaScript 预处理,源码完整可见于 template_net_huawei_ar600_snmp.yaml:
- Master item
huawei.ar600.nqa.walk:一次 walk NQA-MIB 的 5 个表列——rttAvg(.1.46)、rttMax(.1.9)、rttMin(.1.8)、packetLoss(.1.47)、jitter(.1.50),先经SNMP walk to JSON,再执行HuaweiNqaParser.parse():由于华为 NQA 的{#SNMPINDEX}将 admin 名、测试类名以 ASCII 码拼接在 OID 后缀中,脚本按[admin长度, admin字符..., test长度, test字符..., probe序号]解码出 admin/test 标识,并对同一 admin|test 保留 probe 序号最大的最新记录,输出形如{"admin|test": {rttAvg, rttMax, rttMin, packetLoss, jitter}}的 JSON; - LLD 规则
huawei.ar600.nqa.discovery:读取该 JSON 生成{#NQA.ADMIN}、{#NQA.TEST}宏,再经{$HUAWEI.AR600.NQA.ADMIN/TEST.MATCHES/NOT_MATCHES}四组宏过滤(默认全部包含); - Item prototypes:
huawei.ar600.nqa.rtt.avg/min/max[{#NQA.ADMIN},{#NQA.TEST}](单位 ms)、huawei.ar600.nqa.packetloss[...](%)、huawei.ar600.nqa.jitter[...](ms),各自用 JSONPath 从 master 数据中取值(如$["{#NQA.ADMIN}|{#NQA.TEST}"].rttAvg); - Trigger prototypes(均 Average 级):RTT avg 超过
{$HUAWEI.AR600.RTT.AVG.CRIT}(200ms)、丢包超过{$HUAWEI.AR600.PACKET.LOSS.CRIT}(90%)、抖动超过{$HUAWEI.AR600.JITTER.CRIT}(60ms),均以 5 分钟平均评估。
由此可实现按 NQA 测试实例独立监控每条链路的时延、抖动与丢包,并驱动模板自带 NQA 页面的蜂巢图与趋势图。
4. CBQoS 队列发现
- Master item:
huawei.ar600.cos.walk,walkifIndex、ifName与 HUAWEI-CBQOS-MIB 的cbqosMatched(.1.6.1.8)、cbqosEnqueued(.1.6.1.10)、cbqosDiscarded(.1.6.1.12)三张计数表(template_net_huawei_ar600_snmp.yaml)。JavaScript 预处理将{#SNMPINDEX}规整为snmpIndex字段; - LLD 规则
huawei.ar600.cos.discovery:JavaScript 解析 walk 数据,通过snmpIndex的接口索引.方向(1=IN,2=OUT).队列号三段结构还原出{#IFNAME}、{#DIRECTION}、{#QUEUE},并使用seenQueues去重;随后经 DIRECTION / IFNAME / QUEUE 六组宏过滤(默认^OUT$,即只监控出向队列);发现逻辑中对未知方向值会记录Zabbix.log(3, ...)日志; - Item prototypes:
huawei.ar600.cbqos.matched.rate[{#SNMPINDEX}](匹配速率,未做 Change per second)、huawei.ar600.cbqos.enqueued.rate[...]与huawei.ar600.cbqos.discarded.rate[...](入队/丢弃速率,Change per second 换算为 Bps); - Trigger prototype:
avg(discarded.rate,5m) > {$HUAWEI.AR600.COS.DISCARDED.BPS.WARN},COS [...]: Discarded traffic (warning)(Average),丢弃速率过高常指向队列拥塞或容量不足。
5. MPU 主控板发现
- Master item:
huawei.ar600.mpu.walk,walk ENTITY-MIB 的entPhysicalDescr(1.3.6.1.2.1.47.1.1.1.1.2)与entPhysicalName(.1.7)转 JSON; - LLD 规则
huawei.ar600.mpu.discovery:过滤条件为{#ENT_NAME}匹配正则SRU.*(SRU 即华为主控板 Main Processing Unit 的型号前缀),lld_macro_paths将$.entPhysicalDescr/$.entPhysicalName映射为{#ENT_DESCR}/{#ENT_NAME}; - Item prototypes(SNMP agent 直采,OID 均拼接
{#SNMPINDEX}):system.cpu.util[{#SNMPINDEX}](HUAWEI-ENTITY-EXTENT-MIB.1.1.1.1.5);vm.memory.util[{#SNMPINDEX}](.1.1.1.1.7);sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}](.1.1.1.1.11,单位 °C,3m 采集);system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]、system.hw.version[entPhysicalHardwareRev.{#SNMPINDEX}]、system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}](ENTITY-MIB,1h 采集,1d 未变化丢弃);
- Trigger prototypes:高 CPU(Warning)、高内存(Average)、温度过高/过高临界/过低三档(Warning/Average/High,带 ±3 的恢复迟滞表达式)、序列号变化提示Device has been replaced(Info,手动关闭)、软件版本变化提示Operating system description has changed(Info,手动关闭)。
配套仪表盘:General / NQA / COS 三页视图
模板内置名为Huawei AR600 Series: General的仪表盘(template_net_huawei_ar600_snmp.yaml),共三页:
- Overview 页:ICMP/SNMP 可用性大数字、Uptime、System name/description/contact 卡片,以及 Temperature、CPU utilization、Memory utilization 三张趋势图;
Network interfaces蜂巢图以Interface*: Operational status为主数据源,按 up(1)/down(2) 等状态着色; - NQA 页:RTT avg / RTT max / Jitter avg / Packet loss 四组蜂巢图(含 0–500ms、0–100ms、0–100% 等分层阈值配色)与对应四张 svggraph 趋势图,
NQA [*]: RTT avg等通配数据源自动聚合所有 NQA 测试实例; - COS 页:Enqueued / Matched / Discarded bytes rate 三组蜂巢图与趋势图,直接反映各接口各队列的 QoS 状态。
部署建议与源码视角
部署步骤(按 README.md 与 Zabbix 8.0 官方流程):在华为 AR600 设备上启用 SNMP(配置只读 community 或 SNMPv3 用户),在 Zabbix 前端导入本模板 YAML,将模板链接到对应主机并配置 SNMP 接口与宏覆盖即可。导入后建议重点关注三类对象的首次数据是否正常:
- NQA 无数据:请确认设备上已配置 NQA 测试实例(admin/test),
huawei.ar600.nqa.walk的 JavaScript 解析依赖其 OID 后缀中的 ASCII 编码格式; - CBQoS 无数据:请确认接口启用了 QoS 队列并暴露
cbqosMatched/Enqueued/Discarded计数,且方向宏默认^OUT$符合预期(如需同时监控入向,改{$HUAWEI.AR600.COS.DIRECTION.MATCHES}为^(IN|OUT)$); - MPU 无数据:确认实体名匹配
SRU.*,否则需调整 LLD 过滤正则。
底层实现佐证:模板大量使用的SNMP walk to JSON、Change per second、JSONPath等预处理类型,由 Zabbix 服务端 src/libs/zbxpreproc/pp_execute.c 与 src/libs/zbxpreproc/preproc_snmp.c 实现——后者包含 walk 结果逐行解析(preproc_snmp_parse_line)与按 OID 取值转换(preproc_snmp_value_from_walk)等逻辑;ICMP 可用性项则由 src/libs/zbxpinger/pinger.c 的批量探测机制支撑。理解这些实现有助于在设备输出异常时快速定位是采集、解析还是过滤环节的问题。
最后,若在使用中发现模板问题,可到 Zabbix 官方支持站点提交报告,或在官方论坛的 suggestions-and-feedback 版块讨论(见 README.md)。
- 指标监控
- 可观测性
- 告警
- 运维
【免费下载链接】zabbix
Real-time monitoring of IT components and services, such as networks, servers, VMs, applications and the cloud.
相关推荐
Zabbix 模板实战:Network Generic Device by SNMP —— 通用网络设备 SNMP 监控方案全解
Zabbix 模板实战:Network Generic Device by SNMP —— 通用网络设备 SNMP 监控方案全解 本文以官方模板 Network
指标监控可观测性告警运维Zabbix "Generic by SNMP" 通用网络设备监控模板全解析:宏、监控项、触发器与 SNMP Trap 兜底机制
Zabbix "Generic by SNMP" 通用网络设备监控模板全解析:宏、监控项、触发器与 SNMP Trap 兜底机制 导读 本文以 Zabbix 官
指标监控可观测性告警运维Zabbix Arista by SNMP 模板全解析:8.0 开箱即用的 Arista 网络设备监控方案
Zabbix Arista by SNMP 模板全解析:8.0 开箱即用的 Arista 网络设备监控方案 导读 本文围绕 Zabbix 8.0 官方模板「Ar
指标监控可观测性告警运维
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考