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