CN115766513A - 一种异常检测方法和装置 - Google Patents
一种异常检测方法和装置 Download PDFInfo
- Publication number
- CN115766513A CN115766513A CN202211308699.9A CN202211308699A CN115766513A CN 115766513 A CN115766513 A CN 115766513A CN 202211308699 A CN202211308699 A CN 202211308699A CN 115766513 A CN115766513 A CN 115766513A
- Authority
- CN
- China
- Prior art keywords
- data
- historical
- algorithm
- monitoring index
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Testing And Monitoring For Control Systems (AREA)
Abstract
本发明涉及一种异常检测方法和装置。通过离线模块对指标历史数据进行模型算法持续训练与学习,利用统计判别和无监督算法过滤掉大量正样本,再配合人工标注负样本进行有监督算法训练学习判定,形成指标历史运行动态阈值基线与模型算法参数;再通过在线模块对实时采集的指标数据进行无监督算法判定与有监督模型算法判定来最终确定是否有异常发生。即采用“无监督+有监督”算法、离线与在线相结合的方式进行检测,以解决异常检测准确性的问题,同时又可以动态自适应业务数据发展的变化。
Description
技术领域
本发明涉及智能运维异常检测技术分析领域,尤其涉及一种异常检测方法和装置。
背景技术
随着企业利用云计算、分布式、微服务等相关技术完成数字化与网络化,从而推动企业的数字化转型。运维团队面临着集群规模更大,业务组件更多,关联关系更加复杂等诸多难题,其压力和挑战与日俱增,给IT运维工作带来了前所未有的挑战。任何一次的服务中断事件都有可能对公司业务造成极大影响。因此,当系统出现异常时如何进行快速检测与分析定位,防止进一步恶化引起故障进行提前告警,然后通过快速修复调整来保障数字业务稳定可靠运行,该异常检测方法是运维保障工作的重要前提。
为了在系统指标出现异常时能准确检测捕捉到,基于指标阈值的监控检测方法是常用的检测预警方式之一。
然而,使用传统的静态阈值异常检测方法存在:人力成本高,需要人工设定阈值、依赖专家经验人为设定;维护成本高,阈值恒定、但业务或产品特性会随着时间变化,二者不能同步更新;检测效果不佳,依赖人为设定的阈值,准确率和召回率没有很好保证。使用动态阈值,相关技术中算法生成的阈值可能会高于监控指标的值域上限或者低于监控指标的值域下限;这样无法正确进行异常检测,会使对该监控指标的监控预警失去意义。
因此,亟需一种新的异常检测方法与算法以提高监控指标的异常检测准确性,同时又可以动态自适应业务数据发展的变化。
发明内容
本发明的目的在于提供一种异常检测方法和装置,通过离线模块对指标历史数据进行模型算法持续训练与学习,利用统计判别和无监督算法过滤掉大量正样本,再配合人工标注负样本进行有监督算法训练学习判定,形成指标历史运行动态阈值基线与模型算法参数;再通过在线模块对实时采集的指标数据进行无监督算法判定与有监督模型算法判定来最终确定是否有异常发生。即采用“无监督+有监督”算法、离线与在线相结合的方式进行检测,以解决异常检测准确性的问题。
为实现上述目的,本发明的技术方案是:一种异常检测方法,包括以下步骤:
步骤S101、获取运维对象待分析的历史周期监控指标数据;
步骤S102、对获取的历史周期监控指标数据进行时间段分段分组预处理;
步骤S103、加载人工标注样本库;
步骤S104、对所有步骤S103处理后的历史周期监控指标数据过滤掉负样本数据,按照分段分组进行特征统计,得到相应时间段历史阈值范围;
步骤S105、对获取的周期内所有的分段分组历史周期监控指标数据进行有监督模型训练;
步骤S106、生成所有分段分组历史周期监控指标数据的指标动态阈值与优化后的指标模型算法参数;
步骤S107、获取运维对象的实时监控指标数据;
步骤S108、实时数据进行特征计算并与指标动态阈值进行无监督异常判定;
步骤S109、实时数据进行有监督算法模型的异常判定;
步骤S1010、输出实时数据的异常检测结果。
在本发明一实施例中,步骤S101还包括:确定数据计算周期长度、获取历史周期监控指标数据。
在本发明一实施例中,步骤S102还包括:确定数据时间窗口大小、按天对历史周期监控指标数据进行分段分组处理。
在本发明一实施例中,步骤S104还包括:计算特征例,根据需要的灵敏度确定置信区间,计算历史阈值范围。
计算历史阈值范围。
在本发明一实施例中,步骤S104具体实现如下:
S1041、过滤掉负样本数据:
从相应分段待计算分析数据中过滤掉人工标注样本库中的负样本;
S1042、特征统计计算:
对相应分段待计算分析数据进行包括均值μ、标准差σ的特征值计算;
S1043、得到相应分段历史阈值范围:
根据需要的灵敏度确定置信区间系数scale,而后基于下式得到相应分段历史阈值范围:
low_bound=μ-scale*σ
up_bound=μ+scale*σ
其中,low_bound表示相应分段下限阈值,up_bound表示相应分段上限阈值。
在本发明一实施例中,步骤S105还包括:确定有监督训练模型算法、选择损失函数、减小损失函数的值让模型最优化。
本发明还提供了一种异常检测装置,包括:
获取模块,用于从采集的运维对象的历史指标数据中,获取预定时间周期长度的待分析历史周期监控指标数据;
预处理模块,用于对待分析的历史周期监控指标数据进行按天再按预定时间窗口大小分段处理,分段后将同一时间段的所有数据归为一组;
计算模块,用于将分段分组后的数据进行特征计算,将所有相应时间段的历史周期监控指标数据进行特征计算、确定动态阈值范围;
历史训练模块,用于对分段分组后的历史周期监控指标数据进行模型训练,包括确定有监督训练模型算法、选择损失函数、减小损失函数的值让模型最优化;
确定模块,用于根据训练情况以及参数调优结果,形成用于后期异常检测的配置;
目标检测模块,用于对运维对象的实时监控指标数据与离线生成的动态阈值、无监督算法、历史训练模块优化后的有监督算法进行联合在线实时异常快速检测,并输出检测结果。
相较于现有技术,本发明具有以下有益效果:本发明提出的采用“无监督+有监督”算法、离线与在线相结合的方式进行异常检测方法和装置包括以下有益效果:
(1)解决了传统静态阈值需要人工设定,依赖具有这方面的专家根据经验来判定,人为因素高、不准确问题。
(2)解决了维护成本高问题,传统阈值恒定,但是业务或产品特性会随着时间变化,两者如要同步更新以适应不断变化的应用场景需求,需要大量的维护成本。
(3)通过使用历史学习的指标历史运行基线与有监督模型算法检测,提升了异常检测准确率。
(4)通过本发明方法与装置能够快速、准确检测到异常发生,缩短故障发现时长,提升运维效率,同时降低因异常给企业带来的损失。
附图说明
图1为本发明实施例的方法总体流程图。
图2为本发明实施例的装置示意图。
图3为本发明实施例的动态阈值与模型参数生成逻辑图(离线模式)。
图4为本发明实施例的目标检测逻辑图(在线模式)。
具体实施方式
下面结合附图,对本发明的技术方案进行具体说明。
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。
首先说明本文涉及的术语,需要说明的是,本发明的方法可以应用于任何IT运维场景的异常检测分析,文中所列举的对象、指标、异常、模型算法等仅为示例,不构成对本发明实施例的限制。
对象:此处指基于运维实践识别出的运维资源监控目标,包括基础设施IAAS层、平台PAAS层、软件业务SAAS层等大类。例如各种IT及周边设备,比如硬件的某个服务器、存储、交换机、路由器、云资源、安全设备、摄像头、ONU、OLT等,软件的操作系统、数据库、中间件、应用、分布式组件等,系统的业务系统、服务等对象。
指标:衡量对象的参数,即对象运行时的各种状态、性能值。
模型:是数据运行机器学习算法后保存的结果,它表示用于进行预测所需的规则、数字和任何其他特定算法的数据结构,是将抽象的实际问题转化成数学问题。
算法:是求解模型的方法,将其中所蕴含的数学问题进行求解。
异常:运维中系统某部件对象的功能、参数、性能、状态等出现非正常的情况,导致对象功能恶化或故障失效的事件。
图1是根据本发明实施例的异常检测方法的流程示意图,包括以下步骤:
步骤S101、获取运维对象待分析的历史周期监控指标数据。
具体包括确定数据计算周期长度,例如3个月、6个月等,然后从监控采集的历史数据中获取指定对象与指标的待计算分析数据。
步骤S102、对获取的历史数据进行时间段分段分组预处理。
确定计算数据时间窗口大小,例如15分钟、30分钟、1小时等,要求计算数据时间窗口要大于等于此指标采集时使用的周期时长。对获取的待分析数据,按天按计算数据时间窗口进行分段,分段后将同一时间段的所有数据归为一组,得到该时间段的待分析数据。
步骤S103、加载人工标注样本库。
对人工标注样本库,包括历史数据的正样本、负样本标注记录,加载进入系统,参与计算分析。
步骤S104、对该段的所有周期历史数据过滤掉负样本数据,按照分段进行特征统计,得到此段历史动态阈值范围。
具体包括子步骤:
S1041、过滤掉负样本数据。
为了保证计算出来的动态基线阈值走势符合正常的运行状态,需要从该组待计算分析数据中先过滤掉人工标注样本库中的负样本。
S1042、特征统计计算。
待计算分析分组数据进行特征值计算:包括最大值、最小值、均值μ、方差σ2、标准差σ等。
其中:
均值μ=(1/n)*(X1+X2+...+Xn)
方差σ2=[1/(n-1)]*[(X1-μ)2+(X2-μ)2+...+(Xn-μ)2]
S1043、得到此段历史动态阈值范围。
根据需要的灵敏度确定置信区间系数scale,例如:高灵敏度1、中灵敏度2、低灵敏度3,计算此段的动态阈值范围。例如,在本申请实施中使用:
low_bound=μ-scale*σ
up_bound=μ+scale*σ
其中,low_bound表示此段下限阈值,up_bound表示此段上限阈值。
步骤S105、对获取的周期内所有的该分段历史数据进行有监督模型训练。
具体包括子步骤:
S1051、为了进行有监督模型训练,需要加载与训练数据对应对象、指标、时段的人工标注样本库,其中包括正样本与负样本。
S1052、确定所使用的有监督训练模型算法,以便对指标数据进行训练。例如,在本申请实施中,使用的异常结果概率判断的预测函数公式,如下面所示:
为了能分类问题输出正常或异常,利用Sigmoid函数
对于线性边界的情况,边界形式如下:
构造后的预测函数为:
hθ(x)函数的值表示结果概率,对于输入x因子分类结果为类别1和类别0的概率分别为:
P(y=1|x;θ)=hθ(x)
P(y=0|x;θ)=1-hθ(x)
这样就能够对待检测的数据进行训练,输出其异常或正常。
S1053、选择损失函数。
预测函数进行预测分类后,需求要通过量化方式来表示预测出来结果的准确性。这个准确性误差通过损失函数计算出来。例如,在本申请实施中,采用的损失函数是对数似然损失函数。
对于m个样本
{(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}
似然函数为:
对数似然函数l(θ)=logL(θ),因为最大似然函数求最大,而损失函数要求最小,故要乘以-1,同时为了m个样本规模对损失函数造成影响,要再乘以1/m,即损失函数为:
S1054:减小对损失函数的值让模型最优化。
为了求解能够让模型最优化,拟合程度最好的参数值,也就是求解能够让损失函数最小的值。例如,在本申请实施中,采用的是梯度下降法,步骤如下:
通过对J(θ)求导获得下降方向即梯度方向J’(θ)
根据预设的步长α,n为特征数量,更新参数θ:=θ-αJ’(θ)
重复以上两步直到逼近最优值,满足终止条件。
优化算法伪代码为:
步骤S106、生成所有分段的指标动态阈值与优化后的指标模型算法参数。
对步骤S102中预处理的所有分段分组数据,进行逐一分组调用步骤S104与步骤S105,进行各分组的动态阈值计算与有监督模型算法训练,最终得到全时间段的历史动态阈值走势,以及训练优化后的模型算法参数。以便后面用于在线实时数据的异常快速检测。
以上步骤的逻辑结构,参见图3。
步骤S107、获取运维对象的实时监控指标数据。
系统周期对运维对象的实时运行状态、健康性能指标、特征变量等进行全方位的监控采集。
步骤S108、实时数据进行特征计算并与指标动态阈值进行无监督异常判定。
对步骤S107采集的实时数据,根据数据所处的时段结合历史该时段数据进行特征计算,并与步骤S106生成的历史动态阈值进行无监督算法判定是否有异常发生。
步骤S109、实时数据进行有监督算法模型的异常判定。
对步骤S107采集的实时数据,根据数据所处的时段采用步骤S106生成的该时段的模型算法参数进行有监督算法判定是否有异常发生。
步骤S1010、输出实时数据的异常检测结果。
实时数据经过与动态阈值、无监督算法、有监督算法异常联合在线判定后输出异常检测结果,同时可以结合人工审核后将异常结果纳入人工标注样本库,供后期离线训练学习、优化模型算法参数。
以上步骤的目标检测逻辑结构,参见图4。
图2是根据本发明实施例提供的一种异常检测装置包括:
获取模块,用于执行:从历史采集的运维对象监控指标数据中,获取一定时间周期长度的待分析数据。
预处理模块,用于执行:对待分析的历史指标数据进行按天再按一定时间窗口大小分段处理,分段后将同一时间段的所有数据归为一组。
计算模块,用于执行:分段分组后的数据,将所有该时间段的历史数据进行特征计算、确定动态阈值范围。
历史训练模块,用于执行:对分段分组后的历史数据进行模型训练,包括确定有监督训练模型算法、选择损失函数、减小对损失函数的值让模型最优化。
确定模块,用于执行:根据训练情况以及参数调优结果,形成可以用于在线实时异常快速检测的配置。
目标检测模块,用于执行:对运维对象的实时监控指标数据与离线生成的动态阈值、无监督算法、历史训练模块优化后的有监督算法进行联合在线实时异常快速检测,并输出检测结果。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。
Claims (7)
1.一种异常检测方法,其特征在于,包括以下步骤:
步骤S101、获取运维对象待分析的历史周期监控指标数据;
步骤S102、对获取的历史周期监控指标数据进行时间段分段分组预处理;
步骤S103、加载人工标注样本库;
步骤S104、对所有步骤S103处理后的历史周期监控指标数据过滤掉负样本数据,按照分段分组进行特征统计,得到相应时间段历史阈值范围;
步骤S105、对获取的周期内所有的分段分组历史周期监控指标数据进行有监督模型训练;
步骤S106、生成所有分段分组历史周期监控指标数据的指标动态阈值与优化后的指标模型算法参数;
步骤S107、获取运维对象的实时监控指标数据;
步骤S108、实时数据进行特征计算并与指标动态阈值进行无监督异常判定;
步骤S109、实时数据进行有监督算法模型的异常判定;
步骤S1010、输出实时数据的异常检测结果。
2.根据权利要求1所述的一种异常检测方法,其特征在于,步骤S101还包括:确定数据计算周期长度、获取历史周期监控指标数据。
3.根据权利要求1所述的一种异常检测方法,其特征在于,步骤S102还包括:确定数据时间窗口大小、按天对历史周期监控指标数据进行分段分组处理。
4.根据权利要求1所述的一种异常检测方法,其特征在于,步骤S104还包括:计算特征例,根据需要的灵敏度确定置信区间,计算历史阈值范围。
5.根据权利要求1或4所述的一种异常检测方法,其特征在于,步骤S104具体实现如下:
S1041、过滤掉负样本数据:
从相应分段待计算分析数据中过滤掉人工标注样本库中的负样本;
S1042、特征统计计算:
对相应分段待计算分析数据进行包括均值μ、标准差σ的特征值计算;
S1043、得到相应分段历史阈值范围:
根据需要的灵敏度确定置信区间系数scale,而后基于下式得到相应分段历史阈值范围:
low_bound=μ-scale*σ
up_bound=μ+scale*σ
其中,low_bound表示相应分段下限阈值,up_bound表示相应分段上限阈值。
6.根据权利要求1所述的一种异常检测方法,其特征在于,步骤S105还包括:确定有监督训练模型算法、选择损失函数、减小损失函数的值让模型最优化。
7.一种异常检测装置,其特征在于,包括:
获取模块,用于从采集的运维对象的历史指标数据中,获取预定时间周期长度的待分析历史周期监控指标数据;
预处理模块,用于对待分析的历史周期监控指标数据进行按天再按预定时间窗口大小分段处理,分段后将同一时间段的所有数据归为一组;
计算模块,用于将分段分组后的数据进行特征计算,将所有相应时间段的历史周期监控指标数据进行特征计算、确定动态阈值范围;
历史训练模块,用于对分段分组后的历史周期监控指标数据进行模型训练,包括确定有监督训练模型算法、选择损失函数、减小损失函数的值让模型最优化;
确定模块,用于根据训练情况以及参数调优结果,形成用于后期异常检测的配置;
目标检测模块,用于对运维对象的实时监控指标数据与离线生成的动态阈值、无监督算法、历史训练模块优化后的有监督算法进行联合在线实时异常快速检测,并输出检测结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211308699.9A CN115766513A (zh) | 2022-10-25 | 2022-10-25 | 一种异常检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211308699.9A CN115766513A (zh) | 2022-10-25 | 2022-10-25 | 一种异常检测方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115766513A true CN115766513A (zh) | 2023-03-07 |
Family
ID=85353078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211308699.9A Pending CN115766513A (zh) | 2022-10-25 | 2022-10-25 | 一种异常检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115766513A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116956282A (zh) * | 2023-06-07 | 2023-10-27 | 广州天懋信息系统股份有限公司 | 基于网络资产内存时间序列多特征数据的异常检测系统 |
-
2022
- 2022-10-25 CN CN202211308699.9A patent/CN115766513A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116956282A (zh) * | 2023-06-07 | 2023-10-27 | 广州天懋信息系统股份有限公司 | 基于网络资产内存时间序列多特征数据的异常检测系统 |
CN116956282B (zh) * | 2023-06-07 | 2024-02-06 | 广州天懋信息系统股份有限公司 | 基于网络资产内存时间序列多特征数据的异常检测系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110865929B (zh) | 异常检测预警方法及系统 | |
CN105279365B (zh) | 用于学习异常检测的样本的方法 | |
CN111506478A (zh) | 基于人工智能实现告警管理控制的方法 | |
CN112284440B (zh) | 一种传感器数据偏差自适应修正方法 | |
CN111179591B (zh) | 一种路网交通时序特征数据质量诊断与修复方法 | |
CN113037575B (zh) | 网元异常的根因定位方法、装置、电子设备及存储介质 | |
KR102079359B1 (ko) | 개선된 sax 기법 및 rtc 기법을 이용한 공정 모니터링 장치 및 방법 | |
CN115454778A (zh) | 大规模云网络环境下的时序指标异常智能监控系统 | |
JP7427047B2 (ja) | 時系列基盤の異常探知方法およびコンピュータ装置 | |
CN115766513A (zh) | 一种异常检测方法和装置 | |
CN116680113A (zh) | 一种设备检测实施控制系统 | |
CN106355314A (zh) | 一种汽车发动机气门质量流式数据处理方法及装置 | |
CN113093695A (zh) | 一种数据驱动的sdn控制器故障诊断系统 | |
CN113052272B (zh) | 一种异常检测方法、装置、电子设备及存储介质 | |
CN113377630B (zh) | 一种通用的kpi异常检测框架实现方法 | |
Jing et al. | A microservice fault identification method based on LightGBM | |
CN113988173A (zh) | 基于定性趋势分析和五状态贝叶斯网络的故障诊断方法、系统、设备及存储介质 | |
Torikka et al. | Predictive Maintenance Service Powered by Machine Learning and Big Data | |
CN115511106B (zh) | 基于时序数据生成训练数据的方法、设备和可读存储介质 | |
CN113627088B (zh) | 基于基因编程和数据融合的机器性能退化评估方法及系统 | |
CN113656287B (zh) | 软件实例故障的预测方法、装置、电子设备及存储介质 | |
CN116628563A (zh) | 设备异常检测方法、装置、电子设备及存储介质 | |
CN114579519A (zh) | 文件系统的异常检测方法及装置、存储介质及电子设备 | |
CN116820884A (zh) | 一种利用智能运维监控it系统异常状态的方法及装置 | |
CN118132321A (zh) | 一种基于学习的数据库异常根因sql诊断方法及其诊断装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |