- 指标监控
- 可观测性
- 告警
- 运维
【免费下载链接】zabbix
Real-time monitoring of IT components and services, such as networks, servers, VMs, applications and the cloud.
导读
本文围绕 Zabbix 8.0 官方开箱即用模板MikroTik hEX PoE by SNMP展开,完整解读该模板的监控范围、配置方法、全部宏与触发器语义,并结合仓库中的 YAML 模板源码剖析其低层实现原理。阅读本文后,你将掌握如何在 Zabbix 中一键接入 MikroTik hEX PoE(RouterOS L4 路由器),并能按需调整 CPU / 内存 / 温度 / 磁盘 / 网络接口 / 无线 AP / LTE 调制解调器各类阈值宏,理解低层数据采集链路(SNMP walk → JSON → 依赖项),具备根据源码调优模板的能力。
关联文档:templates/net/mikrotik/mikrotik_hEX_PoE_snmp/README.md,模板定义:template_net_mikrotik_hEX_PoE_snmp.yaml。
模板概述与适用场景
监控对象
本模板用于监控 MikroTik hEX PoE 以太网路由器,设备核心特性如下:
- 5 个千兆以太网口,其中 4 个端口支持 PoE 供电输出;
- 1 个 SFP 光口、USB 接口;
- 800MHz CPU、128MB RAM;
- 运行 RouterOS L4 许可版本。
从 YAML 元数据看,该模板由官方 Zabbix 模板工具 "Templator" 生成,wizard_ready: 'YES',模板 UUID 为ff57532daf924030b364e3b75acb74c4,归属模板组Templates/Network devices。
使用到的 MIB
模板依赖四类标准 / 厂商 MIB(见 YAML 头部 description):
| MIB | 用途 |
|---|---|
| HOST-RESOURCES-MIB | CPU、内存、存储、硬件 uptime(hrSystemUptime) |
| SNMPv2-MIB | sysUpTime、sysDescr、sysName、sysLocation 等系统信息 |
| MIKROTIK-MIB | RouterOS 版本、RouterBOARD 序列号、固件、温度、无线 AP、LTE 调制解调器等 MikroTik 私有 OID |
| IF-MIB | 网络接口状态、流量、速率、错误包 |
版本要求与测试情况
- 版本要求:Zabbix 8.0 及以上(README "Requirements" 明确标注);
- 测试版本:模板已在 MikroTik hEX PoE 真机上测试(README "Tested versions")。
快速配置:导入模板并接入主机
按照 Zabbix 官方“开箱即用模板”的标准流程操作(详见 README.md 中的 Configuration 指引):
- 在 Zabbix 前端Data collection → Templates中导入模板文件
template_net_mikrotik_hEX_PoE_snmp.yaml; - 创建主机并链接模板 "MikroTik hEX PoE by SNMP";
- 为主机配置 SNMP 接口(IP、端口 161、SNMP v1/v2c community),并确保 Zabbix server 能访问设备 161/UDP 端口;
- 设备端(RouterOS)需启用 SNMP 服务。README 要求参考厂商官方文档完成 RouterOS 侧配置,这里不再展开。
接入后,模板会自动完成设备发现(LLD)、指标采集、触发报警与图形绘制,无需手工逐项创建监控项。
宏(Macros)详解与调优
模板定义了全部阈值与过滤宏,YAML 中为每个宏提供了配置校验(config段:类型、分组、标签、取值范围正则),可在主机或模板级别覆盖。以下按用途分组整理:
阈值类宏
| 宏 | 默认值 | 说明 |
|---|---|---|
{$VFS.FS.PUSED.MAX.CRIT} | 90 | 文件系统占用率临界阈值(%) |
{$VFS.FS.PUSED.MAX.WARN} | 80 | 文件系统占用率告警阈值(%) |
{$CPU.UTIL.CRIT} | 90 | CPU 利用率临界阈值(%) |
{$MEMORY.UTIL.MAX} | 90 | 内存利用率最大阈值(%) |
{$TEMP_CRIT} | 60 | 温度临界阈值(℃) |
{$TEMP_WARN} | 50 | 温度告警阈值(℃) |
{$TEMP_CRIT_LOW} | 5 | 低温临界阈值(℃) |
{$TEMP_CRIT:"CPU"} | 75 | CPU 温度临界阈值(上下文宏) |
{$TEMP_WARN:"CPU"} | 70 | CPU 温度告警阈值 |
{$ICMP_LOSS_WARN} | 20 | ICMP 丢包率告警阈值(%) |
{$ICMP_RESPONSE_TIME_WARN} | 0.15 | 平均 ICMP 响应时间告警阈值(秒) |
{$IF.UTIL.MAX} | 90 | 网络接口利用率触发阈值(%) |
{$IF.ERRORS.WARN} | 2 | 错误包速率告警阈值,可带接口名上下文 |
{$LTEMODEM.RSSI.MIN.WARN} | -100 | LTE 调制解调器 RSSI 告警下限(dBm) |
{$LTEMODEM.RSRP.MIN.WARN} | -100 | LTE 调制解调器 RSRP 告警下限(dBm) |
{$LTEMODEM.RSRQ.MIN.WARN} | -20 | LTE 调制解调器 RSRQ 告警下限(dB) |
{$LTEMODEM.SINR.MIN.WARN} | 0 | LTE 调制解调器 SINR 告警下限(dB) |
{$SNMP.TIMEOUT} | 5m | SNMP 可用性触发的时间窗口 |
{$SNMP.UPTIME.WARN} | 10m | “主机已重启”问题自动恢复的 uptime 阈值 |
{$IFCONTROL} | 1 | 置0可关闭指定接口的链路状态触发 |
值得注意的细节(摘自 YAMLmacros段):
- 阈值宏均配置了数值校验正则
^-?([0-9]+|(([0-9]+)\.([0-9]+)))$,支持整数与小数; {$IFCONTROL}为 CHECKBOX 类型,选中为1、取消为0;{$NET.IF.IFNAME.NOT_MATCHES}默认值为正则(^Software Loopback Interface|^NULL[0-9.]*$|^[Ll]o[0-9.]*$|^[Ss]ystem$|^Nu[0-9.]*$|^veth[0-9a-z]+$|docker[0-9]+|br-[a-z0-9]{12}),用于默认排除 loopback、null、docker veth 与 docker0 网桥——README 表格中因内容过长提示“Macro too long. Please see the template.”,实际值见 YAML 第 2024-2025 行。
发现过滤类宏(网络接口发现)
| 宏 | 默认值 | 说明 |
|---|---|---|
{$NET.IF.IFNAME.MATCHES} | ^.*$ | 按接口名包含过滤 |
{$NET.IF.IFNAME.NOT_MATCHES} | 上述长正则 | 按接口名排除过滤 |
{$NET.IF.IFOPERSTATUS.MATCHES} | ^.*$ | 按操作状态包含过滤 |
{$NET.IF.IFOPERSTATUS.NOT_MATCHES} | ^6$ | 排除notPresent(6) |
{$NET.IF.IFADMINSTATUS.MATCHES} | ^.* | 按管理状态包含过滤 |
{$NET.IF.IFADMINSTATUS.NOT_MATCHES} | ^2$ | 排除down(2)管理状态 |
{$NET.IF.IFDESCR.MATCHES} | .* | 按描述包含过滤 |
{$NET.IF.IFDESCR.NOT_MATCHES} | CHANGE_IF_NEEDED | 按描述排除(按需修改) |
{$NET.IF.IFALIAS.MATCHES} | .* | 按别名包含过滤 |
{$NET.IF.IFALIAS.NOT_MATCHES} | CHANGE_IF_NEEDED | 按别名排除(按需修改) |
{$NET.IF.IFTYPE.MATCHES} | .* | 按接口类型包含过滤 |
{$NET.IF.IFTYPE.NOT_MATCHES} | CHANGE_IF_NEEDED | 按接口类型排除(按需修改) |
此外还有两个无线 / LTE 相关过滤宏:
{$IFNAME.WIFI.MATCHES}(默认WIFI):用于 CAPsMAN AP 信道发现,可在主机级覆盖;{$IFNAME.LTEMODEM.MATCHES}(默认^lte):用于 LTE 调制解调器发现,可在主机级覆盖。
调优方法:在主机(或链接模板)的Macros页中覆盖任一宏即可,无需修改模板文件。
监控项(Items)全解析
模板的固定监控项(不依赖发现)如下表所示,均已同步自 README 并补充了 YAML 中的 OID / 类型 / 预处理细节:
| 监控项 | 类型 | Key | OID / 说明 |
|---|---|---|---|
| SNMP walk 网络接口 | SNMP agent | net.if.walk | walk[1.3.6.1.2.1.2.2.1.8, ...],IF-MIB 接口发现母项,history: 0,不落历史库 |
| SNMP walk 无线接口 | SNMP agent | net.if.wireless.walk | walk[1.3.6.1.4.1.14988.1.1.14.1.1.2, ...],无线 / LTE / AP 发现母项 |
| SNMP walk 系统 CPU | SNMP agent | system.cpu.walk | walk[1.3.6.1.2.1.25.3.3.1.1, 1.3.6.1.2.1.25.3.3.1.2],HOST-RESOURCES-MIB |
| SNMP walk 已挂载文件系统 | SNMP agent | vfs.fs.walk | walk[1.3.6.1.2.1.25.2.3.1.3, ...],HOST-RESOURCES-MIB |
| 已用内存 | SNMP agent | vm.memory.used[hrStorageUsed.Memory] | get[1.3.6.1.2.1.25.2.3.1.6.65536],预处理乘1024(hrStorageAllocationUnits → 字节),单位 B |
| 总内存 | SNMP agent | vm.memory.total[hrStorageSize.Memory] | get[1.3.6.1.2.1.25.2.3.1.5.65536],预处理乘1024,单位 B |
| 内存利用率 | Calculated | vm.memory.util[memoryUsedPercentage.Memory] | 公式last(//vm.memory.used[...])/last(//vm.memory.total[...])*100,单位 % |
| 操作系统 | SNMP agent | system.sw.os[mtxrLicVersion.0] | get[1.3.6.1.4.1.14988.1.1.4.4.0],MIKROTIK-MIB 软件版本,1d 心跳去重,关联资产 OS |
| 硬件型号 | SNMP agent | system.hw.model | get[1.3.6.1.2.1.1.1.0](sysDescr),关联资产 MODEL |
| 硬件序列号 | SNMP agent | system.hw.serialnumber | get[1.3.6.1.4.1.14988.1.1.7.3.0],RouterBOARD 序列号,关联资产 SERIALNO_A |
| 固件版本 | SNMP agent | system.hw.firmware | get[1.3.6.1.4.1.14988.1.1.7.4.0],1d 心跳去重 |
| Uptime(网络) | SNMP agent | system.net.uptime[sysUpTime.0] | get[1.3.6.1.2.1.1.3.0],预处理乘0.01,单位 uptime,30s 轮询 |
| Uptime(硬件) | SNMP agent | system.hw.uptime[hrSystemUptime.0] | get[1.3.6.1.2.1.25.1.1.0],HOST-RESOURCES-MIB;预处理“检查不支持值 → 失败置 0”,再乘0.01 |
| SNMP traps(fallback) | SNMP trap | snmptrap.fallback | 收集未被其他 snmptrap 项匹配的 trap |
| 系统位置 | SNMP agent | system.location[sysLocation.0] | get[1.3.6.1.2.1.1.6.0],12h 心跳去重,关联资产 LOCATION |
| 系统联系人 | SNMP agent | system.contact[sysContact.0] | get[1.3.6.1.2.1.1.4.0],12h 心跳去重,关联资产 CONTACT |
| 系统对象 ID | SNMP agent | system.objectid[sysObjectID.0] | get[1.3.6.1.2.1.1.2.0],12h 心跳去重 |
| 系统名称 | SNMP agent | system.name | get[1.3.6.1.2.1.1.5.0],12h 心跳去重,关联资产 NAME |
| 系统描述 | SNMP agent | system.descr[sysDescr.0] | get[1.3.6.1.2.1.1.1.0],12h 心跳去重 |
| SNMP agent 可用性 | Zabbix internal | zabbix[host,snmp,available] | 0=不可用,1=可用,2=未知,配合值映射zabbix.host.available |
| ICMP ping | Simple check | icmpping | 0=失败,1=成功,值映射Service state |
| ICMP 丢包率 | Simple check | icmppingloss | 单位 % |
| ICMP 响应时间 | Simple check | icmppingsec | 单位 s |
低层实现要点:SNMP walk 母项 + 依赖项
从 YAML 源码可以清楚看到该模板的采集架构:每个发现规则都对应一个“SNMP walk 母项”(master item),例如net.if.walk、net.if.wireless.walk、system.cpu.walk、vfs.fs.walk。母项通过 Zabbix 8.0 的walk[...]SNMP OID 语法一次批量抓取多个 OID 列,history: '0'不保存历史数据,仅作为发现 / 依赖数据源。其意义在于:
- 一次网络往返即可取得接口状态、流量、错误、速率等全部 OID 列,显著降低对设备的 SNMP 轮询压力;
- 各“依赖型”(DEPENDENT)监控项通过
SNMP_WALK_VALUE预处理从母项 JSON 中按 OID 提取自身取值(如1.3.6.1.2.1.31.1.1.1.6.{#SNMPINDEX}对应 ifHCInOctets),再执行“每秒变化”“乘 8(字节→比特)”“心跳去重”等后续预处理。
这解释了 README 中那些“SNMP walk value”预处理行的来源,也便于你排查“某接口不更新”之类问题时定位到母项。
触发器(Triggers)语义与表达式
固定触发器
| 名称 | 严重级别 | 表达式要点 |
|---|---|---|
| MikroTik: High memory utilization | Average | min(vm.memory.util,5m)>{$MEMORY.UTIL.MAX} |
| MikroTik: Operating system description has changed | Info | 最近两值不等且长度>0(依赖 System name has changed),手动关闭 |
| MikroTik: Device has been replaced | Info | system.hw.serialnumber变化,手动关闭 |
| MikroTik: Firmware has changed | Info | system.hw.firmware变化,手动关闭 |
| MikroTik: Host has been restarted | Warning | 见下方详解,依赖 No SNMP data collection |
| MikroTik: System name has changed | Info | system.name变化,手动关闭 |
| MikroTik: No SNMP data collection | Warning | max(zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0,依赖 ICMP 不可达 |
| MikroTik: Unavailable by ICMP ping | High | max(icmpping,#3)=0(最近三次超时) |
| MikroTik: High ICMP ping loss | Warning | min(icmppingloss,5m)>{$ICMP_LOSS_WARN} and ...<100,依赖 ICMP 不可达 |
| MikroTik: High ICMP ping response time | Warning | avg(icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN},依赖丢包 / 不可达 |
“Host has been restarted”表达式值得单独说明(YAML 第 2785-2806 行):
(last(hw_uptime)>0 and change(hw_uptime)<0 and last(hw_uptime,#2)<42949672.96-(lastclock(hw_uptime)-lastclock(hw_uptime,#2))) or (last(hw_uptime)=0 and change(net_uptime)<0 and last(net_uptime,#2)<42949672.96-(lastclock(net_uptime)-lastclock(net_uptime,#2)))它同时判断硬件 uptime(hrSystemUptime)与网络 uptime(sysUpTime)两个计数器的回退:若下降且上一次取值未接近 32 位计数器上限(2^32 百分之一秒 ≈ 497 天),则判定主机重启,从而规避计数器翻转(wrap-around)造成的误报;恢复表达式为 uptime 超过{$SNMP.UPTIME.WARN}时自动关闭。
触发器依赖关系
模板为触发器设置了依赖(dependencies)以抑制告警风暴,关系图可概括为:
- ICMP 不可达(High)为根;
- No SNMP data collection → 依赖 ICMP 不可达;
- Host has been restarted → 依赖 No SNMP data collection;
- ICMP 丢包 / 响应时间 → 依赖 ICMP 不可达(响应时间还依赖丢包)。
低层发现规则(LLD)逐个拆解
模板共包含 7 条发现规则,全部自带 item prototype、trigger prototype 与 graph prototype。
1. CPU discovery(hrProcessorLoad.discovery)
- 母项
system.cpu.walk,预处理SNMP_WALK_TO_JSON+ 1h 心跳去重; - 原型监控项
system.cpu.util[hrProcessorLoad.{#SNMPINDEX}]:读取1.3.6.1.2.1.25.3.3.1.2.{#SNMPINDEX},HOST-RESOURCES-MIB hrProcessorLoad(近一分钟 CPU 非空闲百分比); - 原型触发器
MikroTik: #{#SNMPINDEX}: High CPU utilization(Warning):min(...,5m)>{$CPU.UTIL.CRIT}; - 自带原型图形“CPU utilization”(渐变线)。
2. Temperature CPU discovery(mtxrHlProcessorTemperature.discovery)
- OID
walk[1.3.6.1.4.1.14988.1.1.3.11],预处理失败(SNMP walk 无数据)时Discard value——因为并非所有 MikroTik 硬件都提供 CPU 温度,此举用于避免产生“不支持的监控项”(README 明确说明,入门型号如 RB750、RB450G 可能缺失); - 原型监控项
sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}]:预处理乘0.1(设备原始值 10 倍放大),3m 心跳去重,单位 °C; - 原型触发器 3 个:超过
{$TEMP_WARN:"CPU"}(Warning)、超过{$TEMP_CRIT:"CPU"}(High)、低于{$TEMP_CRIT_LOW:"CPU"}(Average),均带 -3℃ 迟滞的恢复表达式。
3. Temperature sensor discovery(mtxrHlTemperature.discovery)
- OID
walk[1.3.6.1.4.1.14988.1.1.3.10],同样在失败时 Discard value; - 原型监控项
sensor.temp.value[mtxrHlTemperature.{#SNMPINDEX}](设备温度),预处理乘0.1+ 3m 心跳去重; - 原型触发器语义与 CPU 温度一致,但使用无上下文的
{$TEMP_WARN}、{$TEMP_CRIT}、{$TEMP_CRIT_LOW}宏(对应 “Device” 上下文)。
4. LTE modem discovery(mtxrLTEModem.discovery)
- 基于
net.if.wireless.walk母项,SNMP_WALK_TO_JSON提取{#IFNAME}、{#IFALIAS}、{#IFTYPE}; - 发现过滤器:
{#IFNAME}匹配{$IFNAME.LTEMODEM.MATCHES}(默认^lte)且{#IFTYPE}等于^1$(other 类型)——用于精确定位 LTE 调制解调器接口; - 4 个原型监控项及 OID(均来自 MIKROTIK-MIB,前缀
1.3.6.4.1.14988.1.1.16.1.1):
| 监控项 | OID 后缀 | 单位 |
|---|---|---|
lte.modem.rssi[mtxrLTEModemSignalRSSI.{#SNMPINDEX}] | .2 | dBm |
lte.modem.rsrp[mtxrLTEModemSignalRSRP.{#SNMPINDEX}] | .4 | dBm |
lte.modem.rsrq[mtxrLTEModemSignalRSRQ.{#SNMPINDEX}] | .3 | dB |
lte.modem.sinr[mtxrLTEModemSignalSINR.{#SNMPINDEX}] | .7 | dB |
- 4 个原型触发器(均为 Warning):对应信号指标低于
{$LTEMODEM.RSSI/RSRP/RSRQ/SINR.MIN.WARN}时告警; - 原型图形“Modem Signal”:同时绘制 SINR、RSRQ、RSRP、RSSI 四条曲线(不同颜色)。
5. AP channel discovery(mtxrWlAp.discovery)
- 基于
net.if.wireless.walk,过滤器:{#IFADMINSTATUS}等于^1$(up)且{#IFTYPE}等于^71$(ieee80211); - 原型监控项:
ssid.name[mtxrWlApSsid...](SSID)、ssid.band[mtxrWlApBand...](频段)、ssid.noise[mtxrWlApNoiseFloor...](噪声底)、ssid.regclient[mtxrWlApClientCount...](已注册客户端)、ssid.authclient[mtxrWlApAuthClientCount...](已认证客户端),分别读取1.3.6.1.4.1.14988.1.1.1.3.1.{4,8,9,6,11}各列。
6. CAPsMAN AP channel discovery(mtxrWlCMChannel.discovery)
- 基于
net.if.wireless.walk,过滤器:{#IFNAME}匹配{$IFNAME.WIFI.MATCHES}(默认WIFI)且{#IFTYPE}等于^1$; - 原型监控项:
ssid.channel[mtxrWlCMChannel...](信道,列.5)、ssid.state[mtxrWlCMState...](接口状态,列.4)、ssid.regclient[...](列.2)、ssid.authclient[...](列.3); - 原型触发器
AP interface ... is not running(Warning):last(ssid.state[...])<>"running-ap",即无线接口状态偏离 running-ap 时告警(可能原因:接口被禁用、断电、链路 down)。
7. Storage discovery(storage.discovery)
- 基于
vfs.fs.walk母项,SNMP_WALK_TO_JSON提取{#FSNAME}、{#ALLOC_UNITS}、{#STORAGE_TYPE}; - 过滤器(OR 关系):
{#STORAGE_TYPE}匹配.+4$或.+hrStorageFixedDisk——仅发现物理磁盘类型; - 原型监控项:
vfs.fs.used[hrStorageSize.{#SNMPINDEX}](已用,乘 1024,B)、vfs.fs.total[hrStorageSize.{#SNMPINDEX}](总量,乘 1024,B)、vfs.fs.pused[...](Calculated 利用率 %); - 原型触发器:“Disk space is low”(Warning,依赖 critical)与“Disk space is critically low”(Average)。表达式采用双重条件:占用率超过
{$VFS.FS.PUSED.MAX.{CRIT|WARN}:"Disk-{#SNMPINDEX}"}且(剩余空间低于{$VFS.FS.FREE.MIN.{CRIT|WARN}:"Disk-{#SNMPINDEX}"}或timeleft(...,1h,100)<1d按当前增速 24 小时内将写满); - 原型图形“Disk space usage”为 3D 饼图。
8. Network interfaces discovery(net.if.discovery)
- 基于
net.if.walk母项,SNMP_WALK_TO_JSON提取{#IFOPERSTATUS}、{#IFADMINSTATUS}、{#IFALIAS}、{#IFNAME}、{#IFDESCR}、{#IFTYPE}; - 过滤器依次使用上述 12 个
{$NET.IF.*}宏做包含 / 排除正则匹配; - 原型监控项(IF-MIB,全部 DEPENDENT,母项
net.if.walk):
| 监控项 | 提取 OID 列 | 预处理 |
|---|---|---|
net.if.status[ifOperStatus.{#SNMPINDEX}] | 1.3.6.1.2.1.2.2.1.8 | 值映射 IF-MIB::ifOperStatus |
net.if.in[ifHCInOctets.{#SNMPINDEX}] | 1.3.6.1.2.1.31.1.1.1.6 | 每秒变化 ×8(bps) |
net.if.out[ifHCOutOctets.{#SNMPINDEX}] | 1.3.6.1.2.1.31.1.1.1.10 | 每秒变化 ×8(bps) |
net.if.in.errors[ifInErrors.{#SNMPINDEX}] | 1.3.6.1.2.1.2.2.1.14 | 每秒变化 + 3m 心跳去重 |
net.if.out.errors[ifOutErrors.{#SNMPINDEX}] | 1.3.6.1.2.1.2.2.1.20 | 每秒变化 + 3m 心跳去重 |
net.if.in.discards[ifInDiscards.{#SNMPINDEX}] | 1.3.6.1.2.1.2.2.1.13 | 每秒变化 + 3m 心跳去重 |
net.if.out.discards[ifOutDiscards.{#SNMPINDEX}] | 1.3.6.1.2.1.2.2.1.19 | 每秒变化 + 3m 心跳去重 |
net.if.type[ifType.{#SNMPINDEX}] | 1.3.6.1.2.1.2.2.1.3 | 值映射 IF-MIB::ifType + 1d 心跳去重 |
net.if.speed[ifHighSpeed.{#SNMPINDEX}] | 1.3.6.1.2.1.31.1.1.1.15 | ×1000000(Mbps→bps)+ 1h 心跳去重 |
- 原型触发器 4 个:
- Link down(Average,手动关闭):
{$IFCONTROL:"{#IFNAME}"}=1且操作状态为down(2)且最近两值不同(避免对“一直 down”的接口反复告警); - High bandwidth usage(Warning):入 / 出流量 15 分钟均值超过
{$IF.UTIL.MAX:"{#IFNAME}"}/100 × 接口速率,且速率大于 0; - High error rate(Warning):5 分钟错误包速率大于
{$IF.ERRORS.WARN:"{#IFNAME}"},低于 80% 阈值时自动恢复; - Ethernet has changed to lower speed(Info):速率下降且接口类型为以太网族(ifType ∈ {6 ethernetCsmacd, 7, 11, 62 fastEther, 69 fastEtherFX, 117 gigabitEthernet}),疑似自协商问题;
- Link down(Average,手动关闭):
- 原型图形“Network traffic”:入 / 出流量(左右轴)+ 错误 / 丢弃包。
模板自带仪表盘与值映射
- 模板内置名为Network interfaces的仪表盘(dashboard),自动展示各接口的“Network traffic”图形;
- 自带值映射(valuemaps):
IF-MIB::ifOperStatus(up/down/unknown/dormant/notPresent/lowerLayerDown)、IF-MIB::ifType(290 种接口类型)、Service state(Down/Up)、zabbix.host.available(not available/available/unknown)。
告警依赖与降噪设计
模板整体遵循“先连通性、后指标”的告警降噪策略:
- ICMP 不可达(High)作为最底层触发,任何下层触发都依赖它;
- SNMP 采集失败(Warning)依赖 ICMP 不可达,避免设备离线时叠加无谓的 SNMP 告警;
- 各类指标触发(重启、丢包、延迟、接口、磁盘)逐级依赖上层可用性触发;
- 大量“变化类”触发(系统名、固件、序列号、OS 描述)标记为Manual close,需要人工确认关闭,适合资产管理 / 变更审计场景。
总结与延伸
- 官方模板覆盖 hEX PoE 的“系统健康(CPU/内存/温度)→ 存储 → 网络接口 → 无线 AP → LTE 调制解调器 → 连通性”全栈监控,开箱即用;
- 数据采集采用“SNMP walk 母项 + 依赖项 + SNMP_WALK_VALUE 提取”架构(见 template_net_mikrotik_hEX_PoE_snmp.yaml),轮询效率高、扩展性强;
- 若部署同系列其他型号,可参考仓库 templates/net/mikrotik 下 50+ 个 MikroTik 模板(hEX、hEX S、hEX PoE lite、CRS、CCR、RB 系列等),结构与本模板一致,便于对照学习;
- 通用型模板 mikrotik_snmp/README.md 还记录了部分已知问题(如 RouterOS 6.28 及以下版本不填充 ifHighSpeed、RouterOS 6.38.5 的 941/951G 无温度传感器),遇到“接口速率或温度缺失”时可作为排查参考。
- 指标监控
- 可观测性
- 告警
- 运维
【免费下载链接】zabbix
Real-time monitoring of IT components and services, such as networks, servers, VMs, applications and the cloud.
相关推荐
Zabbix 监控 MikroTik PowerBox 路由器:基于 SNMP 模板的部署、宏调优与 LLD 深度解析
Zabbix 监控 MikroTik PowerBox 路由器:基于 SNMP 模板的部署、宏调优与 LLD 深度解析 本篇技术指南围绕当前仓库 templat
指标监控可观测性告警运维Zabbix 官方模板解析:MikroTik RB2011iLS-IN 路由器 SNMP 监控全指南
Zabbix 官方模板解析:MikroTik RB2011iLS IN 路由器 SNMP 监控全指南 导读 本文围绕开源 Zabbix 仓库中随附的官方模板 M
指标监控可观测性告警运维使用 Zabbix 8.0 官方 SNMP 模板监控 MikroTik CCR1036-12G-4S-EM 核心路由器:宏、监控项、触发器与发现规则全解析
使用 Zabbix 8.0 官方 SNMP 模板监控 MikroTik CCR1036 12G 4S EM 核心路由器:宏、监控项、触发器与发现规则全解析 导读
指标监控可观测性告警运维
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考