☰
Zabbix 监控 MikroTik 队列流量:Mikrotik-QUEUE 模板的 LLD 发现与速率换算原理
2026/10/17 2:27:35 网站建设 项目流程

【免费下载链接】community-templates

Zabbix Community Templates repository

项目地址:https://gitcode.com/gh_mirrors/co/community-templates
点击查看免费下载

导读

本文围绕 Zabbix 社区模板仓库中的Mikrotik-QUEUE模板展开,该模板通过 SNMP 自动发现(LLD)采集 MikroTik RouterOS 设备上所有 Simple Queue 的入向与出向流量,并自动生成每队列的实时速率折线图,是无需登录设备、纯 SNMP 轮询的轻量监控方案。读完本文,你将掌握该模板的 OID 结构、发现规则与采集项原型、速率换算(CHANGE_PER_SECOND × 8)的底层原理,以及如何在 Zabbix 5.4 中导入并挂载到 MikroTik 主机上完成队列流量图形化监控。

模板概述:为 MikroTik 队列流量绘图而生

Mikrotik-QUEUE 是收录于 community-templates 仓库Network_Devices/Mikrotik目录下的一款小型专用模板(5.4 说明文档),其官方描述为:

zabbix template for graphing queue traffic on mikrotik devices

即:为 MikroTik 设备上的队列流量提供绘图能力。该模板面向 RouterOS 的 Simple Queue(简单队列)场景,核心思路是利用 SNMP 对 MikroTik 私有 MIB 中的队列计数器表做低密度轮询,再通过 Zabbix 预处理把累计计数器换算为每秒速率,最终以图形方式呈现每个队列的流量曲线。

该模板同时提供 5.0、5.4、6.0 三个版本,分别在 5.0 XML、5.4 YAML 与 6.0 YAML 中分发,三者的采集逻辑与 OID 完全一致,仅在文件格式与宏变量命名上存在差异,可平滑迁移。

模板资产总览:极简结构,聚焦单点能力

从 5.4 README 的资产清单可以看到,该模板刻意保持极简:

资产类别内容
Macros used无(模板不依赖任何宏)
Template links无(不链接其他模板)
Discovery rules1 条:Queues
Items collected2 个采集项原型:Queue $1 (IN)、Queue $1 (OUT)
Triggers无(模板不内置任何告警触发器)

这种设计意味着该模板只负责"采集 + 出图",不负责告警。如果你需要针对某队列速率超限触发告警,需要在模板或主机层面自行补充触发器表达式。从 6.0 YAML 可以看出,采集项均携带Application: Queues标签,方便在 Zabbix 前端按应用过滤与归类。

发现规则(LLD):枚举设备上的全部队列

模板中的唯一发现规则名为Queues,类型为SNMP agent,其定义如下:

属性值
名称Queues
类型SNMP agent
Key.1.3.6.1.4.1.14988.1.1.2.1.1.2
更新间隔30 秒

从 5.4 YAML 中可以看到该规则在导出文件中的完整形态:

discovery_rules: - name: Queues type: SNMP_AGENT snmp_oid: 'discovery[{#SNMPVALUE},1.3.6.1.4.1.14988.1.1.2.1.1.2]' key: .1.3.6.1.4.1.14988.1.1.2.1.1.2 delay: '30'

这里有两个值得注意的实现细节:

  1. OID 归属:1.3.6.1.4.1.14988是 MikroTik 的私有企业号,14988.1.1.2对应 MikroTik 私有 MIB 中的队列表。该发现规则直接对队列表内的名称列(.1.1.2子节点)做 SNMP walk,从而枚举出设备上配置的全部 Simple Queue,并生成{#SNMPVALUE}宏供后续采集项原型引用。
  2. 发现机制:Zabbix 的 SNMP LLD 使用discovery[{#SNMPVALUE},<OID>]形式,将 OID 的每个实例值填充进{#SNMPVALUE}(即队列名称文本),同时{#SNMPINDEX}保留该实例的数字索引。更新间隔 30 秒意味着新增/删除队列后,最多 30 秒内即可反映到监控数据中。

采集项原型:入向与出向的双向速率

发现规则会为每个队列动态生成两个采集项,均标注LLD,更新间隔为 60 秒:

采集项名称类型Key更新间隔单位
Queue $1 (IN)SNMP agent.1.3.6.1.4.1.14988.1.1.2.1.1.8[{#SNMPVALUE}]60 秒bps
Queue $1 (OUT)SNMP agent.1.3.6.1.4.1.14988.1.1.2.1.1.9[{#SNMPVALUE}]60 秒bps

其中$1由 LLD 宏{#SNMPVALUE}填充,因此实际生成的采集项名称会形如Queue "lan" (IN)。两条原型分别轮询队列表内.1.1.8与.1.1.9两个计数器节点——按 RouterOS 私有 MIB 的队列表结构推断,二者分别对应队列的累计字节计数器的两个方向(IN / OUT),具体字段语义请以对应 RouterOS 版本的官方 MIB 文件为准。

在 5.4 YAML 中,两条原型除 OID 不同外配置完全相同,均包含单位bps与两步预处理。

预处理链:把计数器换算成每秒速率

该模板的精髓在于数据预处理:SNMP 计数器返回的是累计字节数,而图形需要展示的是每秒速率。模板通过两级预处理完成换算(见 5.4 YAML):

preprocessing: - type: CHANGE_PER_SECOND parameters: - '' - type: MULTIPLIER parameters: - '8'

两级处理的职责分别是:

  1. CHANGE_PER_SECOND(每秒变化量):对两次轮询间的累计计数器做差分并除以时间间隔,得到"每秒字节数"(B/s)。这一步把单调递增的计数器转换为可绘图的速率值,其参数为空字符串表示由 Zabbix 自动按两次采集时间差计算。
  2. MULTIPLIER(乘数):将上一步得到的 B/s 乘以8,把字节速率换算为比特速率(bps)。这是网络监控的惯例换算(1 Byte = 8 bit),与采集项units: bps的定义相互呼应,最终图形上展示的即为标准的 bit/s 流量曲线。

需要说明的是,CHANGE_PER_SECOND 依赖两次取值间的差值,因此采集间隔(60 秒)直接决定了速率曲线的平滑度与灵敏度——间隔越长曲线越平滑,对瞬时突发的敏感度越低。若需要更细粒度数据,可在模板中调低delay并同步考虑设备 SNMP 轮询负载。

图形原型:每个队列一张独立流量图

模板还定义了一个图形原型Queue {#SNMPVALUE}(见 5.4 YAML),随 LLD 为每个队列自动生成一张图,图内包含两条渐变折线:

图项引用的采集项绘制方式颜色Y 轴
OUT.1.3.6.1.4.1.14988.1.1.2.1.1.9[{#SNMPVALUE}]GRADIENT_LINE33FF33(绿)RIGHT
IN.1.3.6.1.4.1.14988.1.1.2.1.1.8[{#SNMPVALUE}]GRADIENT_LINEFF33FF(粉)RIGHT

两条曲线使用对比色(绿 / 粉)区分出向与入向,均采用GRADIENT_LINE渐变线绘制方式,聚合函数为MAX,并统一挂载到右轴(yaxisside: RIGHT)。导入模板后,打开主机 → 监测 → 图形页面即可按队列查看"绿进粉出"的双向流量曲线,无需手工建图。

在 Zabbix 5.4 中导入与使用

按照仓库根 README.md 的通用流程,使用步骤如下:

  1. 导入模板:在 Zabbix 前端进入数据采集 → 模板 → 导入,选择 5.4 YAML 文件导入(Zabbix 5.4 使用 YAML/JSON 格式;若运行 Zabbix 5.0,请改用同目录的 5.0 XML)。
  2. 确认设备侧 SNMP 就绪:在 MikroTik RouterOS 上通过WinBox或 CLI 启用 SNMP(/snmp set enabled=yes),并为 Zabbix 服务器指定可访问的 community 字符串,确保 Zabbix 能对1.3.6.1.4.1.14988企业 OID 子树执行 walk。
  3. 挂载模板:为主机配置Mikrotik-QUEUE模板,并正确填写主机的 SNMP community、端口与接口 IP。由于模板未定义任何宏,SNMP community 的配置依赖 Zabbix 主机层面的{$SNMP_COMMUNITY}宏或主机接口设置。
  4. 验证数据:在主机的最新数据页面确认 LLD 规则Queues正常产出队列实体、Queue xxx (IN)/(OUT)采集项有非空数值,随后到图形页面查看自动生成的Queue xxx图。

与 Queue Tree 模板的定位差异

在同一个 Mikrotik 目录 下,社区还提供了功能相邻的Mikrotik-Queue-Tree模板(见 5.4 YAML)。两者都基于1.3.6.1.4.1.14988.1.1.2队列家族 OID,但适用场景不同,可对照选择:

维度Mikrotik-QUEUE(本文模板)Mikrotik-Queue-Tree
监控对象Simple Queue(简单队列)Queue Tree(队列树,含 Dropped/Packets/HCBytes 等指标)
发现表 OID1.3.6.1.4.1.14988.1.1.2.1.1.21.3.6.1.4.1.14988.1.1.2.2.1.2
预处理CHANGE_PER_SECOND + MULTIPLIER 8CHANGE_PER_SECOND(丢包/包数),HCBytes 额外乘 8
宏依赖无{$UPDATEINT}、{$HISTORY}、{$TRENDS}
内置图形每队列 1 张双向速率图每队列 Dropped / HCBytes / Packets 三张图

如果你的网络以 Simple Queue 做限速与带宽管理,本模板即可满足双向速率可视化需求;若需要深挖 Queue Tree 的丢包与包速率指标,则应转向 Queue Tree 模板。

小结

Mikrotik-QUEUE 是一个结构精简、目的明确的 SNMP LLD 模板:一条发现规则枚举全部 Simple Queue,两个采集项原型分别轮询入/出向累计字节计数器,两级预处理把计数器换算为 bit/s 速率,图形原型自动生成绿进粉出的双向流量图,全程无宏、无触发器依赖,开箱即用。对需要在 Zabbix 中快速落地 MikroTik 队列流量可视化的场景,它是一个轻量且完全可复用的起点;结合源码级 YAML 还可按需调整采集间隔、颜色与聚合方式,实现定制化扩展。

【免费下载链接】community-templates

Zabbix Community Templates repository

项目地址:https://gitcode.com/gh_mirrors/co/community-templates
点击查看免费下载
上一篇:CodeGeeX VS Code 插件实战指南:四种模式、快捷键与提示模板深度解析
下一篇:微信聊天记录如何永久保存?用留痕(WeChatMsg)的完整本地导出指南

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询