网络运维场景中异常检测算法选择框架
技术热点Technical  Focus
编辑:贾静宇E-mail: *************
洗碗机有用
高速免费日期2022元旦
技术热点
Technical  Focus
周期、非周期等关键模式后,由运维业务专家和算法专家配合,提取时序数据的周期长度、极值、均值、方差、振幅等统计特征,然后根据经验选择相应的算法进行模型训练或异常检测推理。
但现有方案仍有一定的改进空间,主要是自动化程度不足、时效性差,具体体现在以下两个方面:一数据中心网络实时产生海量的KPI 数据,如对数据进行离线分析则需要大量的人工参与,且算法模型
研究周期长、生产效率低、维护成本高,其时效性无法满足大规模业务需求;二随着上层业务发展,其底层网络KPI 特征也会发生改变,而现有方案无法及时动态调整优化模型,造成模型性能劣化,进而导致现网KPI 检测能力大幅降低。
因此针对现有技术方案的缺点,本文提出一种在数据中心网络运维场景中,基于时序数据智能分析的异常检测算法选择框架,目的是构建一个自动化的异常检测框架,以实现动态选择算法、快速构建模型的能力。同时针对自动化的实现KPI 波形分类和算法选型两个技术难点,提出了相应的方案。
(1)为实现对KPI 数据波形进行自动化分类的能力,提出一种针对时间序列异常检测的KPI 数据波形分类方法,通过对KPI 时间序列的特征提取和识别,将KPI 分为不同类别以用来进行异常检测算法选择。
(2)为实现基于KPI 波形进行算法自动化选型的能力,提出一种基于时间序列波形自动识别的异常
检测算法动态选择方法和机制,能够根据数据的不同特点自动选择最优的异常检测算法。
2 基于时间序列的数据分类及异常检测
技术分析
2.1 时间序列分类
时间序列分类[4]是数据挖掘中的一项重要任务,目前针对时间分类的算法主要分为基于距离的和基于特征的分类方法。其中基于距离的方法通过衡量测试样本与训练集样本之间的相似性,进而选择与测试样本最相似的训练样本标签作为其类标,通常衡量方法是将K 最近邻算法(K-Nearest Neighbour,以下简称“KNN 算法”)与特定的距离度量方法相结合。虽基于欧式距离的KNN 算法在大多数分类任务上会有不错的精度,但由于其在计算中不考虑时间因素,因此当监控KPI 中存在着时间扭曲、位移的情况时,就可能导致两个原本相似的时序数据产生很大的欧式距离[5],更为关键的一点是,针对两个不等长时间序列(由于不同设备采样时间精度不一致,因此导致在相同时间内采集的样本数量不一致),欧式距离无法度量两者之间的相似性。
基于动态时间扭曲(Dynamic Time Warpping,DTW)[6]的最近邻分类方法,采用动态规划的思想,以两个时间序列构成一个距离矩阵进而在其中寻
图 1 
现有技术方案流程框架
技术热点Technical  Focus
序列间的最优匹配。但其缺点是时间复杂度过高,针对给定长度n的时间序列A={a1,a2,…,a n}和B={b
海南旅游介绍1
女士香水品牌>好听的古代女子名字,b2,…,bn },需要定义矩阵M∈R(n×n),在矩阵M(i,j)中寻两时间序列的最优匹配时,其时间复杂度为O(n2 )。为了解决时间复杂度问题,很多研究人员提出了改进的DTW算法,Bilel Ben Ali等人[7]通过对搜索空间添加约束以实现DTW的加速。Jeong等人通过定义一种权值函数,用于赋予离对角线近的点较低的权值、离对角线远的点较高的权值,使得时间间隔越小的点越容易被匹配成功[8]。基于形状相似性的时间序列距离度量方法[9]解决了DTW 算法时间复杂度高且无法处理时间序列中的幅度、位移的不变性问题,其通过引入一种时间滞后信号的相似性度量方法——互相关(cross correlation)度量,互相关度量是一种统计度量方法,即使两个非对准的序列也可以度量其之间的相似性。
基于特征提取的时间序列分类方法相比于基于距离计算的时间序列分类方法,更另辟蹊径地关注如何有效地提取时间序列的特征,具备了将比较原始时间序列之间的相似性转化成比较提取后的特征之间相似性的能力。对时间序列进行高级特征提取可同步消除时序数据中的噪声、降低时间序列中冗余成分。基于特征提取的分类方法主要分为两类:一是符号化的特征提取,其首先对时间序列进行分段聚合近似(Piecewise Aggregate Approximation)[10]、离散傅里叶变换(Discrete Fourier Transform)[11]等一系列变换,然后对变换后的时间序列进行符号化处理,最终将原始时序数据的比较转换为字符串之间的比较[12-13];二是基于Shapelet的特征提取,通过寻序列的最长子序列,进而通过子序列来度
量序列间的相似性,但早期寻Shapelet的时间复杂度非常高,Grabocka等人提出了LTS[14]一种自学习Shapelet 的方法,一次能够学习出k个最佳的Shapelet,同时由于该方法没有暴力搜索的过程,在时间复杂度上远低于原始的搜索复杂度。
2.2  时间序列异常检测
异常检测按照训练数据是否有标签可分为有监督学习方法和无监督学习方法。有监督学习方法的训练数据有着准确的类别标签,通常是在对数据进行处理后,利用SVM[15]、决策树[16]等分类算法进行异常判断,有监督的学习在数据样本准确且充足的情况下能获得较好的检测结果,但现实检测过程中数据样本往往是少量且多变的。而相较于基于标签的机器学习方法,无监督异常检测算法训练时不需要数据携带标签,其核心思想是利用数据集的整体特性得出划分异常的规则。常见无监督检测算法主要分为基于统计分布、基于距离和基于密度三类。基于统计分布的异常算法,其通常是假设给定数据集服从某个概率分布再以此拟合出对应数据集的分布,进而验证数据与分布之间的偏离程度,最终确定数据的异常程度,常见的算法有3σ准则[17]、Dixon校验[18]等。基于统计的方法一般应用于低维数据场景,针对高维数据,因其拟合数据分布的计算复杂度过高而难以应用。基于距离的主要思想是先计算样本点与数据集之间的距离再比较此距离与指定阈值之间的大小,进而判定样本是否异常,常见的算法有KNN算法[19]、ODIN算法[20]等。基于距离的方法因需要计算检测点与数据集之间的距离,所以时间复杂度较高,针对大数据集不适用,同时检测的精度过分依赖于指定阈值的大小;基于密度的
方法是基于距离方法的提升版,它利用样本点与k 近邻域里的样本点的密度之比区分正常与异常,常见的算法有LOF算法[21]、COF算法[22]等。基于密度的算法与基于距离的算法一样有着算法时间复杂度高的问题。
3 异常检测算法选择框架架构设计
基于时序数据智能分析的异常检测算法选择框架如图2所示。
框架整体上分为服务端和设备端(即网络硬件设备,如交换机、路由器、防火墙等)两个关键部件,其中服务端的功能是持续采集提取各设备端的KPI 数据,进行数据预处理,并提取特征进行时间序列
技术热点
Technical  Focus
波形自动分类,将分类结果下发给设备端,同时服务端可以通过人工触发或定期触发的方式向各设备
端下达模型更新指令;设备端的功能是接收服务端的模型更新指令,启动算法匹配程序,根据KPI 波形分类结果从算法库中动态选择异常检测算法,并完成模型训练或在线推理。具体步骤如下。
(1)各设备端实时采集每个KPI 时间序列数据,并持续上报给服务端,在服务端的存储设备中进行数据存储。
(2)从服务端存储设备中解析提取每个KPI 的全部历史数据,按采集的时间顺序进行排序,生成KPI 历史数据集。
(3)数据预处理模块主要对KPI 历史数据进行数据预处理,包括滤波去噪、缺失值检查与填补等操作。如图3所示,通过该模块对红圈处缺失的数据进行了补齐。繁荣的近义词
图 3 数据预处理
a 预处理前
b 预处理后
图 2 
异常检测算法选择框架
(4)时间序列分类模块主要实现时间序列波形分类算法,对KPI 数据进行波形分类。首先,分析提取KPI 数据的序列特征,主要为序列长度和序列极值,通过这两个特征,可将少点型、低值型、直线型KPI 自动识别出来。然后,进一步对KPI 数据进行相关性计算,主要为快速傅里叶变换和自相关计算,可将周期型KPI 识别出来。最后,对KPI 数据继续计算提取统计特征,包括一阶差分、二阶差分、3Sigma 等特征,将趋势型、震荡型、突变型KPI 识别出来。最终得到每个KPI 的波形分类结果,并下发给设备端。
波形分类结果信息主要包括KPI 名称、波形类别名称或标签以及周期长度(无周期时默认为0)、最大值、最小值、均值、方差等统计特征,如图4所示。
(5)算法匹配模块主要实现依据KPI 波形分类结果信息自动选择异常检测算法,为每个KPI 精准匹配算法,如周期型KPI 可以选用动态基线算法进行异常检测,并根据统计特征自动设定突变阈值的百分比。算法匹配模块的输出结果信息包括KPI 名称、算法名称、阈值等,专家可对该结果进行修改确认,如图5
所示。
技术热点
Technical  Focus
(6)模型训练/推理模块主要实现根据KPI 的算法匹配结果,调用相应算法进行异常检测模型训练或在线推理。
4 应用实践及效果
以银联现网某设备端口流量KPI ——TCP 上行比特率为例,进行系统的实践验证。
首先,在设备端以每分钟一个点的采样频率实时采集端口TCP 上行比特率数据,并上传到服务端的大数据平台存储节点,按照时间顺序进行存储。
其次,服务端大数据平台的计算节点提取全量的TCP 上行比特率数据进行数据预处理,通过平滑插值的方式填补因漏采或漏传而缺失的时间点数据,得到完整的时间序列数据,如图6所示。
时间序列分类模块接着对TCP 上行比特率时间序列数据进行分析和计算,提取数据的序列长度、最值、均值、方差等统计特征,并运用时间序列分解算法提取出数据的周期和趋势,通过综合分析计算得出结论:该数据为稳定的周期型时间序列,且周期长度为1天,即1 440(每分钟采样一次,一天采
样数量为1 440)个采样点为一个周期,数据最
大值为999.02,最小值为1.00,均值为94.28,方差为32 459.83。最终输出波形分类结果信息发送给设备端,并下发模型更新指令。
设备端接收到KPI 的波形分类结果信息,以及
模型更新指令后,启动算法匹配模块,根据TCP 上传比特率时间序列数据周期性的特点以及其周期长度、取值范围、波动程度等关键信息,自动计算匹配得到适用于稳定周期型时间序列异常检测的动态基线算法,并设定动态阈值为20%。
最后,模型训练/推理模块使用动态基线算法对TCP 上行比特率数据进行模型训练,算法参数根据
数据特征和模型训练效果动态调整,反复迭代训练寻最优参数,最终生成动态基线,进而用基线和设定阈值进行实时的在线异常检测,检测效果如图7所示。
5 结语
本文提出的基于时序数据智能分析的异常检测图 4 
时间序列波形分类算法
图 5 算法匹配模块
图 6 TCP
上行比特率时间序列数据
图 7 TCP
上行比特率异常检测效果示例

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。