MikroTik 在 v7.26 版本,开始提供CMR (centralized monitoring platform for fleets of RouterOS)是一个集中式监控平台,用于监控 RouterOS 设备群,支持对整个设备群进行更新、监控和警报管理。

目前,只支持RouterOS v7.26 版本,需要cmr 功能包,仅支持arm、arm64和x86架构的硬件。CMR 客户端是 RouterOS 的一部分,因此除smips和powerpc架构的硬件外,所有设备都可以作为 CMR 客户端。

CMR 通过其中一台设备管理一组 RouterOS 设备。这台设备运行 CMR 服务器,其他设备作为 CMR 客户端连接到该服务器。通过服务器,您可以查看整个设备群的状态、进行升级、接收警报、同时在多台设备上运行命令、绘制网络拓扑图以及配置 WiFi 网络和 VLAN 端口。

The Dude

不得不提到The Dude,既然CMR集中式监控平台,个人认为The Dude死透了!MikroTik开发了近20年的监控平台,随着时代的变化终于要落幕了。最开始The Dude是基于Windows平台开发:

  • 支持RouterOS管理,
  • 支持SNMP v1,v2协议,
  • 支持ping和基本网络协议的监控阈值报警功能,
  • 支持拓扑图编辑,
  • 支持windows工具调用,
  • 能自定义function
  • 支持RouterOS 远程命令

而且是免费软件,主要是RouterOS配套平台。也可独立作为第三方网络监控平台使用,支持SNMP协议采集,我最喜欢它的snmpwalk,OID获取图像和结构分析很舒服。应该是在2011年左右,The Dude v4beta版本,MikroTik就停止开发了。后来2016年,集成到RouterOS v6 版本,不过也是昙花一现,很快又停止更新了。不太清楚什么原因!

CMR 是 The Dude的延续?

其实The Dude作为免费软件诞生,非常有价值,在使用上依然保留MikroTik的风格,自定义灵活性很强,可以根据自己的需要去设置。第一次推出windows平台对于小白非常友好,因为毕竟windows用户当时90%以上,但扩展性很差。后来集成到RouterOS里面,有非常局限功能。

由于RouterOS的API功能,Script脚本和fetch远程命令,很多开发者已经在围绕RouterOS开发自己的管理平台,都是基于Linux环境搭建服务,比如Rosz云管理平台,不管是通过fetch实现云管理,还是后来我尝试性的通过API开发的shallow API都围绕RouterOS的易用,监控报警,网络拓扑和数据采集等为RouterOS用户提供集中化的管理。

对于The Dude不管基于windows,还是RouterOS系统,估计很多构架都已经很老了,很多第三方的RouterOS集中管理平台也做的非常完善,现在AI辅助也很方便,增加一套全新的集中监控平台也不难,CMR的出现是理所当然的。

CMR的血液更加正统,官方有很多自己的接口,采集性能肯定优化更好,但MikroTik还是把它集成到了RouterOS中,感觉还是有很大的局限性。虽然MikroTik正在努力的将RouterOS打造成一个全能的OS系统,能真正释放应用程序性能的也只能是CHR或x86平台的RouterOS,特别在网络转发处理与应用处理抢占CPU时,应该优先保障谁?我觉得CMR应该做成一个container去部署,这样会有更多的收益。

因为作为一个集中管理平台,是把RouterOS采集的数据保存到另外一台性能更好的硬件上去分析处理,这样才是合理的!个人觉得MikroTik还是想自娱自乐,作为RouterOS不可分割的一个应用。

CMR的作用

  • 设备清单- 列出每个客户端及其标识、主板、RouterOS 版本、已安装软件包、连接状态和标签。
  • 设备组升级——根据规则(例如通道或固定版本、计划、设备组顺序和故障策略)升级设备组。软件包来自 MikroTik 更新服务器或服务器上的目录。
  • 警报- 监视资源使用情况、健康传感器、可用性、升级、接口和日志行,并在满足条件时写入日志消息、运行脚本或调用 webhook。
  • 对多个设备执行命令- 在选定的设备上运行脚本并显示每个设备的输出,以及重启、升级或配对设备。
  • 仪表盘- 显示所选设备的实时摘要:连接状态、资源使用情况、接口、流量和 WiFi 客户端。
  • 网络拓扑图——绘制网络拓扑图,根据邻居数据和端口数据构建设备间的连接。该拓扑图显示在图形用户界面 (GUI) 中。
  • 应用程序流量- 收集通过选定路由器(通常是网关)的应用程序的统计信息。
  • WiFi 配置- 定义一次 WiFi 网络和无线电设置,并将其应用于选定的接入点,还可以按频段应用。
  • VLAN 配置- 将客户端的选定端口放入 VLAN 中作为接入端口或干线端口。

