信息化及互联网技术的发展以及各行各业数字化业务的迅速增长,对IT基础设施提出了高性能和高可靠性的双重需求。在构建高性能网络上,大吞吐量转发设备和高速接口快速迭代,400G链路带宽设备也已经发布并将逐步走入广泛应用。在高可靠性上,双管齐下,一是不断提高可靠性硬件设计和控制技术设计,二是通过网络运维技术提高网络运行可靠性。本文主要针对网络设备智能分析,讨论如何从网络设备采集数据,通过数据的挖掘分析形成对网络设备的洞察,为网络设备运维带来智能,最终增强可靠性运维能力。为描述方便,下文中部分描述省略网络设备这一限定词。
运维分析为何要大数据
设备技术及运维技术的发展使得运维数据在不断朝着更精、更深、更广方向发展。
更精 通过更小周期的数据采集,能够更精确采集到真实反应设备实际状态的数据。
更深 一个网络设备往往有两套系统:管理控制系统和数据转发系统。转发服务系统过程变化具有更高频率。由于技术及成本收益等因素的原因,传统运维中主要针对管理控制系统,而转发服务系统往往是一个黑盒状态。高性能网络精细运维的诉求以及技术不断进步,使得转发服务系统也开始提供高速过程的状态数据,成为运维分析对象。高频率过程的采集分析必然增加数据的产生速度和数量。
更广 空间上随着运维手段和能力的提高,更多的数据被纳入;时间上智能运维的引入对历史数据提出了长记录要求,无论是训练样本数据还是推理数据,都是智能分析的大前提。所有这些都需要分析系统有更强的存储计算能力,即提出了大数据技术的必要性。
数据的采集与预处理
在网络运维分析中,数据挖掘的几个通用过程必不可少:数据采集;数据取样和探索;数据预处理;数据建模分析;模型校验评估;模型应用。如图1所示。
![68242565f765744c867c9e4ae9f3f2ca.png](https://img8.php1.cn/3cdc5/fe82/525/485ff186e071c2bc.png)
图1 网络运维数据挖掘过程
其中,数据的采集是最基础的工作。网络运维数据的理想采集方式如图2所示。持续变化数据,适合gRPC Telemetry Dialout方式定时采集,不同变化频率和重要性的数据采用不同的定时周期;有限状态数据,适合事件驱动Dialout,方式上可以是TRAP告警、Log事件,或gRPC等;静态数据,可以事件驱动Dialout,也可以不定期Get,根据数据的特点来确定。
![1a4e247265f00901b05d5ab654822f63.png](https://img8.php1.cn/3cdc5/fe82/525/1cc68ff519ee7ac4.png)
图2 网络设备几种类型运维数据采集
数据是产生最终分析结果的根本源泉,有什么样的数据就会产生什么样的分析结果,数据内容和质量至关重要。因此分析前,必须先对数据进行实际采样,进行人工分析后确定分析方法。
对数据进行正式分析之前,还要对数据进行预处理。因为任何数据都不是完美的,都会存在这样那样的问题,所有需要进行预处理。另外,数据的分析需要从不同的维度进行,有些数据必须经过一定的加工才能作为后续建模分析的数据。预处理的好坏具有和原始数据的质量一样的重要性。
下面几个预处理,在网络设备运维中需要重视。
1.1 时间一致性处理
网络运维数据中对应数据的时间非常重要,尤其在数据相关性分析时,时间的准确性是首要因素,但是在实际环境中各个设备的时间往往不是同步的。如图3所示,从分析系统的角度定义两个时钟基线标签,本地时钟是各设备的,全局时钟是分析系统的。对于不同目的的分析可以使用不同的时间标签。
![18aa3ae91dfc1b3e5b1654a6d1a9cd87.png](https://img8.php1.cn/3cdc5/fe82/525/51aaaf6c4f1e0339.png)
图3 设备运维数据的时间属性
1.2时间粒度聚合处理
如图4所示,对于由网络设备定时采集并PUSH到分析系统的数据,往往由于网络设备性能的原因,保证不了如下两个方面,需要有适应性处理。
![0c79cd393e1d6a3647de32160f411cd1.png](https://img8.php1.cn/3cdc5/fe82/525/01ee29cd2439cb81.png)
图4 Telemetry数据最小采集粒度变化情况
数据建模分析
网络设备运维中有些数据本身直接有运维意义,比如主备控制协议握手时间数据,握手超时就会导致主备设备分裂,但多数数据还是需要通过较多的分析才能得到有价值信息。通过建模分析主要达到几个目的:
● 经过分析后的数据提升可视化价值。
● 通过数据分析找出网络运行的模式和规律。
● 通过数据分析对数据后面的事实做出判断,即隐含问题的发现。
● 通过数据分析找出问题关联的前置影响因素,即问题根由分析。
1、统计分析的方法
统计分析是传统简单而又直接高效的数据分析方法,分布式大数据计算的成熟使得统计分析方法更能发挥作用。不管是度量类的数据还是事件类的数据,都可以基于时间、网络空间、地理空间、网络基础设备特征、网络服务特征、网络用户特征等特征数据的单纬度、多纬度统计分析。
2、时间序列数据建模分析的方法
时间序列数据有的是从网络直接采集的数据,有的是原始数据经过加工后的数据,例如对原始数据经过统计分析和特征分析,分析的结果作为时间序列数据。时间序列数据分析的目的是要获得4个方面的结果:
● 序列基线分析,即找出数据的模式和规律。
● 序列异常检测,找出数据中偏离规律的异常点。
● 序列预测分析,找出序列未来的变化趋势。
● 对于多个序列,还要找出序列之间的相关性,尤其是异常点之间的相关性。
分析方法上,根据是否依赖学习样本数据区分为无监督学习和有监督学习方法。一般来说有监督学习具有更好的效果。
无监督基线学习及异常检测 其核心原理是,通过算法找出时间序列数据的一个趋势基线,并基于基线给定上下范围,超过给定范围的则认为是异常点,数据异常点在网络物理上就存在异常可能性。使用的方法例如:指数加权移动平均EWMA & 3-Sigma;多项式拟合 & 差值异常。
![7e7ec9c3a377ea33d274920001cd4395.png](https://img8.php1.cn/3cdc5/fe82/525/03b35f887df444dc.png)
![5dcf58ae2859371fcb66b501809e64bb.png](https://img8.php1.cn/3cdc5/fe82/525/2c7f5817a33dcb36.jpeg)
图 5 无监督时间序列异常检测
有监督学习异常检测 有监督学习就是事先有一定数量经过标注的序列数据,这些数据部分作为训练集用于学习,部分作为测试集用于验证。有监督的机器学习一般要经过特征工程从序列数据提取特征,然后将提取后的特征数据作为学习和分析的对象。时间序列的特征提取方法主要有统计特征、分类特征、拟合特征。
有监督学习及异常检测中极端梯度提升XGBoost是一个可并行计算的集成学习方法。通过逐步增加决策树来增加精度。XGBoost的建模过程如图9所示。
![1f4f9ea1d618fb7c00a06da3b6ad05c8.png](https://img8.php1.cn/3cdc5/fe82/525/c6ec64f1f62c8a20.png)
图6 XGBoost
时间序列预测 时间序列的预测方法其思路是找出序列数据的变化趋势规律,根据规律来计算未来时间的序列数据。有如下常用方法:
● 自回归滑动平均方法:ARMA(p,q);ARIMA(p,d,q);
● 指数平滑方法:ETS;
● GAM模型;
● 中长期记忆模型:LSTM等。
3、事件数据建模分析的方法
网络运维不光是通过分析发现运行网络中存在的问题,更重要的是定位问题的根因,能够在问题产生时尽可能快速地找出根因并解决问题,以减少对业务的影响,甚至能够在问题未产生影响时进行纠正。这些问题体现在运维数据上,就可能是网络运行中产生各种各样的网络设备事件数据,或者是上述统计及时序分析得到的序列异常点数据。不管是事件数据还是异常点数据,都具有时间、空间特征,通过对不同维度数据的关联分析,就可以找到相关性,从而加速根因定位。
关联分析常用的分析方法有:Apriori及FP-Growth等。
案例分析
对于如图7所示的区域分支网络,A为接入设备,B1/B2为汇聚设备,C1/C2为核心设备,核心设备上行链路具有较高重要性,需要进行监测:一是监测实际的接口带宽增长趋势并给出预测,用于接口链路规划,采集的数据为接口利用率;二是对链路带宽不合理利用进行监测,及时发现并给出根因。采集的数据为接口利用率、接口上流量的Netstream采样。
![2f6053a6876440d5e3d8df702ecb8ff1.png](https://img8.php1.cn/3cdc5/fe82/525/cc47093618b7e637.png)
图7 区域三级组网
1、在线监测问题
对监测的接口利用率预处理后形成时间序列数据,按照如下三级进行分析:
● 监测序列值与安全阈值比较,小于安全阈值则不进一步计算;
● 超过安全阈值后,做时间序列动态基线分析;
● 基于基线进行异常分析,标记序列异常点,生成异常事件。
通过上述分析监测方法,发现C1设备上行接口出现了如图8所示的利用率异常冲高事件,并在一定程度上影响了业务使用体验。
图8为C1上行出口11天的接口带宽利用率序列,序列时间粒度为小时,序列值为小时内10分钟均值最大值(通过10分钟均值,将小微突发排除,不作为监测对象)。
![8b3da6e1611adae4f5f7dfb9825276b0.png](https://img8.php1.cn/3cdc5/fe82/525/d49de28be3d2380c.png)
图8 C1设备上行出口带宽利用率异常监测
2、问题分析
监测发现问题后,将C1上行口接口利用率序列数据做成份分解分析,图11中的序列通过计算分解为如图9~图11的三个成份序列。
![8492a63f2139d90558276afcd61df51b.png](https://img8.php1.cn/3cdc5/fe82/525/b95fe8c2cee244c4.png)
图9 C1上行出口带宽利用率序列成份1
![0646152fbc9478e39fcceb53eb1c218a.png](https://img8.php1.cn/3cdc5/fe82/525/b15ec5cad4f911ac.png)
图10 C1上行出口带宽利用率序列成份2
![088d61c25dd6b39780777cf1b01eba2b.png](https://img8.php1.cn/3cdc5/fe82/525/20bd023aa69dd7a8.png)
图11 C1上行出口带宽利用率序列成份3
不难看出,成份1和成份2为常规成份,每日持续存在或者周期出现,序列成份3则是引起C1上行出口整体带宽利用异常并影响业务的主要因素,出现时间和异常点吻合。
再对C1上行出口的Netstream流分析,可以找出序列3对应的业务流,根据业务流的源地址可以知道是从哪里来的流量导致的问题,但还需要知道是新业务产生的流,还是其他路径的流切换到这里的,如果是切换来的,还需要知道是什么原因导致的切换。
接下来进行相关性关联分析,分为事件关联分析和实体关联分析:
事件关联分析 在C1上行出口相关的网络范围内基于时间做关联分析,发现在相同时间内有接入到汇聚的链路A-B2有故障事件。
实体关联分析 网络设计中,网络设备C2上行口和网络设备C1上行口有备份关系,即二者是接口带宽利用率分析的相关实体。
对C2上行口的带宽利用率也进行成份分析,结果参见图12。
![4f3b755958711f7293289bfd6e1129a0.png](https://img8.php1.cn/3cdc5/fe82/525/3bfec2b5af1ab956.png)
图12 C2上行出口带宽利用率序列成份分析
综合上述分析可以得出,导致C1上行出口利用率异常冲高的成份,正是C2上行出口减少的成份。根据网络拓扑,正是由于A-B2设备之间链路的故障导致一部分流量的路径由“A-B2-C2-上行口”切换为“A-B1-C1-上行口”,从而导致C1上行口带宽利用率过高。
结束语
网络设备智能分析领域,数据和方法的结合是一个渐进的过程。目前从技术应用上,有一定的成果但不成熟,依旧任重道远,但智能化为可靠性网络保驾护航必将是一个趋势。
目前,在网络设备智能分析领域,既有新华三这样的设备制造商也有像BAT这样的互联网企业,还有网管产品厂商,这些参与者之间既有共性的方法和技术,也有各自不同的视角和偏重,相互竞争、相互合作、相互参考中共同推动网络分析智能化进程。
新华三SNA架构中的SeerAnalyzer产品结合新华三多年的产品服务经验,深度结合产品的数据能力,将经验和数据挖掘技术相结合,力图提升SNA整体的智能分析能力。
新华三数字化联接
长按扫码关注我们,
更多精彩敬请期待!
![0b4f4d410d27a75d2864377dff529a3e.png](https://img8.php1.cn/3cdc5/fe82/525/ffa8c2826882050a.jpeg)
点
这里“阅读原文”,查看更多