)
【免费下载链接】community-templatesZabbix Community Templates repository项目地址https://gitcode.com/gh_mirrors/co/community-templates点击查看免费下载本文基于 Zabbix 社区模板仓库community-templates中的Mikrotik RouterOS模板位于 Network_Appliances/template_mikrotik_routeros系统讲解如何通过 SNMP 对 RouterBOARD 设备的 CPU/内存/温度/运行时长、物理与虚拟接口流量、PPPoE 在线客户端数量与单客户流量进行采集与可视化。读完本文你将掌握该模板 6 条 LLD 发现规则的过滤原理、20 余个监控项与计算型公式的配置细节并能据此独立完成设备接入、按核数调整 CPU 公式、以及为 PPPoE 客户端数扩展告警触发器。模板概览面向 RB 设备的 RouterOS 专项监控该模板由社区作者 Renato 维护模板内描述明确说明其定位Ros Modelo dedicado (dispositivo RB)——即专为 RouterBOARD 系列设备设计、仅用于监控 RouterOS 路由系统。模板在仓库中归入Templates/Mikrotik Network Devices分组模板名称为Mikrotik RouterOS并在仓库根目录 README.md 的 Network_Appliances 分类下被收录。从模板 Overview 声明的监控能力看它覆盖了以下关键维度CPU 温度与设备主板温度设备运行时长UptimePPPoE 客户端流量消耗监控Comsumo Clientes PPoEPPPoE 客户端数量监控Quantidade de Clientes PPoE所有端口/接口的流量监控多核 CPU 使用率监控Ping 可达性、延迟与丢包监控模板没有依赖任何宏Macros与模板链接Template links属于自包含的独立模板导入即可使用。版本目录与文件构成仓库为该模板维护了三个 Zabbix 版本目录结构如下目录导出格式导出版本5.0/XMLtemplate_mikrotik_routeros.xmlZabbix 5.05.4/YAMLtemplate_mikrotik_routeros.yamlZabbix 5.46.0/YAMLtemplate_mikrotik_routeros.yamlZabbix 6.0三个版本的模板内容一致导出时间均为 2021-11-21只是序列化格式与//主机占位符语法随版本演进有所不同例如 5.0 XML 中计算项公式写作(last(cpucore[ifnum1]))/15.4/6.0 YAML 中则为(last(//cpucore[ifnum1]))/1。导入时请根据自身 Zabbix Server 版本选择对应文件。导入与启用步骤下载与 Zabbix 版本匹配的导出文件5.0 选 XML5.4/6.0 选 YAML。在 Zabbix Web 界面依次进入Configuration → Templates → Import选择对应文件并导入模板会归入Templates/Mikrotik Network Devices分组。在Configuration → Hosts中为 RouterBOARD 设备创建主机配置 SNMP 接口community、端口等确保 RouterOS 侧已启用 SNMP/snmp set enabledyes communitypublicWinbox 中位于 IP → SNMP。在主机的 Templates 列表中添加Mikrotik RouterOS模板并等待数据采集模板大量监控项更新周期为 15s1mLLD 规则多为 30s。导入后在Latest data中核对数值尤其注意内存、温度、CPU 公式是否符合实际设备详见下文注意事项。六条 LLD 发现规则分层圈定接口与 CPU模板的核心设计思路是通过 6 条 SNMP 发现规则用正则过滤{#SNMPINDEX}把 RouterOS 的接口按“物理口 / 桥接与虚拟接口 / PPP 虚拟接口 / 本地统计”分层圈定并为每层挂载不同的流量监控项原型。汇总如下发现规则键Key更新周期过滤正则对 {#SNMPINDEX}圈定目标Descubra a interface NIC local本地网卡discoverylocal30s^([1,2,3,4,5,6,7,8,9]\|10)$索引 110即典型 RB 设备的物理以太口Descubra interfaces de rede网络接口net.if.discovery30s^\d{2,3}$23 位索引10999即桥接口、VLAN、无线等非物理接口Verificar automaticamente a conta de discagem VPNVPN 拨号账户net.if.discoveryppp30s^(157)\d{1,}$以 157 开头的接口索引Descubra automaticamente estatísticas de tráfego da NIC local本地网卡流量统计net.if.discoveryStatisticslocal30s^([1,2,3,4,5,6,7,8,9]\|10)$与 discoverylocal 相同的 110 物理口Descubra as estatísticas de tráfego da interface接口流量统计net.if.discoveryStatistics30s^\d{2,8}$28 位索引的其余接口Verificar automaticamente a CPUCPU 自动发现system.discoverycpu3s^([0,1,2,3,4,5,6,7,8,9]\|10\|11\|12\|13\|14\|15\|16)$CPU 索引 016最多覆盖 17 核从源码结构看见 5.0 XML 的 discovery_rules 段落这些规则全部使用 Zabbix 的动态 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, {#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFNAME},1.3.6.1.2.1.31.1.1.1.1, {#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFTYPE},1.3.6.1.2.1.2.2.1.3]即通过 ifOperStatus / ifAdminStatus / ifAlias / ifName / ifDescr / ifType 等 MIB-2 与 IF-MIB 节点把接口的完整属性拉入发现宏再由{#SNMPINDEX}正则做二次筛选。几点推断与说明物理口与虚拟口分层RouterOS 中 ether1etherN 的 ifIndex 通常为 110而桥接口、VLAN、wireless 等接口索引往往更大模板正是利用110与23 位数字两套正则把两者分开监控PPPoE 接口正则^(157)\d{1,}$匹配以 157 起始的索引。可以推断作者所使用 RouterOS 版本的 PPP 类虚拟接口pppoe-out 等起始索引为 1570 附近故以此圈定。不同固件/设备接口起始索引可能不同接入前建议用snmpwalk或 Zabbix 接口列表确认后再调整正则CPU 正则匹配 016 的索引对应hrProcessorLoad1.3.6.1.2.1.25.3.3.1.2表项足以覆盖 CCR 等多核型号。监控项体系基础项、计算项与 LLD 原型基础监控项非 LLD模板直接定义了 11 个基础监控项其中 3 个为 Simple checkICMP8 个为 SNMP 或 Calculated 类型名称键Key类型周期OID / 公式要点Atividade PingPing 活动性icmppingSimple check60s应用值映射Service state0Down1UpPerda de Pacote丢包率icmppinglossSimple check60s单位 %Latencia延迟icmppingsecSimple check60s数值类型 FLOAT单位 sTemperatura da CPUCPU 温度mikrotik.cpu.temperatureSNMP agent30sOID.1.3.6.1.4.1.14988.1.1.3.11.0预处理MULTIPLIER 0.1单位 °CTemperatura do equipamento设备温度mikrotik.device.temperatureSNMP agent30sOID.1.3.6.1.4.1.14988.1.1.3.10.0预处理MULTIPLIER 0.1单位 °CTempo de execução运行时长mikrotik.uptimeSNMP agent30sOID.1.3.6.1.2.1.1.3.0sysUpTime预处理MULTIPLIER 0.01单位 uptimeClientes Conectado在线客户端PPPoESNMP agent1mOID1.3.6.1.4.1.9.9.150.1.1.1.0统计活跃 PPPoE 会话数Tamanho da memória内存总量vm.memory.total[hrStorageSize.Memory]SNMP agent15sOID1.3.6.1.2.1.25.2.3.1.5.65536预处理MULTIPLIER 1045单位 bpsMemória usada内存已用vm.memory.used[hrStorageUsed.Memory]SNMP agent15sOID1.3.6.1.2.1.25.2.3.1.6.65536预处理MULTIPLIER 1024单位 bpsMemória livre内存空闲vm.memory.free[hrStoragefree.Memory]Calculated30slast(total) - last(used)Uso de memória内存使用率vm.memory.pused[memoryUsedPercentage.Memory]Calculated30slast(used) / last(total) * 100单位 %温度与运行时长1.3.6.1.4.1.14988是 MikroTik 的厂商企业号1.3.6.1.4.1.14988.1.1.3.x属于其健康度healthMIB 分支原始读数以 0.1°C 为单位因此模板统一乘以0.1还原为摄氏度sysUpTime.0以百分之一秒为单位MULTIPLIER 0.01将其换算为秒配合uptime单位自动格式化为天/时/分秒。内存换算的注意点从 5.4 YAML 可见内存总量项预处理乘数为1045而内存已用项为1024。两者不一致可以推断1045很可能是作者笔误更可能是 1024。同时模板把内存项单位配置为 bps语义上偏字节计数。建议导入后在 Latest data 中与/system resource print输出比对必要时把乘数统一为 1024 并修正单位。计算型监控项CPU 总使用率公式模板的Uso da CPU (total)键cpucore[ifnum]周期 30s单位 %是一个计算型监控项其默认公式为(last(cpucore[ifnum1]))/1即默认按单核设备计算。模板在描述中明确要求请根据设备核心数自行替换公式并给出了多核参考公式直接复制使用# 2 核 (last(cpucore[ifnum1])last(cpucore[ifnum2]))/2 # 3 核 (last(cpucore[ifnum1])last(cpucore[ifnum2])last(cpucore[ifnum3]))/3 # 4 核 (last(cpucore[ifnum1])last(cpucore[ifnum2])last(cpucore[ifnum3])last(cpucore[ifnum4]))/4其中cpucore[ifnum{N}]由system.discoverycpu规则生成的hrProcessorLoad项OID1.3.6.1.2.1.25.3.3.1.2.{#SNMPINDEX}周期 15s单位 %提供各核心负载。对 CCR 等多核机型务必按此模式把公式扩展到对应核数。LLD 监控项原型六条发现规则共生成 11 类带{#SNMPINDEX}的流量/CPU 项原型均读取 IF-MIB 的 64 位计数器ifHCInOctets/ifHCOutOctets来源规则项原型键周期预处理单位discoverylocalnet.if.in[localin.{#SNMPINDEX}]ifHCInOctets1sCHANGE_PER_SECOND→MULTIPLIER 8bps入向discoverylocalnet.if.out[localout.{#SNMPINDEX}]ifHCOutOctets1sSIMPLE_CHANGE→MULTIPLIER 8bps出向net.if.discoverynet.if.in[ifHCInOctets.{#SNMPINDEX}]1sCHANGE_PER_SECOND→MULTIPLIER 8bpsnet.if.discoverynet.if.out[ifHCOutOctets.{#SNMPINDEX}]1sCHANGE_PER_SECOND→MULTIPLIER 8bpsnet.if.discoverypppnet.if.in[ifHCInOctetsppp.{#SNMPINDEX}]30s无bpsnet.if.discoverypppnet.if.out[ifHCOutOctetsppp.{#SNMPINDEX}]30s无bpsnet.if.discoveryStatisticsnet.if[interface.in.{#SNMPINDEX}]原始总计数30s无bpsnet.if.discoveryStatisticsnet.if[interface.out.{#SNMPINDEX}]原始总计数30s无bpsnet.if.discoveryStatisticslocalnet.if[localinterface.in.{#SNMPINDEX}]原始总计数30s无bpsnet.if.discoveryStatisticslocalnet.if[localinterface.out{#SNMPINDEX}]原始总计数30s无bpssystem.discoverycpucpucore[ifnum{#SNMPINDEX}]hrProcessorLoad15s无%预处理逻辑解读ifHCInOctets/ifHCOutOctets是累计字节计数器CHANGE_PER_SECOND把两次取值之差换算成每秒字节数MULTIPLIER 8再转为 bps字节 ×8 比特。注意本地网卡的出向原型用的是SIMPLE_CHANGEnet.if.out[localout...]与入向的CHANGE_PER_SECOND不一致——从模板结构看可推断这属于作者笔误或疏漏两者实际效果接近SIMPLE_CHANGE 取相邻差值但不严格按时间归一化如追求严格速率建议统一为CHANGE_PER_SECOND。PPP 流量项net.if.discoveryppp生成的ifHCInOctetsppp.*/ifHCOutOctetsppp.*项不带速率预处理直接以 bps 呈现累计值用于观察每个 PPPoE 拨号会话的收/发流量——这正是 Overview 中监控 PPPoE 客户端消耗的实现载体。PPPoE 客户端数量监控专项模板对 PPPoE 客户端数量采用了一个值得注意的实现直接通过 OID1.3.6.1.4.1.9.9.150.1.1.1.0读取活跃 PPPoE 会话数键PPPoE周期 1m。该 OID 位于 Cisco 企业 MIB 分支1.3.6.1.4.1.9下在 MikroTik 设备上被用于暴露当前活跃的 PPPoE 连接数。仓库中配套的独立模板 template_quantidade_de_clientes_pppoe1 Check Active Client PPPoE作者同为 Renato Severino使用完全相同的 OID与键名PPPoE监控在线客户端可作为该取值方式的直接佐证。该配套模板还给出了数量告警的触发器范式5.4 YAMLlast(/1 Check Active Client PPPoE/PPPoE)1000 # 超过 1000 客户端HIGH last(/1 Check Active Client PPPoE/PPPoE)100 # 少于 100 客户端HIGH本模板Mikrotik RouterOS本身未定义任何触发器若需要客户端数异常告警可参考上述表达式为Clientes Conectado键PPPoE按自身网络规模添加阈值触发器。图形与值映射模板在顶层定义了 3 张标准图形并在每条接口发现规则下挂载了对应的图形原型CPU% De taxa de uso绘制计算项cpucore[ifnum]整体 CPU 使用率Temperatura do equipamento绘制mikrotik.device.temperature设备温度Uso de memória绘制vm.memory.pused[memoryUsedPercentage.Memory]内存使用率。接口类图形原型如{#IFNAME}Tráfego da interface NIC、{#IFNAME}Tráfego de rede、{#IFNAME}Tráfego de saída、{#IFNAME}Estatísticas da interface等由各 LLD 规则随发现自动生成统一采用绿色1A7C11出向、红色F63100入向的配色约定便于直观判断双向带宽。值映射方面模板定义了Service state0 → Down、1 → Up并应用到icmpping项使 Ping 状态在最新数据与图形中显示为可读的 Up/Down 而非数字。应用组Applications与遗留结构说明5.0 XML 导出的 applications 段落声明了 9 个应用组DHCP、Estado de saúde健康、Interface de rede externa外部网络接口、Interface local本地接口、Interface PPP、Perda atrasada de pacotes丢包延迟、Status、Status da CPU、Status da memória。其中流量项按Interface local/Interface de rede externa/Interface PPP归类健康项归入Estado de saúdePing 类归入Status内存/CPU 各自独立分组。从 XML 结构看DHCP与Perda atrasada de pacotes两个应用组虽被声明但并未被任何实际监控项引用可推断为模板历史遗留作者后续未清理不影响使用。5.4/6.0 的 YAML 版本则以tagsApplication: xxx代替了 applications 分组语义一一对应。部署注意事项与排错清单SNMP 前置RouterOS 需启用 SNMP/snmp set enabledyes并允许 Zabbix Server 所在网段访问温度 OID 仅部分带温度传感器的 RouterBOARD 型号如 RB3011、RB4011 及 CCR 系列可返回有效值无传感器型号会得到 noSuchInstance。CPU 公式按核数调整默认公式只算 1 核多核设备务必按上文 2/3/4 核模板扩展否则整体 CPU 使用率失真。内存换算核对总量项乘数1045与已用项1024不一致建议统一并对照/system resource print验证。LLD 正则按设备核对物理口索引范围110、PPP 接口起始索引157 开头均与具体固件相关若发现接口漏发现或误发现优先调整对应发现规则的{#SNMPINDEX}正则。无触发器的补全模板本身无触发器除 PPPoE 客户端数外可自行为 CPU 使用率、内存使用率、丢包率、温度等关键项补充阈值触发器参考 template_quantidade_de_clientes_pppoe 的写法。版本选型Zabbix 5.0 用 XML5.4/6.0 用对应 YAML更高版本一般可直接导入 6.0 格式。如需更完整、带官方风格系统监控项的 RouterOS v6.x 模板仓库 Network_Devices/Mikrotik/template_mikrotik_routeros_v6.x_2021 中另有同名主题模板可供对比参考两者对温度 OID14988.1.1.3.10.0、内存 OID25.2.3.1.5/6.65536、CPU 发现 OID25.3.3.1.2的用法一致可相互印证。赞分享【免费下载链接】community-templatesZabbix Community Templates repository项目地址https://gitcode.com/gh_mirrors/co/community-templates点击查看免费下载相关推荐Zabbix 模板实战用 SNMP 全面监控 MikroTik CRS112-8P-4S-IN 交换机Zabbix 模板实战用 SNMP 全面监控 MikroTik CRS112 8P 4S IN 交换机 本篇技术指南以 Zabbix 官方模板库中的 Mikr指标监控可观测性告警运维Zabbix 官方模板指南使用 SNMP 监控 MikroTik hEX PoE 路由器含宏、触发器与 LLD 深入解析Zabbix 官方模板指南使用 SNMP 监控 MikroTik hEX PoE 路由器含宏、触发器与 LLD 深入解析 导读 本文围绕 Zabbix 8指标监控可观测性告警运维Zabbix 8.0 模板实战使用 SNMP 全面监控 MikroTik RB1100AHx4 Dude Edition 路由器Zabbix 8.0 模板实战使用 SNMP 全面监控 MikroTik RB1100AHx4 Dude Edition 路由器 本篇技术指南围绕 Zabbi指标监控可观测性告警运维上一篇Keysound让你的Linux键盘变身音乐创作神器下一篇SRS 视频快照Snapshot实战基于 HTTP 回调与内置转码引擎的两种抓帧方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考