CMR 不做什么

  • CMR 不会配置 IP 地址、DHCP、路由、防火墙、用户或其他设备设置。请使用 WinBox、WebFig 或 CLI 在设备上进行配置。如需对多台设备进行一次性更改,请使用run-script.
  • CMR 不会编辑或采用设备的现有配置。它会在设备旁边创建自己的配置对象,并在重叠部分(例如 WiFi 无线电或桥接端口)接管现有配置。
  • CMR WiFi会将配置写入每个接入点。它不负责协调接入点之间的漫游,也不充当中央认证服务器。

工作原理

  • 服务器运行在安装了该软件包的设备上。客户端是 RouterOS 的一部分,因此除了采用smips和powerpccmr架构的设备外,任何设备都可以作为客户端。
  • 客户端通过邻居发现(MNDP)或 DNS 查找服务器,或者连接到配置中指定的地址controller-addresses。对于 DNS,客户端解析 `<domain name>`_cmr._tcp.lan和`<domain name>` _cmr._tcp.<domain>,其中 ` <domain name>`<domain>是客户端从 DHCP 服务器(选项 15 domain-name)获取的域名。服务器不必是网关,客户端可以通过路由网络(包括 NAT 或 VPN)连接。
  • 客户端必须先经过双方设备的同意才能进行管理,这称为配对。配对完成后,服务器会从客户端收集状态数据并向其发送配置信息,例如 WiFi 网络地址。
  • CMR 发送的配置信息以托管对象的形式存储在客户端,并标记为Y。这些配置信息无法在客户端更改,即使服务器无法访问,它们仍然有效。禁用客户端会移除这些配置信息。
  • 请使用 WinBox 4 或 WebFig 来创建 CMR 菜单。WinBox 3 不支持 CMR 菜单。

CMR 最适用于运行默认配置或接近默认配置的设备,例如刚开箱即用的设备。CMR 不会将其对象适配到自定义桥接、VLAN 或 WiFi 设置中,因此对于配置非常规的设备,可能需要手动调整才能使 CMR 配置正常工作。

入门

  1. 在将作为服务器的设备上安装该cmr软件包,并使用以下命令启用服务器/cmr set enabled=yes。
  2. 在每台待管理的设备上,启用客户端/cmr/client set enabled=yes。controller-addresses如果客户端无法自行发现服务器,则添加相应配置。
  3. /cmr/device批准配对。在默认配置下,服务器会等待批准:新设备会以“P”标志列出,直到您运行pair相应的命令。配对部分介绍了相关选项。
  4. 为设备分配标签,例如按站点和角色,以便规则可以选择设备组。
  5. 为标签创建升级规则和警报规则。

该指南详细描述了服务器端菜单CMR CLI Reference中的每个参数和命令。该指南还描述了客户端,并详细描述了受管设备菜单中的每个参数和命令。/cmrCMR-ClientCMR-Client CLI Reference/cmr/client

CMR服务器通过/cmr菜单进行配置。

启用 CMR 服务器

CMR 客户端通过 TCP 端口连接到服务器54321。允许客户端通过服务器防火墙(input链)连接到此端口,并允许此流量通过客户端和服务器之间的任何防火墙。

作为RouterOS集成的一个应用,有自己独立的路径,下面是启用服务器:

[admin@MikroTik] > /cmr set enabled=yes

启用服务器后,路由器将成为所连接的 CMR 客户端的管理控制器。设备列表(包括服务器本身)将显示在/cmr/device菜单中。

服务器设置

菜单/cmr还控制客户端如何找到服务器以及服务器从客户端收集哪些信息:

  • controller-addresses- 当设备无法通过邻居发现 (MNDP) 或 DNS 自动发现服务器时,将服务器 IP 地址发送给设备。
  • track-topology- 从客户端获取路由、WiFi注册表、ARP表、邻居信息、DHCP状态和接口状态。网络拓扑布局的自动链路取决于这些数据。默认值:yes。
  • fetch-comments- 从客户端获取接口、端口和 WiFi 注册表项的注释。默认值:yes。
  • auto-labels- 选择服务器从客户端获取的自动标签:可以是以下任意值:、、、、、、、version或architecture或。默认值:。modelboard-nameidentityaddressallnoneall
  • apptraffic-devices- 通过标签选择要收集应用程序流量统计信息的设备。默认值:gateway带有该标签的设备gateway。设置all为 则选择所有设备。
  • upgrade-check-interval- 服务器检查更新服务器以获取新版本的频率。最小值为 1 分钟。默认值:10h。
  • packages-directory、、packages-cache-type和packages-cache-limit——服务器接收和存储升级包的位置。“升级源”部分对它们进行了描述。

