一种虚拟机异常检测方法、装置、设备及存储介质与流程

文档序号:16811237发布日期:2019-02-10 13:40阅读:215来源:国知局
一种虚拟机异常检测方法、装置、设备及存储介质与流程
本发明涉及信息及通讯技术(informationandcommunicationtechnologies,ict)的计算机性能指标监控及异常检测领域,特别涉及一种虚拟机异常检测方法、装置、设备及存储介质。
背景技术
:云计算通过虚拟化等技术将现有的硬件资源进行整合,形成共享的资源池,使业务系统能够按需获取计算、存储以及网络资源,有效地解决了传统it基础架构存在的问题。虚拟机是云平台的核心部件,负责为业务系统提供计算和存储资源,从而保证业务系统的正常运行。然而,随着业务系统种类和数量的不断增多,云平台的规模不断扩大,云平台变得日益复杂,使得虚拟机在运行过程中很容易出现异常。虚拟机异常的存在不仅会导致业务系统无法正常运行,造成各种难以估量的损失;而且会引发企业对云计算的担忧,阻碍云计算的发展和应用。因此,需要引入虚拟机异常检测技术,及时发现虚拟机的异常行为,以提醒管理员采取必要措施,来保证虚拟机的正常运行。由于虚拟机往往包含多个系统资源监控指标,因此可采用近年来业界广泛研究的多变量统计分析来应用于过程监控和故障诊断。传统的多变量统计监控方法多采用主元分析(principlecomponentanalysis,pca),它将数据空间分解为主元子空间和残差子空间,每一组测量数据都可以投影到这两个子空间内,同时在两个空间中分别引入hotellingt2(衡量包含在主元模型中的信息量的大小)和平方预测误差spe(squaredpredictionerror,衡量不能被主元模型所描述的信息量的大小)这两个统计量来监测故障的发生。一般认为t2体现的是系统性变化,spe体现的是非系统性变化,也就是说,基于残差空间的spe更能反映异常特征。pca的问题在于,它是基于信号二阶统计特性的分析方法,一般需要假设过程变量服从高斯分布。采用pca算法的异常告警检测系统如图1所示,pca算法服务接收时间序列源数据(即时间序列数据),经过处理后输出检测的异常时间点,同时作为告警服务的输入,从而产生异常告警。另一种使用较多的方法是独立元分析方法(independentcomponentanalysis,ica),与pca不同,它是一种基于信号高阶统计特性的分析方法,其目的是将观察得到的数据进行某种线性分解,利用源信号的独立性和非高斯性,使其分解成统计独立的成分。将ica应用于异常检测时,与pca一样,对应引入i2(衡量包含在独立元模型中的信息量的大小)和平方预测误差spe(squaredpredictionerror,衡量不能被独立元模型所描述的信息量的大小)这两个统计量来监测故障的发生。ica的问题在于,它的假设前提是独立成分需要具有非高斯分布,否则将无法确定混合矩阵。采用ica算法的异常告警检测系统如图2所示,ica算法服务接收时间序列源数据,经过处理后输出检测的异常时间点,同时作为告警服务的输入,从而产生异常告警。由于虚拟机上承载的业务类型和应用行为多种多样,实际系统观测到的数据分布往往并不理想,兼具有高斯和非高斯分布的特点,因此仅采用传统的pca或ica方法,就可能会造成故障的误报和漏报。从已公开的一些专利和文献来看,有学者尝试将ica算法用于高斯和非高斯信号的划分,但实际并没有克服ica算法的假设前提,且对于高斯和非高斯信号的划分缺乏比较好的指导原则;还有学者考虑时间序列的相关性,将数据按滑窗划分为一个个局部片段数据,这样虽然窗口内的数据可能不会形成复杂的分布,但由于样本个数会大大减少,实际并不适合实施pca、ica等统计学算法。技术实现要素:本发明实施例提供的一种虚拟机异常检测方法、装置、设备及存储介质,解决现有技术无法准确检测虚拟机发生异常行为的时间点的问题。根据本发明实施例提供的一种虚拟机异常检测方法,包括:获取虚拟机的非高斯性的残差数据;对所述非高斯性的残差数据进行独立元分析,确定所述虚拟机发生异常行为的时间点。根据本发明实施例提供的一种虚拟机异常检测装置,包括:残差获取模块,用于获取虚拟机的非高斯性的残差数据;异常确定模块,用于对所述非高斯性的残差数据进行独立元分析,确定所述虚拟机发生异常行为的时间点。根据本发明实施例提供的一种虚拟机异常检测设备,包括:处理器,用于获取虚拟机的非高斯性的残差数据,并对所述非高斯性的残差数据进行独立元分析,确定所述虚拟机发生异常行为的时间点;存储器,用于存储供所述处理器执行的程序。根据本发明实施例提供的一种存储介质,其上存储有处理器可执行的程序,该程序使处理器执行以下步骤:获取虚拟机的非高斯性的残差数据;对所述非高斯性的残差数据进行独立元分析,确定所述虚拟机发生异常行为的时间点。本发明实施例提供的技术方案具有如下有益效果:1、本发明实施例通过ica在pca残差空间中提取非高斯独立元,得到的检测结果更准确、有效;2、本发明实施例通过pca处理后的残差空间对非高斯信息进行一定程度的保留,能够更全面地捕获异常信息。附图说明图1是采用pca算法的异常告警检测系统框图;图2是采用ica算法的异常告警检测系统框图;图3是本发明实施例提供的虚拟机异常检测方法流程图;图4是本发明实施例提供的虚拟机异常检测系统的实际运行图;图5是图4的pca算法服务处理流程图;图6是图5的ica算法服务处理流程图;图7是本发明实施例提供的虚拟机异常检测装置框图;图8是本发明实施例所处理的一组数据图,包含cpu、磁盘读写、网络i/o、内存等6个维度的数据,左边是训练集,右边是测试集;图9是针对图8数据采用传统pca方法的处理结果图,左边针对训练集数据,右边针对测试集数据;图10是针对图8数据采用基于pca残差的ica算法的处理结果图,左边针对训练集数据,右边针对测试集数据;图11是本发明实施例所处理的另一组数据图,同样包括cpu、磁盘读写、网络i/o、内存等6个维度的数据,左边是训练集,右边是测试集;图12是针对图11数据采用传统pca方法的处理结果图,左边针对训练集数据,右边针对测试集数据;图13是针对图11数据采用基于pca残差的ica算法的处理结果图,左边针对训练集数据,右边针对测试集数据。具体实施方式以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。本发明实施例适用于检测虚拟机异常行为,具体应用时,利用对虚拟机的时间序列数据进行处理得到的虚拟机的非高斯性的残差数据,进行独立元分析,得到虚拟机发生异常行为的时间点。图3是本发明实施例提供的虚拟机异常检测方法流程图,如图3所示,步骤包括:步骤s10:获取虚拟机的非高斯性的残差数据。所述步骤s10包括:步骤s101:对所述虚拟机的时间序列数据进行主元分析,得到所述时间序列数据的强高斯性的主元。具体地说,对所述时间序列数据进行主元分解,得到所述时间序列数据的主元;从所述时间序列数据的主元中提取强高斯性的分量,并由所述强高斯性的分量构成所述时间序列数据的强高斯性的主元。其中,从所述时间序列数据的主元中提取强高斯性的分量包括:计算所述时间序列数据的主元的每个分量的表征高斯性强弱的统计值(即jb值);计算所有分量的统计值的总和;按照统计值由小至大的顺序对每个分量进行排序,并计算序列中每个所述分量与排序在前分量的统计值的累计和;根据每个所述分量与排序在前分量的统计值的累计和、所述所有分量的统计值的总和,计算高斯性成分占比,并根据所述高斯性成分占比,确定强高斯性的分量。所述步骤s10还包括:步骤s102:根据所述强高斯性的主元和所述时间序列数据,得到非高斯性的残差数据。具体地说,利用所述强高斯性的主元,进行数据恢复,得到强高斯性的时间序列恢复数据;根据所述时间序列数据和所述时间序列恢复数据,得到非高斯性的残差数据。步骤s20:对所述非高斯性的残差数据进行独立元分析,确定所述虚拟机发生异常行为的时间点,即时间序列数据的异常时间点。所述步骤s20包括:步骤s201:对所述非高斯性的残差数据进行独立元分析,得到用于衡量包含在独立元模型中的信息量的统计值(即i2)和用于衡量不能被所述独立元模型描述的信息量的统计值(即spe)。步骤s202:根据所述i2和所述spe,确定所述虚拟机发生异常行为的时间点。具体地说,将利用所述i2提取的异常时间点和利用所述spe提取的异常时间点合并,作为所述虚拟机的异常时间点。本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,该程序在执行时,包括步骤s10至步骤s20。进一步说,本发明还可以提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时至少实现以下步骤:获取虚拟机的非高斯性的残差数据;对所述非高斯性的残差数据进行独立元分析,确定所述虚拟机发生异常行为的时间点。其中,所述的存储介质可以包括rom/ram、磁碟、光盘、u盘。图4是虚拟机系统实际运行的图示,时间序列数据源作为输入首先流入pca算法服务模块,完成pca残差数据的提取,然后将残差数据流入ica算法服务模块,输出i2与spe统计量所检测出的异常时间点,流入告警服务模块产生告警。其中,pca算法服务模块的处理流程如图4,ica算法服务模块的处理流程如图5。以下结合图4至图6对本发明进行进一步说明。图4是本发明实施例提供的虚拟机异常检测系统实际运行图,如图4所示。具体方案如下:步骤1:系统中的pca算法服务接收来自数据源的时间序列数据(即原始数据)作为输入。步骤2:假设原始数据x∈rn*m,其中,n为样本个数,m为变量个数或者称维数),对x执行pca算法,得到主元x_t∈rn*p,其中,p为主元分量个数。步骤3:对主元x_t进一步提取高斯性较强的分量。具体做法如下:步骤3.1:对主元的每个分量计算jb(jarque-bera)统计量的值,jb的定义如下:jb=n(s2/6+(k-3)2/24)。其中,n是样本点数,s是样本偏度(skewness),k是样本峰度(kurtosis),jb值越大,非高斯性越强,高斯性越弱。步骤3.2:对各个分量的jb值按从小到大的顺序进行排序得到一个序列,如jb=[jb1,jb2,…,jbp],同时记录下各主元分量与该序列值的对应关系,如jb1←→x_t[i],其中x_t[i]表示x_t的第i个主元分量,x_t[i]的jb值为jb1。步骤3.3:对上述已排序的jb序列值计算:累计和/总和,即计算:[jb1/sum(jb),(jb1+jb2)/sum(jb),……,(jb1+…+jbp)/sum(jb)],得到一个值大小范围(0,1]的分值序列,设定高斯性成分占比阈值,保留分值序列中小于阈值的值,并提取序列值所对应的主元分量,形成新的主元x_tnew。步骤4:将主元x_tnew恢复到原始空间,得到x_recover,计算残差:x_res=x-x_recover,其中,x_res∈rn*m,将其作为pca算法服务的输出。本发明实施例实现一种pca残差的改进算法,具体地说,所得到的pca的残差数据,是继续对pca主元按高斯性做进一步筛选形成新主元之后再计算得到的残差,因此与传统的pca算法直接按能量大小提取主元之后所计算的残差不同。步骤5:系统中的ica算法服务接收来自pca算法服务的输出x_res数据,对x_res执行ica算法,进行独立元分解,计算i2和spe统计量。对i2与spe统计量设定检测阈值,分别提取异常时间点,然后将i2与spe的异常检测结果进行合并,作为ica算法服务的输出。本发明实施例的pca/ica算法服务的输入输出接口部分,pca服务并不直接输出异常时间点,而仅输出pca的残差数据。ica算法服务的输入也并非原始数据,而是pca的残差数据,最终的检测结果来自于对pca残差数据的ica数据处理。步骤6:系统中的告警服务接收来自ica算法服务的输出,即异常时间点,产生相应的告警。图5是图4的pca算法服务处理流程图,如图5所示,包括:首先对原始数据x∈rn*m执行pca算法,提取主元x_t;然后对主元x_t进一步提取高斯性较强的分量,形成新主元x_tnew;最后将新主元x_tnew还原到原始数据空间,计算残差x_res∈rn*m并输出。图6是图5的ica算法服务处理流程图,如图6所示,包括:首先对残差x_res∈rn*m执行ica算法,分解独立元;然后计算i2和spe统计量,分别提取异常;最后合并i2与spe的异常检测结果并输出。本实施例中原始数据(即时间序列数据)通过pca分解得到的残差空间相比主元空间,更有利于反映异常特征,因此本发明实施例考虑将pca的残差空间作为继续分析的基础。进一步,考虑ica对非高斯源信号的处理优势,在计算pca残差时,并不是直接获取传统pca算法的残差,而是先对pca主元按高斯性做进一步的提取,再返回原始数据空间后计算pca残差,然后通过ica在pca残差空间中提取独立元,计算i2和spe统计量来检测异常,最后合并检测结果。图7是本发明实施例提供的虚拟机异常检测装置框图,如图7所示,包括残差获取模块和异常确定模块。残差获取模块,用于获取虚拟机的非高斯性的残差数据。所述残差获取模块进一步包括主元计算子模块和残差计算子模块,其中,所述主元计算子模块用于对所述虚拟机的时间序列数据进行主元分析,得到得到时间序列数据的强高斯性的主元;残差计算子模块用于根据所述强高斯性的主元和所述时间序列数据,得到非高斯性的残差数据。异常确定模块,用于对所述非高斯性的残差数据进行独立元分析,确定所述虚拟机发生异常行为的时间点,即所述时间序列数据的异常时间点。所述装置的工作过程包括:主元计算子模块对所述时间序列数据进行主元分解,得到所述时间序列数据的主元,从所述时间序列数据的主元中提取强高斯性的分量,并由所述强高斯性的分量构成所述时间序列数据的强高斯性的主元。残差计算子模块利用所述强高斯性的主元,进行数据恢复,得到强高斯性的时间序列恢复数据,并根据所述时间序列数据和所述时间序列恢复数据,得到非高斯性的残差数据。异常确定模块对所述非高斯性的残差数据进行独立元分析,得到i2和spe统计量,并确定所述时间序列数据的异常时间点。其中,主元计算子模块计算所述时间序列数据的主元的每个分量的jb值和所有分量的jb值的总和,按照jb值由小至大的顺序对每个分量进行排序,并计算序列中每个所述分量与排序在前分量的jb值的累计和,然后根据每个所述分量与顺序在前分量的jb值的累计和、所述所有分量的jb值的总和,计算高斯性成分占比,并根据所述高斯性成分占比,确定强高斯性的分量。本实施例提供一种虚拟机异常检测设备,包括:处理器,用于获取虚拟机的非高斯性的残差数据,并对所述非高斯性的残差数据进行独立元分析,确定所述虚拟机发生异常行为的时间点;存储器,用于存储供所述处理器执行的程序,其可以与所述处理器耦接。评估本发明实施例算法相比传统算法改进的方法是,设定相同的训练集和测试集,其中测试集为根据数据采集现场反馈的异常比较集中的时间段,对检测统计量设定相同的阈值判断标准,考察本发明实施例算法是否能在已知异常时间段上检测出更多的异常数据点。应用实例1图8所采集的数据,包含时间段2016.10.1~2016.11.11,现场反馈11月7日18:00至次日12:00之间,业务有过多次异常。将2016.11.718:00~2016.11.812:00时间段设为测试集,剔除该部分数据后余下的数据设为训练集。采用传统pca算法的异常检测结果如图9所示,其中,设定pca主成分能量占比为85%,检测统计量t2和spe按核密度方法估计概率密度,并根据累计概率分布值取99.7%的阈值限提取异常。结果显示,在测试集中,pcat2未检出异常,pcaspe检测出一段时间的异常。采用基于pca残差的ica算法的异常检测结果如图10所示,同样设定pca主成分能量占比阈值为85%,得到4个主元分量x_t[0]、x_t[1]、x_t[2]、x_t[3],计算4个主元分量的jb值,先从小到大排序,然后计算累计和/总和,如表1所示。表1.应用实例1的累计和/总和表主元分量jb累计和/总和x_t[3]4.745843e+029.973862e-08x_t[0]4.537954e+069.537958e-04x_t[2]1.088366e+073.241106e-03x_t[1]4.742859e+091.000000e+00设定主元高斯性成分占比阈值85%,实际提取的主元为x_t[0]、x_t[2]、x_t[3],而x_t[1]因为非高斯性较强而剔除。将x_t[0]、x_t[2]、x_t[3]所构成的新主元空间返回到原始数据空间计算得到pca残差。检测统计量取累计概率分布值99.7%的阈值。结果显示,在测试集中,icai2与spe各检出一段时间的异常,其中i2的检测结果与pcaspe检出的时间段比较一致。从综合结果来看,本发明实施例方法所检出异常点数多于传统pca方法,且从原始数据看,pca所漏检的时间段,系统资源确实有较大幅度的变化。应用实例2图11所采集的数据,包含时间段2017.1.1~2017.2.28,现场反馈2月25日8:00至12:00之间,业务体验异常。将2017.2.258:00~2017.2.2512:00时间段设为测试集,剔除该部分数据后余下的数据设为训练集。采用传统pca算法的异常检测结果如图12所示,其中,设定pca主成分能量占比阈值为85%,检测统计量t2和spe按核密度方法估计概率密度,并根据累计概率分布值取99.7%的阈值提取异常。结果显示,在测试集中,pcat2与pcaspe均未检出异常,与业务体验完全不符。采用基于pca残差的ica算法的异常检测结果如图13所示,同样设定pca主成分能量占比为85%,得到4个主元分量x_t[0]、x_t[1]、x_t[2]、x_t[3],计算4个主元分量的jb值,先从小到大排序,然后计算累计和/总和,如表2所示。表2.应用实例2的累计和/总和表主元分量jb累计和/总和x_t[2]1.316693e+040.000001x_t[3]3.613565e+040.000004x_t[0]9.596462e+050.000088x_t[1]1.152558e+101.000000设定主元高斯性成分占比阈值85%,实际提取的主元为x_t[0]、x_t[2]、x_t[3],而x_t[1]因为非高斯性较强而剔除。将x_t[0]、x_t[2]、x_t[3]所构成的新主元空间返回到原始数据空间计算得到pca残差。检测统计量取累计概率分布值99.7%的阈值限。结果显示,在测试集中,icaspe检出了比较密集的异常时间段。从综合结果来看,本发明方法所检出异常点数多于传统pca方法,且从原始数据看,测试集所在的时间段,系统资源确实有比较剧烈的异常波动。综上所述,本发明实施例是基于传统pca和ica异常检测方法的改进,与传统方法比较,本发明实施例具有以下技术效果:1.传统pca算法在提取主元时仅考虑能量大小因素,没有考虑数据分布情况,采用本发明实施例的算法,对传统pca所提取的主元分量按高斯性进行进一步的提取,即保留pca主元中高斯性较强的分量作为实际的pca主元。2.传统pca算法得到的残差空间仅仅反映能量特征,采用本发明实施例的算法,所获取的残差空间非高斯性也会得到增强,这具有两点好处,首先,pca残差体现非系统性变化,相比主元更易检测到异常;其次,异常往往具有突发,量少的非高斯性特点,因此非高斯增强说明残差空间捕获的异常将更为全面,在非高斯性较强的pca残差空间中检测异常效果会更好。3.传统的ica算法适合非高斯源信号的处理,因此,相比直接输入原始信号,采用本发明实施例获取的具有较强非高斯性的pca残差数据更适合ica算法的处理,因此得到的检测结果将更加准确、有效。尽管上文对本发明进行了详细说明,但是本发明不限于此,本
技术领域
技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1