简介
本文将介绍如何识别并重新分配单个CMX(互联移动eXperience)节点的负载,以便适应大量被跟踪的设备。在启用探测客户端跟踪的公共区域或设置中,此类问题通常在超大型部署中观察到。
先决条件
要求
本文假设您了解CMX的基本设置和配置,并仅关注优化大型部署性能的提示和诀窍。
使用的组件
本文中显示的所有命令和示例都在运行8.8.125代码的3504 WLC和运行于3375设备的CMX 10.6.1上执行。
CMX节点过载的迹象
CMX节点过载可能导致以下几个不同的问题:
- 服务无法启动
- 服务突然停止/崩溃
- 显示0个活动客户端的分析服务
- 警报和电子邮件警报表明分析或位置服务处于严重运行状态
- 无法在主CMX节点和辅助CMX节点之间建立HA
重分布CMX负载
过滤本地管理的MAC地址
由于隐私问题日益严重,从2014年的IOS 8版本开始,智能手机制造商开始实施一种称为MAC随机化的功能,设备每次发送探测请求时都会使用随机生成的新MAC地址。当生成随机MAC地址时,制造商可以决定使用“本地管理”MAC地址,该MAC地址具有指示该地址是随机的特殊位,或者简单地生成一个与实际地址不可区分的完全随机地址。极少数客户端在探测时实际使用其实际MAC地址。
CMX有一种方法可过滤这些伪造的随机MAC地址。在System->Settings->Filtering下,始终确保选中Enable Locally Administred MAC filtering。
注意:此字段已从CMX 10.6.0的Web界面中删除,并且始终默认启用
探测客户端的跟踪
思科TAC处理的CMX过载最常见的根本原因是仅跟踪探测客户端。启用此功能可以跟踪未关联的客户端的位置。开放的公共区域,如购物中心和拥有大量访客的火车站,即使是高端CMX节点,也常常会超出限制。
在跟踪探测客户端的设置中,随机生成的MAC地址对客户端计数也有很大影响。
像苹果这样的一些制造商在探测时遵循标准并使用本地管理的随机MAC地址,这意味着CMX在探测和未关联时将永远不会检测到iPhone设备。当CMX每次发出探测请求(可能每隔几秒发生一次)时,会将未遵循标准且使用非本地管理的随机MAC地址的设备记录为新客户端。 因此,探测客户端计数可以显着高于/低于网络中实际设备数。
可以通过选中“排除仅探测客户端”(Exclude Probing Only clients)选项,从CMX Web界面的“系统”(System)->“设置”(Settings)->“过滤”(Filtering)下禁用探测客户端的跟踪:
由于上述所有变化,探测客户端计数不应用作踏足计数器,Cisco TAC强烈建议不要跟踪探测客户端。
检测算法调整
通过调整CMX上的过滤选项,可以严格限制记录的探测客户端数量。有2个主要选项对客户端检测(尤其是仅探测)有重要影响:
- 占空比截止(干扰源)
- RSSI截止
- 需要侦听客户端的最小AP数量,因此会记录
在密集且人口密集的区域中,预计会有大量干扰源。蓝牙手表等设备不会对网络产生巨大影响。通过将干扰源占空比的值增加到更接近50,CMX将只记录占空时时间50%以上的强干扰源。此值可以从CMX Web界面的System(系统) — >Settings(设置) — >Filtering(过滤)下进行配置:
注意:为避免记录大量干扰源数据,CMX只记录存在一定时间的干扰源。
RSSI截止功能用于避免记录仅通过现场而不实际进入的客户端。如果仅启用探测客户端跟踪,并且在附近设有公交车站或街道,这会对部署产生巨大影响。默认情况下,此值设置为–85 dBm。在更改此值之前,应测量外部设备外的客户端的RSSI。此值可以从CMX Web界面的System(系统) — >Settings(设置) — >Filtering(过滤)下进行配置:
从CMX 10.6开始,更改CMX记录客户端所需的最小AP数量只能通过API调用完成。首先,GET请求可用于查看当前配置:
[cmxadmin@mse3375 ~]$ curl -X get http://localhost/api/config/v1/filteringParams/1
{"name":null,"allowedMacs":[],"disallowedMacs":[],"blockedList":[],"noLocationSsids":[],"noAnalyticsSsids":[],"disallowprobingclienttracking":false,"macfilter":false,"ssidfilter":false,"probingrssicutoff":-85,"minapwithvalidrssi":1,"filterLocallyAdministered":true,"objectId":0,"dutyCycleCutoff":0}
在此设置中,值minapwithvalidrssi设置为1,这是默认值。可以使用POST请求将此值更改为3。应用这些设置后,当第三个AP在RSSI等于或高于指定的最小值时收到客户端时,CMX将记录客户端:
[cmxadmin@mse3375 ~]$ curl -X POST -H "Content-Type: application/json" -d '{"minapwithvalidrssi":3}' http://localhost/api/config/v1/filteringParams/1
更改任何值后,请确保执行GET请求以确认设置已成功应用。
增加VM资源
如果当前CMX节点在虚拟机中运行,并且其大小不足以容纳所有客户端,则可能增加虚拟机资源,从而增加其处理能力。只需分配更多CPU核心、内存和磁盘空间。CMX低端、标准和高端节点的确切要求可在此找到。
如果当前CMX设置已是高端节点,请考虑本文中提到的其他选项。
注意:在VM上激活快照可能会对性能产生负面影响,不建议用于生产环境。
CMX分组(以前称为AP分组)
CMX分组是CMX 10.5或更高版本和运行8.7或更高版本的AireOS WLC上提供的功能。由于8.7版本系列将来不会接收更新,因此建议使用8.8或更高版本。此功能允许单个控制器通过选择AP组并将组分配给特定CMX节点,将负载分配到多个CMX节点。这些AP组与WLC上的AP组功能无关。
CMX1上的映射仅放置AP1和AP2。CMX1将与WLC通信映射中找到的这2个AP。启用CMX分组功能后,AP1和AP2记录的所有信息(包括仅关联和探测客户端、干扰源、BLE信标、RFID标签……)将仅发送到CMX1。
一个控制器最多可以有4个NMSP连接,这意味着最多可以向其添加4个CMX节点。如果有4个高端节点,理论上每天最多可记录360,000(4x90,000)个唯一客户端mac地址。
通过以下test命令,WLC可以增加CMX服务器的数量
(Cisco Controller) >test cloud-server cmx max-tls-connections
test cloud-server cmx max-tls-connections <2-6>
重要信息:如果未启用CMX分组功能,则运行代码低于8.7或高于8.7的控制器不应添加到多个WLC。这可能导致记录不准确的数据,尤其是在HyperLocation设置中。
在此控制器将添加到的每个CMX节点上,启用该功能并重新启动服务所需的CMX节点:
-
使用命令启用功能:
cmxctl config featureflags nmsplb.cmxgrouping true
用false替换true可禁用功能。
- 重新启动CMX代理:
cmxctl restart agent
-
重新启动NMSP负载均衡器:
cmxctl nmsplb stop
cmxctl nmsplb start
- 要检查功能是否已成功启用,请运行:
[cmxadmin@cmx3375 ~]$ cmxctl config featureflags
+----------------------------------------+-------+
| location.compactlocationhistory | false |
+----------------------------------------+-------+
| configuration.oi.host | true |
+----------------------------------------+-------+
| configuration.apimport | false |
+----------------------------------------+-------+
| location.ssidfilterpersistblockedmacs | false |
+----------------------------------------+-------+
| location.rogueapclienthistory | false |
+----------------------------------------+-------+
| nmsplb.cmxgrouping | true |
+----------------------------------------+-------+
| monit | true |
+----------------------------------------+-------+
| container.influxdbreporter | true |
+----------------------------------------+-------+
| nmsplb.autolearnssids | true |
+----------------------------------------+-------+
| configuration.highendbypass | false |
+----------------------------------------+-------+
| apiserver.enabled | true |
+----------------------------------------+-------+
| location.computelocthroughassociatedap | false |
+----------------------------------------+-------+
| analytics.queuetime | false |
+----------------------------------------+-------+
在监控(Monitor)>云服务(Cloud Services)> CMX(CMX)下,应该可以看到哪个CMX节点启用了分组功能。“无”表示分组功能已禁用,而“查看组”表示已启用。
打开“查看组”页面,可以访问此CMX节点订用的AP列表。
在与此控制器关联的4个AP中,只有3个被放置在CMX映射上。WLC从CMX获知此信息,并仅将它们检测到的信息发送到位于10.48.71.41的CMX节点。
其他节点部署
如果网络包含多个无线控制器,则可以部署其他CMX节点,并在多个WLC和CMX之间创建1-1映射。WLC版本没有特殊要求。确保不要同时将单个WLC添加到多个CMX节点。
DNA空间 — 将工作分流到云
思科新的云平台DNA空间旨在将客户端跟踪移至云。根据当前负载自动分配资源。可以通过以下几种方式将无线网络连接到云:
- 直接将WLC连接到云
- DNA空间连接器(用作代理的小型虚拟机,控制器不暴露在云中)
- 将CMX用作云网关(HyperLocation部署需要此选项)
相关错误