目前,/cmr/get对于未设置的设置,该函数返回空值,而不是其默认值。要将设置恢复为默认值,请在设置!名称前加上 `\default`,例如 `\default` /cmr set !upgrade-check-interval。

目前,更改packages-directory、upgrade-check-interval或pairing-requirement重启服务器上的 CMR 会导致每个客户端重新连接,并且状态警报仍然匹配,从而再次运行其操作。

配对

只有当双方设备都同意时,配对才能建立。每台设备都有自己的pairing-requirement设置,用于定义远程设备在接受配对之前必须执行的操作。由于双方的要求不同,因此只有在双方的要求都得到满足后,配对才能成功。

无论配置的要求如何,在本地运行该pair命令始终会批准来自此设备的配对。CMR 服务器支持pairing-requirement=none、password和confirm;客户端支持none和password:

  • 无需额外授权。此设备会自动接受配对。
  • 密码- 远程设备可以通过提供此设备上 RouterOS 用户的用户名和密码来批准配对,此参数需与命令的 `--username` 和 `--password`username参数password一起使用pair。CMR 没有单独的配对密码。也可以使用命令在本地批准配对pair。
  • 确认- 在 CMR 服务器上,配对必须在本地运行命令进行批准/cmr/device/pair;无法从远程端进行批准。

可以把它理解pairing-requirement为设备同意配对之前必须发生的情况。只有当两个设备都同意后,配对才能完成。

典型的配对场景

  • None不适用于可信环境,在这种环境中,设备应该在相互发现后立即自动配对。例如,同一受管局域网上的 CMR 服务器和客户端都可以使用none,从而允许在无需用户交互的情况下完成配对。
  • confirm命令强制服务器进行明确的本地批准:仅仅发现新客户端是不够的;管理员必须pair在服务器上运行该命令,服务器才会接受该客户端。
  • 当需要远程审批但对两台设备进行物理或管理访问不便时,密码验证是一种合适的选择。例如,客户端可以使用密码验证,允许 CMR 服务器使用客户端用户的凭据远程满足客户端的要求。

两台设备的要求是独立的。客户端可以自动接受配对(none),也可以在服务器提供客户端用户凭据时接受配对(password)。例如:

  • CMR 服务器:无,客户端:无- 两个设备均自动接受。
  • CMR 服务器:无,客户端:密码- 当服务器提供客户端上用户的凭据时,客户端接受。
  • CMR 服务器:密码,客户端:无- 当客户端提供服务器上用户的凭据时,服务器接受。
  • CMR 服务器:密码,客户端:密码- 每个设备都必须满足另一个设备的密码要求,除非使用命令在本地批准配对pair。
  • CMR 服务器:确认,客户端:无- 客户端自动接受,但pair必须在服务器上运行该命令。
  • CMR 服务器:确认,客户端:密码- 当服务器提供客户端用户的凭据时,客户端接受,但该pair命令也必须在服务器上运行。

要开始配对,请pair在其中一个设备上运行命令:/cmr/device/pairCMR 服务器或/cmr/client/pair客户端。也可以使用物理复位按钮进行配对:/cmr/push-button服务器或/cmr/client/push-button客户端上的按钮。

管理设备

菜单/cmr/device列出了服务器管理的设备。设备一旦连接到服务器,就会出现在列表中;在配对获得批准之前,设备会标记为P(待处理)标志。服务器本身则显示为带有L标志的设备。每个条目都会显示设备标识、主板、RouterOS 版本、标签和运行时间。对于当前已连接的设备,当您使用以下条件筛选列表时,打印输出还会包含连接地址where:


[admin@MikroTik] > /cmr/device/print where labels=Group2
Flags: C - CONNECTED; U - UPGRADE-AVAILABLE
Columns: IDENTITY, BOARD, VERSION, LABELS, UPTIME, ADDRESS 
#    IDENTITY  BOARD       VERSION  LABELS  UPTIME   ADDRESS 
2 CU MikroTik  RB4011iGS+  7.x      Group2  1h5m53s  192.168.1.98 
3 CU MikroTik  RB4011iGS+  7.x      Group2  1h3m8s   192.168.1.99 
9 CU MikroTik  RB4011iGS+  7.x      Group2  1h9m37s  192.168.1.100

设备的源address地址是指其与服务器连接的源地址。对于位于 NAT 后的客户端,它是转换后的地址,因此多个客户端可能显示相同的地址。

这些标志标记设备状态:L服务器本身、P配对待处理、C已连接、S过期(无连接)以及U设备升级通道上可用的其他版本。该U版本也可能早于已安装版本,例如,当设备运行测试版本且其升级规则使用该stable通道时。CLI/cmr/device参考文档列出了每个标志和每个只读值,例如板卡信息、序列号、已安装软件包、警报计数以及涵盖该设备的升级规则。

更多内容查看官方 cmr