CN110865929B - 异常检测预警方法及系统 - Google Patents
异常检测预警方法及系统 Download PDFInfo
- Publication number
- CN110865929B CN110865929B CN201911176633.7A CN201911176633A CN110865929B CN 110865929 B CN110865929 B CN 110865929B CN 201911176633 A CN201911176633 A CN 201911176633A CN 110865929 B CN110865929 B CN 110865929B
- Authority
- CN
- China
- Prior art keywords
- model
- curve
- index
- historical data
- training
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000001514 detection method Methods 0.000 title claims abstract description 32
- 230000005856 abnormality Effects 0.000 title claims abstract description 21
- 238000012549 training Methods 0.000 claims abstract description 72
- 230000002159 abnormal effect Effects 0.000 claims abstract description 57
- 238000012544 monitoring process Methods 0.000 claims abstract description 54
- 238000012545 processing Methods 0.000 claims description 27
- 230000000737 periodic effect Effects 0.000 claims description 23
- 238000013145 classification model Methods 0.000 claims description 20
- 238000007781 pre-processing Methods 0.000 claims description 12
- 238000012360 testing method Methods 0.000 claims description 8
- 238000012937 correction Methods 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 description 12
- 238000012423 maintenance Methods 0.000 description 11
- 238000004458 analytical method Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000002354 daily effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3447—Performance evaluation by modeling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种异常检测预警方法及系统。其中方法包括:在监控平台配置监控的业务指标,将业务指标的配置信息存储至数据库中;触发离线模型训练模块,离线训练模型并将训练好的模型上传至分布式文件系统,模型用于对监控指标进行预测;将指标数据实时推送至分布式消息队列系统;加载配置信息然后存储模型,实时从分布式消息队列系统中消费指标数据,将指标数据作为模型的输入得到预测结果,判断指标数据是否异常;当指标数据异常时,将监控异常的告警信息回写至分布式消息队列系统,客户端从分布式消息队列系统实时读取告警信息。本发明能够实时消费监控的指标数据并检测是否存在异常,降低了监控指标的检测延迟问题,极大的提升了预警的效率。
Description
技术领域
本发明属于信息处理领域,尤其涉及一种异常检测预警方法及系统。
背景技术
传统的运维异常监控基本都是基于规则,根据业务专家的经验来设定阈值报警,然而这种方法的通用性会非常差,而且容易产生大量的误报和漏报,同时用户需要在每条曲线上单独去配置相应的规则,这样的场景给运维部门也带来了巨大的挑战。
尤其是对于大体量的移动互联网公司,每天生产环境都有大量的发布和变更,web服务的稳定性肯定是非常重要的,然而这种稳定性的基础就需要运维来保障。运维人员通过监控系统中的业务指标来判断系统是否出现异常。然而由于业务指标的多样性,分别针对每种业务指标单靠人工来手动配置规则来监控非常不现实,因此需要一个自动化的异常检测平台来辅助运维人员进行监控,在准确率和召回率上找到一个平衡点,同时在时效性上也满足业务人员要求,有效地减少运维工程师的工作量。
发明内容
本发明要解决的技术问题是为了实现自动化的异常检测、提高监控效率、减少运维工作量,提供一种异常检测预警方法及系统。
本发明是通过以下技术方案解决上述技术问题的:
一种异常检测预警方法,包括:
客户端在监控平台配置监控的业务指标,所述监控平台将所述业务指标的配置信息存储至数据库中;
所述监控平台触发离线模型训练模块,所述离线模型训练模块离线训练模型并将训练好的模型上传至分布式文件系统,所述模型用于对所述监控指标进行预测;
所述客户端将所述业务指标的指标数据实时推送至分布式消息队列系统;
分布式流处理系统判断是否已加载存储在所述数据库中的配置信息,若已加载则存储在所述分布式文件系统上的所述模型,若未加载则加载所述配置信息然后存储在所述分布式文件系统上的所述模型;
所述分布式流处理系统实时从所述分布式消息队列系统中消费所述指标数据,将所述指标数据作为所述模型的输入得到预测结果,通过所述预测结果判断所述指标数据是否异常;
当所述指标数据异常时,所述分布式流处理系统将监控异常的告警信息回写至所述分布式消息队列系统,所述客户端从所述分布式消息队列系统实时读取所述告警信息。
较佳地,离线训练模型的步骤包括:
采集所述业务指标的历史数据曲线,所述历史数据曲线包括所述业务指标在不同时间的历史指标数据值;
对所述历史数据曲线进行预处理,以得到数据完整和/或无异常值的曲线;
分析预处理后的所述历史数据曲线的时域特征和频域特征;
根据所述时域特征和所述频域特征区分曲线类型,每种曲线类型分别对应一种符合所述曲线类型特性的训练模型;
基于预处理后的所述历史数据曲线训练所述曲线类型对应的训练模型,得到训练好的模型。
较佳地,所述曲线类型为稳定序列、非周期序列和周期序列中的一种,所述稳定序列和所述周期序列对应的训练模型为DNN模型,和/或,所述非周期序列对应的训练模型为LSTM模型。
较佳地,对所述历史数据曲线进行预处理的步骤包括以下步骤中的至少一种:
剔除所述历史数据曲线在预设时间段或时间点的历史指标数据值,利用同比或环比周期指标数据值进行填充;
插补所述历史数据曲线中的缺失值,所述插补包括利用所述缺失值前后时间窗口的移动平均进行填充,或,利用当前缺失区间前后两个点作为一个新的序列,然后利用前后数据均匀填充;
更正所述历史数据曲线中的异常值,所述更正包括对已标注的异常值作为所述缺失值进行插补,或利用假设检验法定位异常区间,然后将所述异常区间内的异常值作为所述缺失值进行插补。
较佳地,根据所述时域特征和所述频域特征区分曲线类型的步骤具体包括:
设计用于区分所述历史数据曲线所属的类型的分类模型;
将所述时域特征和所述频域特征作为所述分类模型的输入,得到所述分类模型的输出结果。
一种异常检测预警系统,包括:客户端、监控平台、离线模型训练模块、分布式文件系统、分布式消息队列系统和分布式流处理系统;
所述客户端用于在所述监控平台配置监控的业务指标;
所述监控平台用于将所述业务指标的配置信息存储至数据库中;
所述监控平台还用于触发所述离线模型训练模块;
所述离线模型训练模块用于离线训练模型并将训练好的模型上传至所述分布式文件系统,所述模型用于对所述监控指标进行预测;
所述客户端还用于将所述业务指标的指标数据实时推送至所述分布式消息队列系统;
所述分布式流处理系统用于判断是否已加载存储在所述数据库中的配置信息,若已加载则存储在所述分布式文件系统上的所述模型,若未加载则加载所述配置信息然后存储在所述分布式文件系统上的所述模型;
所述分布式流处理系统还用于实时从所述分布式消息队列系统中消费所述指标数据,将所述指标数据作为所述模型的输入得到预测结果,通过所述预测结果判断所述指标数据是否异常;
当所述指标数据异常时,所述分布式流处理系统还用于将监控异常的告警信息回写至所述分布式消息队列系统,所述客户端还用于从所述分布式消息队列系统实时读取所述告警信息。
较佳地,所述离线模型训练模块离线训练模型时具体用于:
采集所述业务指标的历史数据曲线,所述历史数据曲线包括所述业务指标在不同时间的历史指标数据值;
对所述历史数据曲线进行预处理,以得到数据完整和/或无异常值的曲线;
分析预处理后的所述历史数据曲线的时域特征和频域特征;
根据所述时域特征和所述频域特征区分曲线类型,每种曲线类型分别对应一种符合所述曲线类型特性的训练模型;
基于预处理后的所述历史数据曲线训练所述曲线类型对应的训练模型,得到训练好的模型。
较佳地,所述曲线类型为稳定序列、非周期序列和周期序列中的一种,所述稳定序列和所述周期序列对应的训练模型为DNN模型,和/或,所述非周期序列对应的训练模型为LSTM模型。
较佳地,对所述历史数据曲线进行预处理具体包括以下处理的至少一种:
剔除所述历史数据曲线在预设时间段或时间点的历史指标数据值,利用同比或环比周期指标数据值进行填充;
插补所述历史数据曲线中的缺失值,所述插补包括利用所述缺失值前后时间窗口的移动平均进行填充,或,利用当前缺失区间前后两个点作为一个新的序列,然后利用前后数据均匀填充;
更正所述历史数据曲线中的异常值,所述更正包括对已标注的异常值作为所述缺失值进行插补,或利用假设检验法定位异常区间,然后将所述异常区间内的异常值作为所述缺失值进行插补。
较佳地,根据所述时域特征和所述频域特征区分曲线类型具体包括:
设计用于区分所述历史数据曲线所属的类型的分类模型;
将所述时域特征和所述频域特征作为所述分类模型的输入,得到所述分类模型的输出结果。
在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
本发明的积极进步效果在于:本发明能够实时消费监控的指标数据并检测是否存在异常,降低了监控指标的检测延迟问题,极大的提升了预警效率,更为及时地发现业务指标可能存在的问题。另外,本发明的触发机制也非常简单,用户通过客户端在监控平台上只需配置数据源的入口和简单的一些参数(上升、下降)就可以触发监控报警,与现有的规则系统相比大大提高了报警的时效性和准确率,同时也减少了繁琐的规则配置流程。本发明在异常检测上的通用性比较好,能适用于大部分业务场景的异常监控需求。
附图说明
图1为本发明实施例1的一种异常检测预警方法的原理示意图;
图2为本发明实施例2中所述离线模型训练模块离线训练模型的流程图;
图3为本发明实施例2中采用第一种方式插补前后数据效果图;
图4为本发明实施例2中采用第二种方式插补前后数据效果图;
图5为本发明实施例2中平稳序列、周期序列和非周期序列的部分特征图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
一种异常检测预警方法,用于监控业务指标的指标数据是否异常,所述异常检测预警方法采用客户端1、监控平台2、离线模型训练模块3、分布式文件系统4、分布式消息队列系统5和分布式流处理系统6实现,图1示出了所述异常检测预警方法的原理图,所述异常检测预警方法包括:
所述客户端1在所述监控平台2配置监控的业务指标,所述监控平台2将所述业务指标的配置信息存储至数据库7中;其中,所述监控平台2可以为运行在所述客户端1上的软件系统;
所述监控平台2触发所述离线模型训练模块3,所述离线模型训练模块3离线训练模型并将训练好的模型上传至所述分布式文件系统4,所述模型用于对所述监控指标进行预测;其中,所述分布式文件系统4可以采用HDFS(Hadoop分布式文件系统,一种适合运行在通用硬件上的分布式文件系统);
所述客户端1将所述业务指标的指标数据实时推送至所述分布式消息队列系统5;其中,所述分布式消息队列系统5可以采用Kafka(一种高吞吐量的分布式发布订阅消息系统);
所述分布式流处理系统6判断是否已加载存储在所述数据库7中的配置信息,若已加载则存储在所述分布式文件系统4上的所述模型,若未加载则加载所述配置信息然后存储在所述分布式文件系统4上的所述模型;
所述分布式流处理系统6实时从所述分布式消息队列系统5中消费所述指标数据,对所述指标数据进行预处理,将预处理后的所述指标数据作为所述模型的输入得到预测结果,通过所述预测结果判断所述指标数据是否异常;其中,所述分布式流处理系统6可以采用Flink(一种现有的流处理框架);
当所述指标数据异常时,所述分布式流处理系统6将监控异常的告警信息回写至所述分布式消息队列系统5,所述客户端1从所述分布式消息队列系统5实时读取所述告警信息。
本实施例的方法通过所述分布式消息队列系统5和所述分布式流处理系统6等实时计算框架,实时消费监控的指标数据并检测是否存在异常,降低了监控指标的检测延迟问题,极大的提升了预警效率,更为及时地发现业务指标可能存在的问题。另外,本实施例的触发机制也非常简单,用户通过客户端1在监控平台2上只需配置数据源的入口和简单的一些参数(上升、下降)就可以触发监控报警,与现有的规则系统相比大大提高了报警的时效性和准确率,同时也减少了繁琐的规则配置流程。该方法在异常检测上的通用性比较好,能适用于大部分业务场景的异常监控需求。
实施例2
本实施例是对实施例1的进一步细化,其给出了所述离线模型训练模块3离线训练模型的具体过程。图2示出了本实施例中所述离线模型训练模块3离线训练模型的流程图,包括以下步骤:
步骤31:采集所述业务指标的历史数据曲线,所述历史数据曲线包括所述业务指标在不同时间的历史指标数据值。所述历史数据曲线用作后续训练模型的样本数据集。所述历史数据曲线可以有多种来源,如运维平台提供的公开数据集,或监控企业的自身数据。
步骤32:对所述历史数据曲线进行预处理,以得到数据完整和/或无异常值的曲线。所述历史数据曲线实质为一个时间序列,考虑到对于时间序列这种前后时间点具有高可用性的特征场景,在模型训练的时候数据的完整和常态性是非常重要的。如果待训练的时间序列某区间严重缺失,那丢失的数据点之间的前后关系就不能在模型中学习到,模型的输出结果也会有很大的跨时间点上的偏差。再者某些数据集存在一些非常明显的异常点,如果想要利用统计学的一些方法拿这部分历史数据作为评判标准,那么就很容易被该异常值影响。因此,本实施例中,所述预处理可以具体包括以下步骤中的至少一种:
剔除所述历史数据曲线在预设时间段或时间点的历史指标数据值,利用同比或环比周期指标数据值进行填充;其中,所述预设时间段或时间点可以以天为单位、或以小时为单位、甚至以分为单位,具体根据所述业务指标的种类或指标数据的变化特点而定,例如,监控机票预订平台的订票请求量时,由于节假日和普通工作日的订票情况有较大差别,所以在监控普通工作日的订票请求量是否异常时,为了提高模型预测的准确率,优选剔除法定节假日的历史订票请求量,同时利用同比或环比周期指标数据值进行填充,由此可以防止数据缺失而影响后续步骤中时域和频域特征的分析以及曲线类型的区分;
插补所述历史数据曲线中的缺失值,所述插补包括两种方式,第一种为利用所述缺失值前后时间窗口的移动平均进行填充,第二种为利用当前缺失区间前后两个点作为一个新的序列,然后利用前后数据均匀填充;通常,当缺失值的窗口比较小的时候,优选第一种方式填充,当缺失值的窗口比较大的时候,优选第二种方式填充。
如图3所示,插补前曲线上部分零散的数据存在缺失(注:图中以0先填充缺失值),采用第一种方式进行插补:
如时间序列
其中ω代表时间窗口大小(奇数),代表t时刻的缺失值则
即,t时刻的缺失值由前后时间窗口的均值所填充,得到插补后的曲线。
如图4所示,插补前曲线上一个连续的时间区间数据全部缺失(注:图中以0先填充缺失值),采用第二种方式进行插补:
如时间序列xt-k和xt之间有k-1个时间缺失数据则
其中代表t-k到t之前的缺失值,k表示xt往前多少个点有真实值。插补后的曲线,在缺失的时间区间上成一条以该时间区间的前一数据为起点、以该时间区间的后一数据为终点的直线。
更正所述历史数据曲线中的异常值,所述更正包括对已标注的异常值作为所述缺失值进行插补,或利用假设检验法定位异常区间,然后将所述异常区间内的异常值作为所述缺失值进行插补。如grubbs(格拉布斯)检验方法:
其中,Y代表实际点,表示均值,S为标准差,N是样本数量,/>表示t分布服从N-2自由度在α/(2N)显著水平下的临界值。
步骤33:分析预处理后的所述历史数据曲线的时域特征和频域特征。其中,所述时域特征包括所述历史指标数据值在时间维度上的相关性,如提取相邻或相近时间范围内数据前后关联,也就是多尺度滑动窗口的统计特征(均值、方差、变异系数、差分等)。所述频域特征包括所述历史数据曲线的函数通过傅里叶变换后所得的频谱特性(如频谱中的幅值和相位),其中经傅里叶变换后的函数通过正弦和余弦的函数来表示:
步骤34:根据所述时域特征和所述频域特征区分曲线类型,每种曲线类型分别对应一种符合所述曲线类型特性的训练模型。
本实施例中,所述曲线类型可以为稳定序列、非周期序列和周期序列中的一种,在为各类序列选择训练模型时,需要考虑该类序列的时域特征和频域特征的普遍特性。考虑到监控指标类型差异性较大,所以在实际应用中,很难用一些通用的算法来覆盖所有的场景。特别是在做特征工程的时候通用方法处理后的复杂特征关系很难让一些机器学习模型具有强表达能力。因此,本实施例先把曲线的形态给大致分离出来,针对不同的形态用针对性的算法处理,这样检测的准确率会大大提高。对分类后的曲线选择不同类型的算法有针对性的建立模型。比如说非周期模型的实时特征置关重要。而周期和稳定的时间序列,同环比特征比实时特征重要。
图3示出了上述三类序列的部分特征图。上图中可以看出周期序列和稳定序列在某时间窗口内统计值非常小,而非周期序列波动特别大。对比频谱来说周期序列包含的信息量少,而其他两种类型频谱比较混乱。为了准确、快速地区分各类序列,步骤34可具体包括:设计用于区分所述历史数据曲线所属的类型的分类模型;将所述时域特征和所述频域特征作为所述分类模型的输入,得到所述分类模型的输出结果。所述分类模型可以以已标注的各类序列的时域特征和频域特征为特征集合通过聚类算法实现大致的分类,然后在通过决策树算法基于修改后的标签来进行学习。这样的半监督学习方式最终能把曲线分为稳定、周期、非周期三类序列,供后续模型设计。
本实施例中,所述非周期序列对应的训练模型为LSTM模型。对于属于所述非周期序列的业务指标,一个业务指标训练一个模型,通过输出值与实际值MSE(均方误差)来进行调参。LSTM是循环神经网络的一个优秀的变种,它继承了循环神经网络中的大部分特征,最主要的是解决了梯度弥散的问题。神经网络的学习能力优于大部分机器学习模型,主要的区别在于它能够end-to-end(端到端)的去自动学习特征集合与目标的关联。而LSTM对于时间序列这种上下文场景高可用性的建模下有很好的学习能力。
具体算法如下:
(a)基于预处理后一预设时段(如两周)的历史数据,通过尺度为N(N可取5)的滑动窗口提出输入特征,第N+1(=6)个点开始到最后作为输出值。
(b)向量的方式组合输入输出。分离训练测试集,训练集输入到隐藏层为32个LSTM单元的网络中进行训练。
(c)根据测试集上的MSE数据来查看训练效果和调参。
本实施例中,所述稳定序列和所述周期序列对应的训练模型为DNN模型。
对于周期和稳定的模型可以提取比较多的高维特征,而深度学习模型在高特征维度上的表达能力和泛化能力强于一般的机器学习模型。所以本实施例以深层神经网络(DNN)作为分类模型,采用小波分析和形变特征的方法提取高维特征供深层神经网络学习。
具体算法如下:
(a)在时间序列里小波分析主要用于滤波和消除噪声,并能将序列数据在常规尺度上无法被观测到的特征体现出来。与傅里叶变换不同,小波分析具有时频多分辨率分析的功能,在加上小波基的多样性、信号的延拓模式很容易获取高层次的特征。
小波分解包含两个基本的函数父小波与母小波:
ψj,k(x)=2-j/2ψ(2jt-k)
参数j=1…J是分解到第J层的尺度参数,k是平移参数,父小波将原信号f(x)转化为近似分量D,母小波则将f(x)转换成细节部分。
所以原信号的可以表示为f(x)=Aj(x)+Dj(x)+Dj-1(x)+…+D1(x)。
(b)对于周期和稳定的序列来说,同环比时间窗口内的形状改变是一个判断异常的一个重要的指标,同时也是运维人员常用来判断是否正确报警的标准。本实施例形变的定义是两个向量的夹角的余弦值。具体的计算公式如下:
这里的x1[n]和x2[n]分别表示当前时间窗口内的真实数据和历史环比时间窗口内的历史数据。由于余弦值的值域范围是[-1,1],所有需要对它做一些归一化处理。
步骤35:基于预处理后的所述历史数据曲线训练所述曲线类型对应的训练模型,得到训练好的模型。
LSTM模型的训练基于预处理后的数据集,在分离出非周期序列,分别对每个业务做回归预测,然后基于预测值和实际值的差异性进行一些规则逻辑的判断。
具体算法如下:
(a)根据流式数据实时过各自训练好的LSTM模型进行预测。
(b)在预测出数个点后结合预测值和实际值之间不同的变化幅度、临近周期内的统计量变化、连续几个时间窗口的趋势变化情况等进行判断是否是异常点。
(c)在检测出现异常时,拿预测值替换当前时间窗口内的真实值以便做下一步的预测(为了防止连续替换情况下预测值会偏离实际场景,在替换前计算当前实际值组成的样本波动与上周同区间内和临近窗口内的波动是否一致,若一致则停止替换)。
对人工标记的每条周期和稳定型的历史数据曲线,根据以上的介绍的特征工程算法提取每一个相关维度的特征。但是实际上DNN需要大量的样本集合才能表达出它强大的学习能力。对于异常检测这种人工标注少、正负样本极度不平衡的场景需要采取一些样本扩充。本实施例在这里选择的是SMOTE过采样算法。
具体算法如下:
利用少数样本(异常标注样本)人工合成新样本放入数据集中其公式如下:
xnew=x+rand(0,1)*|x-xn|
其中xnew表示合成的样本点,x表示少数类样本点xn是被一定的采样倍率选择出来的K近邻的随机样本,rand(0,1)是随机数。
DNN模型的训练过程基于上述步骤提取的小波和余弦相关性特征,进行标准化处理去除量纲的影响。
具体算法如下:
(a)提取小波每一层的高频分量,当前时间窗口的高频特征可以通过上周前后6小时窗口的高频数据的均值和标准差来进行标准化。
(b)余弦相关性特征,通过基线值来控制基数小的业务产生形变过大特征值的情况。通过如下公式进行标准化。其中基线值可以利用移动平均加同比时间窗口下的变异系数(均值除标准差)得到。
Zscore=(1-cosθ)|base_line-realvalue|
本实施例的异常检测预警方法在训练模型的过程中,根据各时间序列的历史数据,利用深度学习、统计学、频域分析、不平衡样本学习、迁移学习的思想去训练一个或多个模型,在覆盖真实故障事件的基础上,解决了异常样本过少和样本极度不平衡的问题,提高预测基线的稳定性,避免人工配置告警规则的效率问题,减少规则所带来的误报率,同时提高运维人员的工作效率。
实施例3
本实施例提供一种异常检测预警系统。所述异常检测预警系统包括实施例1中的客户端1、监控平台2、离线模型训练模块3、分布式文件系统4、分布式消息队列系统5和分布式流处理系统6。
所述客户端1用于在所述监控平台2配置监控的业务指标;
所述监控平台2用于将所述业务指标的配置信息存储至数据库中;
所述监控平台2还用于触发离线模型训练模块3;
所述离线模型训练模块3用于离线训练模型并将训练好的模型上传至所述分布式文件系统4,所述模型用于对所述监控指标进行预测;
所述客户端1还用于将所述业务指标的指标数据实时推送至所述分布式消息队列系统5;
所述分布式流处理系统6用于判断是否已加载存储在所述数据库中的配置信息,若已加载则存储在所述分布式文件系统4上的所述模型,若未加载则加载所述配置信息然后存储在所述分布式文件系统4上的所述模型;
所述分布式流处理系统6还用于实时从所述分布式消息队列系统5中消费所述指标数据,将所述指标数据作为所述模型的输入得到预测结果,通过所述预测结果判断所述指标数据是否异常;
当所述指标数据异常时,所述分布式流处理系统6还用于将监控异常的告警信息回写至所述分布式消息队列系统5,所述客户端1还用于从所述分布式消息队列系统5实时读取所述告警信息。
本实施例中,所述离线模型训练模块3离线训练模型时具体用于:
采集所述业务指标的历史数据曲线,所述历史数据曲线包括所述业务指标在不同时间的历史指标数据值;
对所述历史数据曲线进行预处理,以得到数据完整和/或无异常值的曲线;
分析预处理后的所述历史数据曲线的时域特征和频域特征;
根据所述时域特征和所述频域特征区分曲线类型,每种曲线类型分别对应一种符合所述曲线类型特性的训练模型;
基于预处理后的所述历史数据曲线训练所述曲线类型对应的训练模型,得到训练好的模型。
本实施例中,所述曲线类型为稳定序列、非周期序列和周期序列中的一种,所述稳定序列和所述周期序列对应的训练模型为DNN模型,和/或,所述非周期序列对应的训练模型为LSTM模型。
本实施例中,对所述历史数据曲线进行预处理具体包括以下处理的至少一种:
剔除所述历史数据曲线在预设时间段或时间点的历史指标数据值,利用同比或环比周期指标数据值进行填充;
插补所述历史数据曲线中的缺失值,所述插补包括利用所述缺失值前后时间窗口的移动平均进行填充,或,利用当前缺失区间前后两个点作为一个新的序列,然后利用前后数据均匀填充;
更正所述历史数据曲线中的异常值,所述更正包括对已标注的异常值作为所述缺失值进行插补,或利用假设检验法定位异常区间,然后将所述异常区间内的异常值作为所述缺失值进行插补。
本实施例中,根据所述时域特征和所述频域特征区分曲线类型具体包括:
设计用于区分所述历史数据曲线所属的类型的分类模型;
将所述时域特征和所述频域特征作为所述分类模型的输入,得到所述分类模型的输出结果。
本实施例的系统原理可以参考图1。
本发明的方法及系统可以适用于多种预警场景,例如:
1、订单业务场景
对于大体量的移动互联网公司,每天生产环境都有大量的发布和变更,代码更新和系统发布都是业务人员操作的,代码上的BUG不可避免。生产环境的这些问题就给下单的客户带来不好的影响如:响应时间变长,页面失效、支付失败等等。这样会导致客户的流失和收益的下降。所以给用户提供网站服务的稳定性肯定是非常重要的。运维人员在通过本发明的方法及系统中的订单业务指标来判断是否出现异常。如,酒店的一个分销渠道发生了订单下跌,本发明的方法系统可以及时发现问题发生报警给相关的业务人员去处理,在短时间内把业务恢复正常。
2、服务性能场景
一个页面请求服务是由底层后台很多接口所组成。某个接口的一些性能指标如(响应时间、错误数、请求量),出现异常时时也是需要及时发现。这种场景就像多米诺骨牌一样,会不断传递下去影响到多个服务。当传递到一定时间后,就会影响客户请求页面的性能问题(最严重导致下单失败),所以可以通过配置指标,让本发明的方法及系统第一时间发现接口的性能异常,有效的提前发现和解决问题,在未出现订单下跌或影响客户体验的时候予以解决。
3、机器属性监控场景
大型互联网公司都会拥有自己的机房。其中机房里面会有数十万甚至百万台服务器(每天都会有硬件损坏导致数据的丢失),那这种服务器的性能监控也是非常重要的,比如说服务器的cpu飙升了,就需要监控并通知给这个服务器的owner去处理,是否需要加内存条或者是否是机器内存已经损坏。如果一个服务器的硬盘坏掉了1个小时,在大数据场景来说这段时间可能丢失了几个TB的用户数据,这些数据对于业务部门和风控部门可能是一些重要客户的用户画像信息(我们可以推荐给他更多更好的产品,提高用户体验)或者是一些黑客的入侵信息。通过本发明的方法及系统配置服务器性能指标,以发现服务器异常并进行报警。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (8)
1.一种异常检测预警方法,其特征在于,包括:
客户端在监控平台配置监控的业务指标,所述监控平台将所述业务指标的配置信息存储至数据库中;
所述监控平台触发离线模型训练模块,所述离线模型训练模块离线训练模型并将训练好的模型上传至分布式文件系统,所述模型用于对所述业务指标进行预测;
所述客户端将所述业务指标的指标数据实时推送至分布式消息队列系统;
分布式流处理系统判断是否已加载存储在所述数据库中的配置信息,若已加载则存储在所述分布式文件系统上的所述模型,若未加载则加载所述配置信息然后存储在所述分布式文件系统上的所述模型;
所述分布式流处理系统实时从所述分布式消息队列系统中消费所述指标数据,将所述指标数据作为所述模型的输入得到预测结果,通过所述预测结果判断所述指标数据是否异常;
当所述指标数据异常时,所述分布式流处理系统将监控异常的告警信息回写至所述分布式消息队列系统,所述客户端从所述分布式消息队列系统实时读取所述告警信息;
离线训练模型的步骤包括:
采集所述业务指标的历史数据曲线,所述历史数据曲线包括所述业务指标在不同时间的历史指标数据值;
对所述历史数据曲线进行预处理,以得到数据完整和/或无异常值的曲线;
分析预处理后的所述历史数据曲线的时域特征和频域特征;
根据所述时域特征和所述频域特征区分曲线类型,每种曲线类型分别对应一种符合所述曲线类型特性的训练模型;
基于预处理后的所述历史数据曲线训练所述曲线类型对应的训练模型,得到训练好的模型。
2.如权利要求1所述的异常检测预警方法,其特征在于,所述曲线类型为稳定序列、非周期序列和周期序列中的一种,所述稳定序列和所述周期序列对应的训练模型为DNN模型,和/或,所述非周期序列对应的训练模型为LSTM模型。
3.如权利要求1所述的异常检测预警方法,其特征在于,对所述历史数据曲线进行预处理的步骤包括以下步骤中的至少一种:
剔除所述历史数据曲线在预设时间段或时间点的历史指标数据值,利用同比或环比周期指标数据值进行填充;
插补所述历史数据曲线中的缺失值,所述插补包括利用所述缺失值前后时间窗口的移动平均进行填充,或,利用当前缺失区间前后两个点作为一个新的序列,然后利用前后数据均匀填充;
更正所述历史数据曲线中的异常值,所述更正包括对已标注的异常值作为所述缺失值进行插补,或利用假设检验法定位异常区间,然后将所述异常区间内的异常值作为所述缺失值进行插补。
4.如权利要求1所述的异常检测预警方法,其特征在于,根据所述时域特征和所述频域特征区分曲线类型的步骤具体包括:
设计用于区分所述历史数据曲线所属的类型的分类模型;
将所述时域特征和所述频域特征作为所述分类模型的输入,得到所述分类模型的输出结果。
5.一种异常检测预警系统,其特征在于,包括:客户端、监控平台、离线模型训练模块、分布式文件系统、分布式消息队列系统和分布式流处理系统;
所述客户端用于在所述监控平台配置监控的业务指标;
所述监控平台用于将所述业务指标的配置信息存储至数据库中;
所述监控平台还用于触发所述离线模型训练模块;
所述离线模型训练模块用于离线训练模型并将训练好的模型上传至所述分布式文件系统,所述模型用于对所述业务指标进行预测;
所述客户端还用于将所述业务指标的指标数据实时推送至所述分布式消息队列系统;
所述分布式流处理系统用于判断是否已加载存储在所述数据库中的配置信息,若已加载则存储在所述分布式文件系统上的所述模型,若未加载则加载所述配置信息然后存储在所述分布式文件系统上的所述模型;
所述分布式流处理系统还用于实时从所述分布式消息队列系统中消费所述指标数据,将所述指标数据作为所述模型的输入得到预测结果,通过所述预测结果判断所述指标数据是否异常;
当所述指标数据异常时,所述分布式流处理系统还用于将监控异常的告警信息回写至所述分布式消息队列系统,所述客户端还用于从所述分布式消息队列系统实时读取所述告警信息;
所述离线模型训练模块离线训练模型时具体用于:
采集所述业务指标的历史数据曲线,所述历史数据曲线包括所述业务指标在不同时间的历史指标数据值;
对所述历史数据曲线进行预处理,以得到数据完整和/或无异常值的曲线;
分析预处理后的所述历史数据曲线的时域特征和频域特征;
根据所述时域特征和所述频域特征区分曲线类型,每种曲线类型分别对应一种符合所述曲线类型特性的训练模型;
基于预处理后的所述历史数据曲线训练所述曲线类型对应的训练模型,得到训练好的模型。
6.如权利要求5所述的异常检测预警系统,其特征在于,所述曲线类型为稳定序列、非周期序列和周期序列中的一种,所述稳定序列和所述周期序列对应的训练模型为DNN模型,和/或,所述非周期序列对应的训练模型为LSTM模型。
7.如权利要求5所述的异常检测预警系统,其特征在于,对所述历史数据曲线进行预处理具体包括以下处理的至少一种:
剔除所述历史数据曲线在预设时间段或时间点的历史指标数据值,利用同比或环比周期指标数据值进行填充;
插补所述历史数据曲线中的缺失值,所述插补包括利用所述缺失值前后时间窗口的移动平均进行填充,或,利用当前缺失区间前后两个点作为一个新的序列,然后利用前后数据均匀填充;
更正所述历史数据曲线中的异常值,所述更正包括对已标注的异常值作为所述缺失值进行插补,或利用假设检验法定位异常区间,然后将所述异常区间内的异常值作为所述缺失值进行插补。
8.如权利要求5所述的异常检测预警系统,其特征在于,根据所述时域特征和所述频域特征区分曲线类型具体包括:
设计用于区分所述历史数据曲线所属的类型的分类模型;
将所述时域特征和所述频域特征作为所述分类模型的输入,得到所述分类模型的输出结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911176633.7A CN110865929B (zh) | 2019-11-26 | 2019-11-26 | 异常检测预警方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911176633.7A CN110865929B (zh) | 2019-11-26 | 2019-11-26 | 异常检测预警方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110865929A CN110865929A (zh) | 2020-03-06 |
CN110865929B true CN110865929B (zh) | 2024-01-23 |
Family
ID=69656645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911176633.7A Active CN110865929B (zh) | 2019-11-26 | 2019-11-26 | 异常检测预警方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110865929B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459778B (zh) * | 2020-03-12 | 2024-05-07 | 平安科技(深圳)有限公司 | 运维系统异常指标检测模型优化方法、装置及存储介质 |
CN111400294B (zh) * | 2020-03-12 | 2023-08-01 | 时时同云科技(成都)有限责任公司 | 数据异常监测方法、装置及系统 |
CN111478904B (zh) * | 2020-04-08 | 2022-05-03 | 莆田学院 | 一种基于概念漂移的物联网设备通信异常检测方法及装置 |
CN111562496A (zh) * | 2020-05-15 | 2020-08-21 | 北京天工智造科技有限公司 | 一种基于数据挖掘的电机运行状态判断方法 |
CN111625437B (zh) * | 2020-05-27 | 2024-01-05 | 北京互金新融科技有限公司 | 风控模型的监控方法及装置 |
CN111708672B (zh) * | 2020-06-15 | 2021-04-16 | 北京优特捷信息技术有限公司 | 数据传输方法、装置、设备及存储介质 |
CN111949497B (zh) * | 2020-06-23 | 2024-04-12 | 贝壳技术有限公司 | 消息队列系统以及基于消息队列系统的消息处理方法 |
CN111897702B (zh) * | 2020-07-16 | 2024-01-05 | 中国工商银行股份有限公司 | 用于业务系统的预警处理方法和装置、计算机系统和介质 |
US11947627B2 (en) | 2020-07-28 | 2024-04-02 | International Business Machines Corporation | Context aware anomaly detection |
CN111860897B (zh) * | 2020-08-05 | 2024-07-16 | 青岛特来电新能源科技有限公司 | 一种异常检测方法、装置、设备及计算机可读存储介质 |
CN112115024B (zh) * | 2020-09-03 | 2023-07-18 | 上海上讯信息技术股份有限公司 | 一种用于故障预测神经网络模型的训练方法与设备 |
CN112288021B (zh) * | 2020-11-02 | 2022-04-29 | 广东柯内特环境科技有限公司 | 一种医疗废水监测数据质控方法、装置及系统 |
CN113158716A (zh) * | 2020-11-20 | 2021-07-23 | 云智慧(北京)科技有限公司 | 一种基于信号频域分析的智能告警方法和系统 |
CN112541352A (zh) * | 2020-12-23 | 2021-03-23 | 上海永骁智能技术有限公司 | 一种基于深度学习的政策解读方法 |
CN112699113B (zh) * | 2021-01-12 | 2022-08-05 | 上海交通大学 | 时序数据流驱动的工业制造流程运行监测系统 |
CN113157517A (zh) * | 2021-02-19 | 2021-07-23 | 中国工商银行股份有限公司 | 批流一体化指标数据异常检测方法及装置 |
CN113077357B (zh) * | 2021-03-29 | 2023-11-28 | 国网湖南省电力有限公司 | 电力时序数据异常检测方法及其填补方法 |
CN113064796B (zh) * | 2021-04-13 | 2022-08-12 | 上海浦东发展银行股份有限公司 | 一种无监督指标异常检测方法 |
CN113360486B (zh) * | 2021-05-28 | 2023-11-21 | 北京百度网讯科技有限公司 | 数据预测方法、装置、电子设备和介质 |
CN113760879B (zh) * | 2021-08-24 | 2024-02-27 | 携程旅游信息技术(上海)有限公司 | 数据库异常监测方法、系统、电子设备及介质 |
CN113705684B (zh) * | 2021-08-30 | 2023-11-24 | 平安科技(深圳)有限公司 | 反向迭代的异常检测方法、装置、电子设备及介质 |
CN113887616B (zh) * | 2021-09-30 | 2023-04-25 | 海看网络科技(山东)股份有限公司 | 一种epg连接数的实时异常检测方法 |
CN114500615B (zh) * | 2022-04-18 | 2022-07-12 | 深圳日晨物联科技有限公司 | 基于物联传感技术的智能终端 |
CN114528190B (zh) * | 2022-04-21 | 2022-07-01 | 云账户技术(天津)有限公司 | 单指标异常的检测方法、装置、电子设备及可读存储介质 |
CN118069460B (zh) * | 2024-02-07 | 2024-09-03 | 陈广民 | 一种应用性能自动监测与优化方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844138A (zh) * | 2016-12-14 | 2017-06-13 | 北京奇艺世纪科技有限公司 | 运维报警系统及方法 |
CN110275814A (zh) * | 2019-06-28 | 2019-09-24 | 深圳前海微众银行股份有限公司 | 一种业务系统的监控方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10270788B2 (en) * | 2016-06-06 | 2019-04-23 | Netskope, Inc. | Machine learning based anomaly detection |
-
2019
- 2019-11-26 CN CN201911176633.7A patent/CN110865929B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844138A (zh) * | 2016-12-14 | 2017-06-13 | 北京奇艺世纪科技有限公司 | 运维报警系统及方法 |
CN110275814A (zh) * | 2019-06-28 | 2019-09-24 | 深圳前海微众银行股份有限公司 | 一种业务系统的监控方法及装置 |
Non-Patent Citations (2)
Title |
---|
宋智宇 ; .商业银行智能监控系统的设计与实现.金融科技时代.2019,(第04期),全文. * |
谭荻 ; 段桂华 ; 王建新 ; 任立男 ; .面向银行业务的交易量预测与告警研究.计算机工程与应用.2018,(第12期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN110865929A (zh) | 2020-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110865929B (zh) | 异常检测预警方法及系统 | |
US11586972B2 (en) | Tool-specific alerting rules based on abnormal and normal patterns obtained from history logs | |
CN111475804B (zh) | 一种告警预测方法及系统 | |
US11150974B2 (en) | Anomaly detection using circumstance-specific detectors | |
US11558272B2 (en) | Methods and systems for predicting time of server failure using server logs and time-series data | |
CN110321371B (zh) | 日志数据异常检测方法、装置、终端及介质 | |
US11403164B2 (en) | Method and device for determining a performance indicator value for predicting anomalies in a computing infrastructure from values of performance indicators | |
CN103513983B (zh) | 用于预测性警报阈值确定工具的方法和系统 | |
US11595415B2 (en) | Root cause analysis in multivariate unsupervised anomaly detection | |
JP6643211B2 (ja) | 異常検知システム及び異常検知方法 | |
US11201865B2 (en) | Change monitoring and detection for a cloud computing environment | |
US11847130B2 (en) | Extract, transform, load monitoring platform | |
CN112529023A (zh) | 一种配置化的人工智能场景应用研发方法和系统 | |
US11307916B2 (en) | Method and device for determining an estimated time before a technical incident in a computing infrastructure from values of performance indicators | |
CN111310139B (zh) | 行为数据识别方法、装置及存储介质 | |
CN105071983A (zh) | 一种面向云计算在线业务的异常负载检测方法 | |
US20210097433A1 (en) | Automated problem detection for machine learning models | |
US11675643B2 (en) | Method and device for determining a technical incident risk value in a computing infrastructure from performance indicator values | |
CN115454778A (zh) | 大规模云网络环境下的时序指标异常智能监控系统 | |
Cao et al. | Load prediction for data centers based on database service | |
CN114169604A (zh) | 性能指标的异常检测方法、异常检测装置、电子设备和存储介质 | |
CN112148561A (zh) | 业务系统的运行状态预测方法、装置及服务器 | |
Liu et al. | Multi-step attack scenarios mining based on neural network and Bayesian network attack graph | |
CN117236571B (zh) | 一种基于物联网的规划方法和系统 | |
CN117834202A (zh) | 一种基于XGBoost模型的SDWAN异常流量识别方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |