用 Zabbix 6.2 模板监控 MikroTik RB260GS v1.17 交换机:SNMP 接口发现、带宽利用率与链路告警全解析
发布时间:2026/10/17 2:12:42 锦皓数字建站

【免费下载链接】community-templatesZabbix Community Templates repository项目地址https://gitcode.com/gh_mirrors/co/community-templates点击查看免费下载本篇技术指南围绕 community-templates 仓库中面向老款 MikroTik RB260 交换机固件 v1.17的官方模板展开讲解其基于 SNMP 的接口自动发现机制、10 类接口原型监控项、三条核心触发器链路 down、速率下降、带宽利用率过高的表达式原理以及宏与值映射表的调优方法。读完本文你将能够把该模板一键导入 Zabbix 6.2正确配置 SNMP 主机并理解每一行告警表达式背后的含义从而实现对 RB260GS 交换机的开箱即用式监控。模板概览与适用场景该模板位于仓库的 Network_Devices/Mikrotik/template_mikrotik_rb260gs_v1.17/6.2/ 目录下包含两个文件README.md模板的使用说明宏、发现规则、触发器概要template_mikrotik_rb260_v1_17.yamlZabbix 6.2 官方导出格式的完整模板定义。从 YAML 的description字段可以看到模板的设计初衷Monitor the old Mikrotik RB260 (fw1.17) switches即针对运行 v1.17 固件的老款 MikroTik RB260 交换机进行监控。模板内部名称为Mikrotik RB260 v1.17 by SNMP归属于Templates/Network devices模板组并通过classnetwork、targetmikrotik、targetrb260gs三组标签进行标记便于在 Zabbix 中按标签检索和分类。值得注意的一点是README 明确说明“There are no template links in this template”即该模板不链接任何其他模板自身是一个自包含的 SNMP 监控方案导入后直接挂载到主机即可使用。导入模板与配置前提导入步骤在 Zabbix 前端进入Data collection → Templates点击右上角Import选择 template_mikrotik_rb260_v1_17.yaml 文件导入后确认模板组Templates/Network devices下出现Mikrotik RB260 v1.17 by SNMP。主机侧 SNMP 配置该模板全部数据采集依赖 SNMPtype: SNMP_AGENT与type: SIMPLE/INTERNAL因此被监控的 RB260 交换机需要开启 SNMP 服务并配置可读的 community默认 public 即可满足只读采集允许 Zabbix server/proxy 所在网段访问交换机管理地址可达模板同时使用 ICMP 探测。在 Zabbix 中创建主机时为接口选择SNMP类型填入交换机 IP、端口 161 与 community然后链接Mikrotik RB260 v1.17 by SNMP模板。模板内的zabbix[host,snmp,available]内部监控项会自动跟踪 SNMP 检查的可用状态0不可用1可用2未知。宏体系两条核心宏与上下文宏用法模板在macros段定义了两条模板级宏README 中只列出了一条{$IF.UTIL.MAX}这里结合 YAML 把完整体系补齐宏默认值作用{$IF.UTIL.MAX}90网络接口利用率告警阈值百分比。当接口 15 分钟平均流量达到该百分比 × 接口速率时触发 “High bandwidth usage” 告警{$IFCONTROL}1接口链路告警总开关。置为 0 时不再对任何接口触发链路 down / 速率下降告警上下文宏Context macro的精妙用法YAML 中{$IFCONTROL}宏的description字段给出了一条重要提示Use {$IFCONTROL:Port1..5}0 to stop triggers from link down or speed change.这是 Zabbix 上下文宏context macro的典型应用由于发现规则会为每个接口生成{#IFDESCR}宏对应接口描述因此在具体主机上可以针对单个接口覆盖宏例如在主机级宏中定义{$IFCONTROL:ether1}0即可让该接口不参与 “Link down” 与 “Ethernet has changed to lower speed” 触发器的判定表达式第一项{$IFCONTROL:{#IFDESCR}}1会随之变为 0整条表达式短路为 false。同理{$IF.UTIL.MAX:{#IFDESCR}}也可按接口单独设定带宽告警阈值实现“骨干口 90%、接入口 70%”之类的差异化监控。主机级监控项系统信息与连通性基线在进入接口发现之前模板先定义了 14 个主机级监控项可分为三组。这些监控项大多直接引用标准 MIBSNMPv2-MIB不依赖 RouterOS 私有 MIB兼容性较好。连通性三件套SIMPLE 类型监控项key类型说明ICMP pingicmppingSIMPLE主机存活探测ICMP lossicmppinglossSIMPLE丢包率单位%FLOATICMP response timeicmppingsecSIMPLE响应时间单位sFLOAT三者均设置 1 周历史保留并打上componenthealth、componentnetwork标签。SNMPv2-MIB 系统组监控项keyOID轮询间隔预处理System contact detailssystem.contact[sysContact.0]1.3.6.1.2.1.1.4.015m12h 心跳去重System descriptionsystem.descr[sysDescr.0]1.3.6.1.2.1.1.1.015m12h 心跳去重Hardware model namesystem.hw.model1.3.6.1.2.1.1.1.01h1d 心跳去重System locationsystem.location[sysLocation.0]1.3.6.1.2.1.1.6.015m12h 心跳去重System namesystem.name1.3.6.1.2.1.1.5.015m12h 心跳去重System object IDsystem.objectid[sysObjectID.0]1.3.6.1.2.1.1.2.015m12h 心跳去重Uptimesystem.net.uptime[sysUpTime.0]1.3.6.1.2.1.1.3.030s乘数 0.01关键实现细节Inventory 联动System contact、Hardware model name、System location、System name分别设置了inventory_linkCONTACT / MODEL / LOCATION / NAME采集结果会自动回填主机资产清单Host inventory实现资产信息自动化心跳去重预处理所有字符串型系统项都使用DISCARD_UNCHANGED_HEARTBEAT在指定周期12h/1d内值未变化则不再存储新值既节省磁盘又保证“资产信息变更可追溯”Uptime 换算sysUpTime.0的单位是百分之一秒hundredths of a secondYAML 中通过MULTIPLIER预处理乘 0.01 换算为秒配合units: uptime由 Zabbix 自动格式化为可读的时长。SNMP 可用性内部项key: zabbix[host,snmp,available]该内部监控项跟踪 SNMP 检查在主机上的可用状态与主机列表中的可用性图标联动历史保留 7 天并配有zabbix.host.available值映射0not available1available2unknown。接口自动发现一条 LLD 规则覆盖全部网口发现规则定义discovery_rules: - name: Network interfaces discovery type: SNMP_AGENT snmp_oid: discovery[{#IFOPERSTATUS},1.3.6.1.2.1.2.2.1.8,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7,{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFTYPE},1.3.6.1.2.1.2.2.1.3] key: net.if.discovery delay: 1h description: Discovering interfaces该规则基于 IF-MIB 的接口表1.3.6.1.2.1.2.2.1做低级别发现LLD通过一次 SNMP 遍历同时提取四个宏宏来源 OID含义{#IFOPERSTATUS}1.3.6.1.2.1.2.2.1.8接口运行状态ifOperStatus{#IFADMINSTATUS}1.3.6.1.2.1.2.2.1.7接口管理状态ifAdminStatus{#IFDESCR}1.3.6.1.2.1.2.2.1.2接口描述ifDescr如 ether1、sfp1{#IFTYPE}1.3.6.1.2.1.2.2.1.3接口类型ifType发现周期为 1 小时新增/删除物理口后最多 1 小时内自动反映到监控项与触发器原型中。SNMP 索引通过{#SNMPINDEX}隐式获得供后续原型监控项的 OID 拼装使用。原型监控项全景10 项README 中列出的 10 项接口监控项在 YAML 中全部以item_prototypes实现关键定义如下表原型监控项keyOID含{#SNMPINDEX}轮询预处理链单位Admin statusnet.if.status[ifAdminStatus.{#SNMPINDEX}]1.3.6.1.2.1.2.2.1.715s——Bits receivednet.if.in[ifHCInOctets.{#SNMPINDEX}]1.3.6.1.2.1.2.2.1.1015s每秒变化率 → ×8BpsBits sentnet.if.out[ifHCOutOctets.{#SNMPINDEX}]1.3.6.1.2.1.2.2.1.1615s每秒变化率 → ×8bpsInbound packets discardednet.if.in.discards[ifInDiscards.{#SNMPINDEX}]1.3.6.1.2.1.2.2.1.1315s每秒变化率—Inbound packets with errorsnet.if.in.errors[ifInErrors.{#SNMPINDEX}]1.3.6.1.2.1.2.2.1.1415s每秒变化率—Outbound packets discardednet.if.out.discards[ifOutDiscards.{#SNMPINDEX}]1.3.6.1.2.1.2.2.1.1915s每秒变化率—Outbound packets with errorsnet.if.out.errors[ifOutErrors.{#SNMPINDEX}]1.3.6.1.2.1.2.2.1.2015s每秒变化率—Interface typenet.if.type[ifType.{#SNMPINDEX}]1.3.6.1.2.1.2.2.1.31h1d 心跳去重—Operational statusnet.if.status[ifOperStatus.{#SNMPINDEX}]1.3.6.1.2.1.2.2.1.815s——Speednet.if.speed[ifHighSpeed.{#SNMPINDEX}]1.3.6.1.2.1.2.2.1.55m1h 心跳去重bps三个值得展开的预处理细节流量单位换算“Bits received / Bits sent” 先经CHANGE_PER_SECOND将计数器差值换算为每秒字节数Bps再经MULTIPLIER乘 8 换算为 bit 流量。注意两个监控项单位写法不同——Bits received为Bps、Bits sent为bps从 YAML 逐字继承实际数值含义均为每秒比特使用时以图形展示为准错误/丢弃计数四个丢包与错误项均只做CHANGE_PER_SECOND换算直接以“每秒发生次数”观测异常增量比绝对值更直观接口状态值映射Operational status挂接IF-MIB::ifOperStatus值映射将数字状态翻译为up / down / unknown / dormant / notPresent / lowerLayerDown告警与展示更加可读。所有原型监控项都自动继承{#IFDESCR}生成componentnetwork、description{#IFDESCR}、interface{#IFDESCR}标签后续可基于标签做告警抑制、权限控制或仪表盘筛选。触发器原型三条告警的表达式拆解README 列出的三条触发器在 YAML 中均有完整的表达式、恢复表达式与依赖关系。下面逐条拆解。1. Link down优先级 AVERAGE{$IFCONTROL:{#IFDESCR}}1 and last(net.if.status[ifOperStatus.{#SNMPINDEX}])2 and (last(...,#1)last(...,#2))恢复表达式last(net.if.status[ifOperStatus.{#SNMPINDEX}])2 or {$IFCONTROL:{#IFDESCR}}0YAML 的description字段完整解释了设计意图仅当运行状态变为down值为 2时触发{$IFCONTROL:{#IFDESCR}}1允许管理员通过上下文宏将某个接口标记为“不重要”置 0 后不再触发last(#1)last(#2)保证只在状态从 up 变为 down时触发避免对长期处于 down 的“永远离线”接口如未插线的 sfp1反复告警。同时该触发器设置了manual_close: YES并在描述中给出提示若被人为手动关闭Acknowledge 后 close由于.diff语义下次轮询即使状态仍为 down 也不会再次触发需要状态再次翻转才会恢复。2. Ethernet has changed to lower speed优先级 INFOchange(net.if.speed[ifHighSpeed.{#SNMPINDEX}])0 and last(net.if.speed[...])0 and (last(net.if.type[...])6 or 7 or 11 or 62 or 69 or 117) and last(net.if.status[ifOperStatus.{#SNMPINDEX}])2 and {$IFCONTROL:{#IFDESCR}}1恢复表达式为change(speed)0 and last(speed,#2)0或运行状态恢复 up、或{$IFCONTROL}0。该触发器的目标是捕捉自协商降速接口速率较上一采集周期下降change0且当前速率仍大于 0同时接口类型限定为以太网类ifType 的 6/7/11/62/69/117 分别对应 ethernetCsmacd、iso88023Csmacd、fastEther、ds1 等常用物理介质类型并且接口当前不是 down。描述中给出的运维建议是“This might be a sign of autonegotiation issues. Ack to close.”——一旦出现此类告警应优先排查网线、对端设备速率协商与双工模式。该触发器依赖于 “Link down” 触发器dependencies段即链路本身 down 时不重复叠加降速告警避免告警风暴。3. High bandwidth usage优先级 WARNING(avg(net.if.in[ifHCInOctets.{#SNMPINDEX}],15m) ({$IF.UTIL.MAX:{#IFDESCR}}/100) * last(net.if.speed[...]) or avg(net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m) ({$IF.UTIL.MAX:{#IFDESCR}}/100) * last(net.if.speed[...])) and last(net.if.speed[...])0恢复表达式引入3% 迟滞hysteresisavg(in,15m) (({$IF.UTIL.MAX:{#IFDESCR}}-3)/100) * last(speed) and avg(out,15m) (({$IF.UTIL.MAX:{#IFDESCR}}-3)/100) * last(speed)计算逻辑取接口 15 分钟平均流量入/出任一方向与{$IF.UTIL.MAX}%乘以当前接口速率得到的“利用率红线”比较只有接口速率大于 0 才参与判定避免速率未协商成功时误报。恢复阈值比触发阈值低 3 个百分点防止流量在阈值附近抖动时告警频繁闪烁。该触发器同样依赖 “Link down”并且 README 中的{$IF.UTIL.MAX}默认 90 即指此处的默认红线。图形原型与随附仪表盘流量图形原型模板为每个发现的接口生成一张名为Interface {#IFDESCR}: Network traffic的图形原型graph_prototypes包含两条数据线数据线key颜色入方向net.if.in[ifHCInOctets.{#SNMPINDEX}]1A7C11绿出方向net.if.out[ifHCOutOctets.{#SNMPINDEX}]0288D1蓝随附仪表盘模板还导出了一个名为Network interfaces的仪表盘原型页面上放置一个 24×5 的GRAPH_PROTOTYPE组件直接引用上述流量图形原型。这意味着导入模板后无需手工建图即可通过主机 → Dashboards 直接查看所有接口的实时流量曲线非常适合快速落地 RB260 交换机的可视化管理。值映射表速查模板定义了四张值映射表用于将原始 SNMP 数值翻译为可读文本IF-MIB::ifOperStatus接口运行状态值含义1up2down4unknown5dormant6notPresent7lowerLayerDownIF-MIB::ifType接口类型6→ ethernetCsmacd模板中仅映射了该值。Service state0→ Down1→ Up。zabbix.host.available0→ not available1→ available2→ unknown。从源码结构看几个值得注意的实现细节基于 template_mikrotik_rb260_v1_17.yaml 的逐字段核对以下几点对实际运维有直接影响计数器命名与 OID 的对应关系Bits received的 key 名为ifHCInOctets但 OID 指向1.3.6.1.2.1.2.2.1.10即经典 32 位ifInOctetsifHCInOctets实际为.31Speed的 key 名为ifHighSpeed但 OID 指向.5即ifSpeedifHighSpeed实际为.31。从定义看这是模板作者沿用了通用接口模板的命名习惯而 OID 保持旧式对 RB260 这类低流量老交换机影响不大但若部署在持续高吞吐场景应留意 32 位计数器约每 34 分钟1 Gbps 满载翻转一次的边界问题无模板链接、自包含设计模板不依赖任何其他模板ICMP 与 SNMP 检查均在模板内部定义导入即用告警防抖设计完整三条触发器均设置manual_close: YES且存在明确的依赖链降速、带宽告警都依赖链路 down配合上下文宏可以做到“按接口精确控制告警开关”轮询节奏分层状态类15s、流量类15s、速率类5m、类型与系统类15m~1h按变化频率分层轮询兼顾实时性与 SNMP 负载。快速上手指南下载 template_mikrotik_rb260_v1_17.yaml在 Zabbix 6.2 前端导入确认 RB260 已开启 SNMP 且 community 可读新建主机接口类型选择 SNMP链接Mikrotik RB260 v1.17 by SNMP模板按需在主机级覆盖宏{$IF.UTIL.MAX}调整带宽红线{$IFCONTROL:etherX}0屏蔽某接口的链路/降速告警等待首次 LLD 发现最长 1 小时后即可在主机监控项与仪表盘中看到全部接口数据与告警。该模板完整覆盖了 RB260GS v1.17 交换机从连通性、系统资产信息到逐接口流量、错误计数、速率协商与带宽利用率的监控需求是 Zabbix 社区针对老款 MikroTik 交换机场景的成熟实践可直接复用于同类 RouterOS 设备的接入监控。赞分享【免费下载链接】community-templatesZabbix Community Templates repository项目地址https://gitcode.com/gh_mirrors/co/community-templates点击查看免费下载相关推荐Zabbix 8.0 通过 SNMP 监控 MikroTik RB260GS 交换机官方模板全解析Zabbix 8.0 通过 SNMP 监控 MikroTik RB260GS 交换机官方模板全解析 本文以当前开源仓库 templates/net/mikro指标监控可观测性告警运维使用 Zabbix SNMP 模板监控 MikroTik CRS326-24G-2SIN 交换机使用 Zabbix SNMP 模板监控 MikroTik CRS326 24G 2SIN 交换机 导读 本文基于当前仓库中 MikroTik CRS326 2指标监控可观测性告警运维Zabbix 模板实战用 SNMP 全面监控 MikroTik CRS112-8P-4S-IN 交换机Zabbix 模板实战用 SNMP 全面监控 MikroTik CRS112 8P 4S IN 交换机 本篇技术指南以 Zabbix 官方模板库中的 Mikr指标监控可观测性告警运维上一篇Noria为高性能 Web 应用打造的流式数据流系统——部署、客户端接入与源码架构解析下一篇巨型指令文件为何失败learn-harness-engineering 中的指令拆分与按需加载实践创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。