用于检测系统异常的方法及其装置转让专利

申请号 : CN201811622495.6

文献号 : CN110032490A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蒋丹妮何东杰茅毓铭张高磊周雍恺

申请人 : 中国银联股份有限公司

摘要 :

本发明涉及计算机技术,具体涉及用于检测系统异常的方法、实现该方法的装置和计算机可读存储介质。按照本发明一个方面的用于检测系统异常的方法包含下列步骤:A)确定监控指标的历史值的特征向量;以及B)对所述特征向量进行聚类分析以得到一个或多个频繁模式以用于判断系统是否异常,所述特征向量与所述监控指标的波动性和所述监控指标之间的关联性相关。

权利要求 :

1.一种用于检测系统异常的方法,其特征在于,包括下列步骤:A)确定监控指标的历史值的特征向量;以及

B)对所述特征向量进行聚类分析以得到一个或多个频繁模式以用于判断系统是否异常,所述特征向量与所述监控指标的波动性和所述监控指标之间的关联性相关。

2.如权利要求1所述的方法,其中,所述监控指标包括下列中的一项或多项:所述系统中不同业务类型的链接数、吞吐量、队列长度、响应时间和成功率。

3.如权利要求1所述的方法,其中,所述步骤A)包括:

按照移动的时间窗口长度和步长对所述监控指标的历史值进行采样,其中,同一时间窗口长度内的监控指标的历史值构成一个训练样本;以及针对每个所述训练样本,利用其中的监控指标的历史值的统计特征分量构建相应的特征向量。

4.如权利要求3所述的方法,其中,针对每个所述训练样本进行归一化处理之后再确定其相应的统计特征分量。

5.如权利要求3所述的方法,其中,在步骤B)中,通过对所述训练样本的特征向量进行聚类分析以得到所述频繁模式。

6.如权利要求3所述的方法,其中,所述统计特征分量包括下列中的一项或多项:最大值、最小值、平均值、方差、偏度、峰度、一阶差分值以及所述最大值和最小值在所述训练样本中的相对位置。

7.如权利要求4所述的方法,其中,在聚类分析时,动态改变所述统计特征分量的权重,使得属于同一频繁模式的训练样本的距离小于第一阈值,而属于不同频繁模式的训练样本的距离大于第二阈值。

8.如权利要求3所述的方法,其中,所述移动的时间窗口长度和步长根据实际业务场景确定,其中,能够同时使用多种时间窗口长度和步长。

9.如权利要求1至8中任一项所述的方法,其中,依照下列方式确定系统是否异常:C1)确定当前监控指标的特征向量;以及

C2)基于当前监控指标的特征向量与所述频繁模式之间的距离确定系统是否处于异常状态。

10.如权利要求9所述的方法,其中,在步骤C2)中,如果当前监控指标的特征向量与所述频繁模式之间的距离小于设定的阈值,则确定系统处于正常状态,否则,则确定系统处于异常状态。

11.一种系统的异常检测装置,其包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至

10中任一项所述的用于检测系统异常的方法。

12.一种计算机可读介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至10中任一项所述的用于检测系统异常的方法。

说明书 :

用于检测系统异常的方法及其装置

技术领域

[0001] 本发明涉及计算机技术,具体涉及用于检测系统异常的方法、实现该方法的装置和计算机可读存储介质。

背景技术

[0002] 传统系统异常检测的技术重在监控和发现系统异常,常见的做法是根据预先设定的规则对系统中的关键指标进行实时监控,如果发现异常则立即报警。例如,如果监控的关键指标超过了规定的阈值则触发报警。
[0003] 上述系统异常检测技术一般属于事中型和事后型,即发现异常后报警并采取补救措施。然而,当异常发生时系统往往已经压力过大,即使采取补救措施也难以达到理想的效果,从而对系统造成的影响甚至较大的损失。
[0004] 在新兴的智能异常检测领域,目前的相关技术尚未成熟,仍处于探索和发展的阶段,在实际异常检测场景中的应用还存在以下问题:1.许多情况下系统异常故障的发生与多个指标相互关联,单个指
标的波动现象不足以反映系统的健康状态;
2.大多数监控数据缺少数据标签,人工标注训练数据集合的工作
量大且成本高;
3.异常样本数量较少或覆盖面不全。一般系统多数时间处于正常
状态,异常样本较少,而且需要检测未知的新异常的发生。
[0005] 公开于本发明背景部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。

发明内容

[0006] 本发明的一个方面是提供一种用于检测系统异常的方法。
[0007] 按照本发明的一个方面的一种用于检测系统异常的方法,其中,包括下列步骤:A)确定监控指标的历史值的特征向量;以及
B)对所述特征向量进行聚类分析以得到一个或多个频繁模式以用于判断系统是否异常,所述特征向量与所述监控指标的波动性和所述监控指标之间的关联性相关。
[0008] 可选地,在上述方法中,所述监控指标包括下列中的一项或多项:所述系统中不同业务类型的链接数、吞吐量、队列长度、响应时间和成功率。
[0009] 可选地,在上述方法中,所述步骤A)包括:按照移动的时间窗口长度和步长对所述监控指标的历史值进行采样,其中,同一时间窗口长度内的监控指标的历史值构成一个训练样本;以及
针对每个所述训练样本,利用其中的监控指标的历史值的统计特征分量构建相应的特征向量。
[0010] 可选地,在上述方法中,针对每个所述训练样本进行归一化处理之后再确定其相应的统计特征分量。
[0011] 可选地,在上述方法中在步骤B)中,通过对所述训练样本的特征向量进行聚类分析以得到所述频繁模式。
[0012] 可选地,在上述方法中,所述统计特征分量包括下列中的一项或多项:最大值、最小值、平均值、方差、偏度、峰度、一阶差分特征以及所述最大值和最小值在所述训练样本中的位置。
[0013] 可选地,在上述方法中,在聚类分析时,动态改变所述统计特征分量的权重,使得属于同一频繁模式的训练样本的距离小于第一阈值,而属于不同频繁模式的训练样本的距离大于第二阈值。
[0014] 可选地,在上述方法中,所述移动的时间窗口长度和步长根据实际业务场景确定,其中,能够同时使用多种时间窗口长度和步长。可选地,在上述方法中,依照下列方式确定系统是否异常:C1)确定当前监控指标的特征向量;以及
C2)基于当前监控指标的特征向量与所述频繁模式之间的距离确定系统是否处于异常状态。
[0015] 可选地,在上述方法中,在步骤C2)中,如果当前监控指标的特征向量与所述频繁模式之间的距离小于设定的阈值,则确定系统处于正常状态,否则,则确定系统处于异常状态。
[0016] 本发明另一方面的目的是提供一种系统的异常检测装置。
[0017] 按照本发明的另一方面的一种系统的异常检测装置,其包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现上述用于检测系统异常的方法。
[0018] 本发明又一方面的目的是提供一种计算机可读存储介质。按照本发明又一方面的计算机可读存储介质,其上存储计算机程序,该计算机程序被处理器执行时实现上述的用于检测系统异常的方法。
[0019] 根据本发明的一个方面的用于检测系统异常的方法,其在系统监控的时效性方面,本发明的一个方面的用于检测系统异常的方法能够检测出监控指标的异常波动模式,在系统发生异常之前进行告警,以提高系统的鲁棒性。在异常检测的准确性方面,本发明的一个方面的用于检测系统异常的方法基于多维监控指标的关联性分析以识别系统异常情况,适合于复杂系统的实际运维场景。
[0020] 多种其它特征和优点将从如下详细描述和附图中显而易见。

附图说明

[0021] 本发明的上述和/或其它方面和优点将通过以下结合附图的各个方面的描述变得更加清晰和更容易理解,附图中相同或相似的单元采用相同的标号表示。附图包括:图1示出了按照本发明一实施例的用于检测系统异常的方法的流程图。
[0022] 图2示出了按照本发明一实施例的用于确定频繁模式的方法的流程图。
[0023] 图3示出了按照本发明一实施例的系统的异常检测装置的示意框图。

具体实施方式

[0024] 在本说明书中,参照其中图示了本发明示意性实施例的附图更为全面地说明本发明。但本发明可以按不同形式来实现,而不应解读为仅限于本文给出的各实施例。给出的各实施例旨在使本文的披露全面完整,以将本发明的保护范围更为全面地传达给本领域技术人员。
[0025] 诸如“包含”和“包括”之类的用语表示除了具有在说明书和权利要求书中有直接和明确表述的单元和步骤以外,本发明的技术方案也不排除具有未被直接或明确表述的其它单元和步骤的情形。诸如“第一”和“第二”之类的用语并不表示单元在时间、空间、大小等方面的顺序而仅仅是作区分各单元之用。
[0026] 下文参考根据本发明实施例的方法和系统的流程图说明、框图和/或流程图来描述本发明。将理解这些流程图说明和/或框图的每个框、以及流程图说明和/或框图的组合可以由计算机程序指令来实现。可以将这些计算机程序指令提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器以构成机器,以便由计算机或其他可编程数据处理设备的处理器执行的这些指令创建用于实施这些流程图和/或框和/或一个或多个流程框图中指定的功能/操作的部件。
[0027] 可以将这些计算机程序指令存储在计算机可读存储器中,这些指令可以指示计算机或其他可编程处理器以特定方式实现功能,以便存储在计算机可读存储器中的这些指令构成包含实施流程图和/或框图的一个或多个框中指定的功能/操作的指令部件的制作产品。
[0028] 可以将这些计算机程序指令加载到计算机或其他可编程数据处理器上以使一系列的操作步骤在计算机或其他可编程处理器上执行,以便构成计算机实现的进程,以使计算机或其他可编程数据处理器上执行的这些指令提供用于实施此流程图和/或框图的一个或多个框中指定的功能或操作的步骤。还应该注意在一些备选实现中,框中所示的功能/操作可以不按流程图所示的次序来发生。例如,依次示出的两个框实际可以基本同时地执行或这些框有时可以按逆序执行,具体取决于所涉及的功能/操作。
[0029] 图1示出了按照本发明一实施例的用于检测系统异常的方法的流程图。
[0030] 在步骤110中,确定监控指标的训练样本及特征向量,其包括以下子步骤:按照指定时间窗口长度和步长对所述监控指标进行采样,其中,同一时间窗口长度内的监控数据构成一个训练样本;以及针对每个所述训练样本,通过提取时间窗口统计特征构建相应的特征向量。例如,系统不同业务类型的链接数、吞吐量、队列长度、响应时间和成功率,时间窗口统计特征包括下列中的一项或多项:最大值、最小值、平均值、方差、偏度、峰度、一阶差分值以及所述最大值和最小值在所述训练样本中的位置。
[0031] 可选地,在步骤110中,使用历史监控指标作为样本训练集,以确定每个训练样本的统计特征以构建相应的特征向量。可选地,假定系统中有多个维度的监控指标,每个指标都对应于一段时间序列。按照预定的移动时间窗口长度和步长,将历史监控指标划分为多个子序列,同一时间窗口内的所有监控指标的历史值构成一个训练样本。
[0032] 具体而言,假设监控指标的历史值为过去一天的监控数据,时间戳精确到秒级,监控指标分别为链接数(A)、吞吐量(B)和队列长度(C)三种监控指标。由上可知,时间序列长度为86400秒,以30秒为时间窗口长度,5秒为采样步长将时间序列划分成17280个子序列(即,0秒到30秒作为一个子序列,5秒到35秒作为一个子序列,以此类推)。所以,第i个训练样本中包含A、B、C的三个序列片段[ ],其中, , ,

[0033] 在得到训练样本之后,利用链接数、吞吐量和队列长度三种监控指标的原始数据、时间窗口统计特征和一阶差分特征构建相应的特征向量。在构建样本的特征向量之前,首先对原始数据进行归一化处理,即对原始数据的三个子序列 和 使用min-max方法做归一化处理,以消除数据拉伸、变形对以下步骤中频繁模式挖掘的影响。接着,分别统计三个监控指标在单位时间窗口长度内的最大值、最小值、平均值、方差、偏度、峰度以及最大值和最小值在序列片段中的相对位置,同时对每个子序列做一阶差分运算,即,再分别计算差分后序列的平均值和方差,以此衡量子序列的波动性。
[0034] 在得到上述统计特征分量之后,分别将原始数据 和 、三个指标链接数、吞吐量和队列长度的时间窗口的统计特征 以及一阶差分的平均值和方差有序的拼接在一起,以形成该样本的相应特征向量,其中,max表示最大值,min表示最小值,avg表示平均值,var表示方差,skew表示偏度,kurt表示峰度,以及lt1和lt2分别表示最大值和最小值在序列片段中的相对位置。接着进入步骤120。
[0035] 在步骤120中,对上述特征向量进行聚类分析以得到一个或多个频繁模式。可选地,可以使用基于密度的聚类算法,其可在有噪声的数据空间中发现任意形状的簇结构,选择该算法在多维特征空间中挖掘上述监控指标的频繁模式。基于特征向量确定频繁模式的具体方法将在图2中详细描述。
[0036] 在步骤130中,基于一个或多个频繁模式来检测系统是否异常,其包括以下子步骤:按照上述步骤110和步骤120中所述的方法确定当前监控指标的特征向量;以及基于当前监控指标的特征向量与所述频繁模式之间的距离确定系统是否处于异常状态。如果当前监控指标的特征向量与所述频繁模式之间的距离小于设定的阈值,则确定系统处于正常状态,否则,则确定系统处于异常状态。可选地,所述距离可以是欧式距离。
[0037] 具体而言,基于移动时间窗口计算当前系统监控指标链接数、吞吐量和队列长度的特征向量,其中,时间窗口长度与历史数据采样的时间窗口长度一致。使用链接数、吞吐量和队列长度最近30秒的监控数据作为异常检测的样本数据,并且随时时间推移实时刷新检测样本。按照上述步骤110和步骤120来构建该检测样本的特征向量,分别计算该特征向量与各个频繁模式的距离。如果当前的样本没有落在任何已有的频繁模式中,则视为异常发生,否则系统正常。
[0038] 在上述步骤中,利用移动时间窗口的样本采样方法考虑了对原始数据的累积效应,利用时间窗口统计特征和一阶差分特征构建相应的特征向量,过滤掉单点毛刺的现象,能够减少数据噪声对异常监控的影响。同时,基于频繁模式的离群点判断,能够检测出未知的异常情况。
[0039] 可选地,在上述步骤中,除了利用原始数据、时间窗口统计特征和一阶差分特征,还可以备选地使用其它特征提取方法。可选地,所述移动的时间窗口长度和步长基于异常发生的频率可以动态地调整,根据实际业务场景确定,其中,能够同时使用多种时间窗口长度和步长。可以使用多种时间窗口长度以及随机步长的方法对历史数据进行采样,从而增强数据的多样性,以用于检测短期或长期的指标异常。
[0040] 图2示出了按照本发明一实施例的用于确定频繁模式的方法的流程图。在步骤210中,对通过图1中的步骤确定的监控指标的历史值的特征向量进行聚类分析。可选地,在该步骤中可以使用基于密度的聚类算法,通过样本在特征空间分布的紧密程度,将样本划分为多个聚类簇,即高密度相连的点的最大集合。具体实现步骤如下:定义训练样本为ri;
确定σ邻域,其表示所述训练样本ri中与模式rj的距离小于等于距离阈值σ的样本的集合,即, ,其中,rj表示所述模式的核心对象;
如果所述模式rj的所述σ邻域中至少包含MinPts个所述训练样本,即
MinPts,则定义所述模式rj为频繁模式。其中,MinPts定义为某一样本的距离为σ的邻域中样本个数的阈值。
[0041] 在步骤220中,在聚类分析过程中,动态改变特征向量的统计特征分量的权重,使得属于同一频繁模式的训练样本的距离小于第一阈值,而属于不同频繁模式的训练样本的距离大于第二阈值,并且使得监控指标的历史值中在异常发生前和发生期间的样本为离群点(异常状态),以便更好地区分频繁模式和离群点。其中,第一阈值和第二阈值可以基于监控指标的特点和对系统的重要程度来预先确定。接着进入步骤230。
[0042] 在步骤230中,通过聚类分析确定一个或多个频繁模式rj,基于一个或多个频繁模式来检测系统是否异常。如果当前监控指标的特征向量与所述频繁模式之间的距离小于设定的阈值,则确定系统处于正常状态,否则,则确定系统处于异常状态。其中,所述距离可以是欧式距离或者其它距离,诸如曼哈顿距离、切比雪夫距离、马氏距离等。
[0043] 图3示出了按照本发明一实施例的系统的异常检测装置的示意框图。该系统的异常检测装置30包含存储器310、处理器320以及存储在所述存储器上并且可在所述处理器上运行的计算机程序330。所述处理器320运行所述程序330以实现上述用于检测系统异常的方法。
[0044] 按照本发明的另一方面,还提供了一种计算机可读存储介质,其上存储计算机程序,该程序被处理器执行时可实现上述用于检测系统异常的方法。
[0045] 根据本发明的方法及其装置,基于多监控指标的历史值的采样、特征提取和拼接,能够分析系统中多个监控指标的变化趋势和多个监控指标之间的关联关系,挖掘多维监控指标的频繁模式,从而识别系统中的异常状态,在未触发系统故障阈值告警的情况下,提前发现系统异常以便及早采取补救措施。此外,在数据模型的适用性方面,本发明适用于多种系统监控产生的时序数据,而无需判断监控指标的周期性、波动性等特征,由于频繁模式挖掘是基于无监督或半监督的训练方法,所以适用于训练样本无标签或负样本较少的情况。
[0046] 提供本文中提出的实施例和示例,以便最好地说明按照本技术及其特定应用的实施例,并且由此使本领域的技术人员能够实施和使用本发明。但是,本领域的技术人员将会知道,仅为了便于说明和举例而提供以上描述和示例。所提出的描述不是意在涵盖本发明的各个方面或者将本发明局限于所公开的精确形式。
[0047] 鉴于以上所述,本公开的范围通过以下权利要求书来确定。