CN111931860B - 异常数据检测方法、装置、设备及存储介质 - Google Patents

异常数据检测方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111931860B
CN111931860B CN202010901199.0A CN202010901199A CN111931860B CN 111931860 B CN111931860 B CN 111931860B CN 202010901199 A CN202010901199 A CN 202010901199A CN 111931860 B CN111931860 B CN 111931860B
Authority
CN
China
Prior art keywords
data
boundary value
state data
value
current state
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
Application number
CN202010901199.0A
Other languages
English (en)
Other versions
CN111931860A (zh
Inventor
董善东
姚华宁
黄小龙
梁晓聪
张加浪
黄荣庚
高传泽
李雄政
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010901199.0A priority Critical patent/CN111931860B/zh
Publication of CN111931860A publication Critical patent/CN111931860A/zh
Application granted granted Critical
Publication of CN111931860B publication Critical patent/CN111931860B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2433Single-class perspective, e.g. one-against-all classification; Novelty detection; Outlier detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Optimization (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Pure & Applied Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Medical Informatics (AREA)
  • Operations Research (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供了一种异常数据检测方法、装置、设备及存储介质;所述方法包括:获取待监控对象在预设历史时长内的历史状态数据;基于历史状态数据,预测当前状态数据的走势基线;基于走势基线和历史状态数据,预测走势基线的第一边界值和第二边界值;在同一时刻上,第一边界值大于走势基线中的数据值,第二边界值小于走势基线中的数据值;基于第一边界值和第二边界值,对当前状态数据进行检测,得到检测结果;在检测结果表明当前状态数据为异常数据的情况下,输出用于提示出现异常数据的告警信息;如此,采用实时确定的走势基线的两个边界值,对当前状态数据进行检测,以确定当前状态数据是否为异常数据;如此,能够提高异常检测的准确性。

Description

异常数据检测方法、装置、设备及存储介质
技术领域
本申请涉及计算机领域,尤其涉及异常数据检测方法、装置、设备及存储介质。
背景技术
在相关技术中,通过对时间序列进行特征提取,加载已经训练好的有监督模型,利用有监督算法进行异常检测,最终检测出异常数据;这样,由于时间序列可能是按照分钟量级来收集数据的,因此数据量非常庞大。而且针对不同场景的时间序列需要挖掘出不同的特征或者规则;所以,随着业务的不断拓展和时间序列种类的增加,所需的特征也越来越大,需要花费巨大的人力进行特征挖掘,维护***等工作。
发明内容
本申请实施例提供一种异常数据检测方法、装置、设备及存储介质,通过采用实时确定的走势基线的两个边界值,对当前状态数据进行检测,以确定当前状态数据是否为异常数据;如此,能够提高异常检测的准确性。
本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种异常数据检测方法,包括:获取所述待监控对象在预设历史时长内的历史状态数据;基于所述历史状态数据,预测当前状态数据的走势基线;基于所述走势基线和所述历史状态数据,预测所述走势基线的第一边界值和第二边界值;其中,在同一时刻上,所述第一边界值大于所述走势基线中的数据值,所述第二边界值小于所述走势基线中的数据值;基于所述第一边界值和所述第二边界值,对所述当前状态数据进行检测,得到检测结果;在所述检测结果表明所述当前状态数据为异常数据的情况下,输出用于提示出现异常数据的告警信息。
在一些实施例中,所述基于所述走势基线和所述历史状态数据,预测所述走势基线的第一边界值和第二边界值之后,所述方法还包括:确定所述历史状态数据的状态特性;根据所述状态特性对所述第一边界值和第二边界值进行调整,得到调整的第一边界值和调整的第二边界值;
所述基于所述第一边界值和所述第二边界值,对所述当前状态数据进行检测,得到检测结果,包括:基于所述调整的第一边界值和调整的第二边界值,对所述当前状态数据进行检测,得到所述检测结果。
在一些实施例中,所述在所述检测结果表明所述当前状态数据为异常数据的情况下,输出用于提示出现异常数据的告警信息,包括:在所述检测结果表明所述当前状态数据为异常数据的情况下,确定所述异常数据的持续时长;在所述持续时长大于等于预设时长的情况下,生成并输出所述告警信息。
第二方面,本申请实施例提供一种异常数据检测装置,所述装置包括:
第一获取模块,用于获取所述待监控对象在预设历史时长内的历史状态数据;第一预测模块,用于基于所述历史状态数据,预测当前状态数据的走势基线;第二预测模块,用于基于所述走势基线和所述历史状态数据,预测所述走势基线的第一边界值和第二边界值;其中,在同一时刻上,所述第一边界值大于所述走势基线中的数据值,所述第二边界值小于所述走势基线中的数据值;第一检测模块,用于基于所述第一边界值和所述第二边界值,对所述当前状态数据进行检测,得到检测结果;第一告警模块,用于在所述检测结果表明所述当前状态数据为异常数据的情况下,输出用于提示出现异常数据的告警信息。
在一些实施例中,所述第二预测模块,还用于确定所述历史状态数据的状态特性;根据所述状态特性对所述第一边界值和第二边界值进行调整,得到调整的第一边界值和调整的第二边界值;
所述第一检测模块,还用于基于所述调整的第一边界值和调整的第二边界值,对所述当前状态数据进行检测,得到所述检测结果。
在一些实施例中,所述第一告警模块,还用于在所述检测结果表明所述当前状态数据为异常数据的情况下,确定所述异常数据的持续时长;在所述持续时长大于等于预设时长的情况下,生成并输出所述告警信息。
第三方面,本申请实施例提供一种异常数据检测的设备,包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的方法。
第四方面,本申请实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的方法。
本申请实施例具有以下有益效果:对于信息服务中涉及的待监控对象,监控***首先,基于获取的历史状态数据,预测当前状态数据走势基线;然后,基于该走势基线和历史状态数据,来预测走势基线的第一边界值和第二边界值;如此,实时的生成走势基线的第一边界值和第二边界值,免除了在人工设定阈值的流程,而且这样通过走势基线和历史状态数据,来预测走势基线的两个边界值,用户可以查看到生成的边界值和检测结果,使得检测结果更加直观且结果可解释性较高。最后,采用实时确定的走势基线的第一边界值和第二边界值,对当前状态数据进行检测,以确定当前状态数据是否为异常数据;如此,能够提高异常检测的准确性。
附图说明
图1是本申请实施例提供的异常数据检测***的一个可选的架构示意图;
图2A是本申请实施例提供的异常数据检测***的另一个可选的架构示意图;
图2B是本申请实施例提供的异常数据检测***的结构示意图;
图3是本申请实施例提供的异常数据检测方法的实现流程示意图;
图4是本申请实施例提供的异常数据检测方法的另一实现流程示意图;
图5A是本申请实施例动态阈值检测出曲线的波动示意图;
图5B是本申请实施例提供的异常数据检测***的另一组成结构示意图;
图6是本申请实施例提供的异常数据检测方法的实现框架示意图;
图7是本申请实施例提供的动态阈值配置页面图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)时间序列:是一组按照时间发生先后顺序进行排列的数据点序列。一组时间序列的时间间隔为一恒定值(如,10秒,1分钟,5分钟)。在本申请实施例中时间序列主要指监控类的时间序列。
2)时间序列异常:时间序列异常表现在业务曲线突发的上升或者下降,以及偏离正常值后的波动。
3)告警策略:包括名称、类型和告警触发条件三个必要组成部分。
4)移动平均(Moving Average,MA):是一种通过创建整个数据集中不同子集的一系列平均数来分析数据点的计算方法。移动平均方法包括:简单移动平均,累积移动平均,以及加权移动平均。
5)自回归滑动平均(Autoregressive Moving Average,ARMA)模型:应用于时间序列,由自回归(Auto-Regressive,AR)模型与移动平均(Moving Average,MA)模型为基础“混合”构成。
6)差分整合移动平均自回归(Autoregressive Integrated Moving Average,ARIMA)模型:又称为整合移动平均自回归模型,时间序列预测分析方法之一。ARIMA模型是ARMA模型的扩展。
7)区块链(Blockchain):由区块(Block)形成的加密的、链式的交易的存储结构。
8)区块链网络(Blockchain Network):通过共识的方式将新区块纳入区块链的一系列的节点的集合。
9)云技术(Cloud Technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台***进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的***后盾支撑,只能通过云计算来实现。
10)云存储(Cloud Storage),是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储***(以下简称存储***)是指通过集群应用、网格技术以及分布存储文件***等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储***。
企业信息部门在对内和对外提供服务的过程中,需要监控大量的基础设施状态(比如,服务器,数据库,网络等)和业务状态(比如,用户在线量,访问成功率等)。当出现服务问题时,业务运维人员可以快速的了解问题,并进行问题的处理和恢复,从而保证一个稳定快速的服务。相关技术的监控方法是,首先,将基础设施或者业务在运行中产生的数据进行收集上报,形成一条条的时间序列指标,然后,通过对时间序列指标的监控,来监控到对应基础设施或者业务的数据状态。在一些实施例中,采用人工设定静态阈值的方法,根据业务运维人员的经验,对每个业务来设定静态阈值。当时间序列值超出设定的阈值范围,则触发异常告警。但是随着业务的发展,静态阈值维护成本高,人力消耗大,且检测效果依赖于专家经验。为解决这一问题,相关技术中采用机器学习的方式通过对大量标注数据进行标注,依托算法或运维专家的经验进行特征工程工作来设计合适的特征,结合机器学习模型对状态数据进行异常检测;如此,虽然解决了原有人工设定静态阈值维护成本高,以及检测效果差的问题。但是却依赖于大量的数据标注和大量的特征工程工作。随着业务的不断发展和演进,数据标注和特征工程工作需要一直跟随演进。同时机器学习分类模型检测的结果只有待检测点异常或者不异常,缺乏直观的结果可解释性。
基于此,本申请实施例提供一种异常数据检测方法、装置、设备及存储介质,通过自适应的学习历史时间序列数据,学习到时间序列的基线走势和动态的上下阈值,从而获得端到端的检测模型,免除了特征工程的繁琐和人为设定阈值的操作,降低了人力成本,同时本申请实施例提供的异常数据检测***具有良好的准确率和召回率,更易于场景应用的拓展。如此,通过ARIMA等模型自适应的学习历史状态数据,检测准确率和召回率高,通过计算得到动态的上下边界作为决策依据,检测的结果可解释性好,而且整个实现过程依赖于统计和机器学习无监督方法,免除了大量的数据标注工作,更利于场景的拓展。
下面说明本申请实施例提供的异常数据检测的设备的示例性应用,本申请实施例提供的终端可以实施为各种类型的用户设备,也可以实施为服务器。下面,将说明终端实施为设备或服务器时示例性应用。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
参见图1,图1是本申请实施例提供的异常数据检测***的一个可选的架构示意图,为实现支撑一个示例性应用,首先,对于待检测的基础设施和业务11,首先,获取到该待检测的基础设施和业务11在历史时段内的历史状态数据12,基于历史状态数据12,预测基础设施或业务的状态数据的走势基线13;然后,综合考虑走势基线13和历史状态数据12,来预测走势基线的动态边界值14;如此,免除了特征工程的繁琐工作,不需要人为的进行检测阈值的设定,而且通过学习历史状态数据,自适应且动态的生成检测当前状态数据的动态边界值14(包括,第一边界值和第二边界值)。最后,采用走势基线13在当前时刻的边界值,对当前状态数据15进行检测,以确定当前状态数据是否为异常数据,并将得到的检测结果反馈至客户端;如此,用户可以根据生成的动态阈值,很便捷的知晓对应业务的当前状态数据为什么检测为异常数据(比如,当前状态数据超出了动态阈值边界),产品效果较为直观。
参见图2A,图2A是本申请实施例提供的异常数据检测***的另一个可选的架构示意图,包括区块链网络20(示例性示出了作为原生节点的服务器200)、监测***30(示例性示出归属于监测***30的设备300及其图形界面301),下面分别进行说明。
区块链网络20的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备例如用户设备和服务器,都可以在不需要授权的情况下接入区块链网络20;以联盟链为例,业务主体在获得授权后其下辖的电子设备(例如设备/服务器)可以接入区块链网络20,此时,成为区块链网络20中的一类特殊的节点即终端节点。
需要指出地,终端节点可以只提供支持业务主体发起交易(例如,用于上链存储数据或查询链上数据)功能,对于区块链网络20的原生节点的功能,例如下文所述的排序功能、共识服务和账本功能等,终端节点可以缺省或者有选择性(例如,取决于业务主体的具体业务需求)地实现。从而,可以将业务主体的数据和业务处理逻辑最大程度迁移到区块链网络20中,通过区块链网络20实现数据和业务处理过程的可信和可追溯。
区块链网络20接收来自业务主体(例如图2A中示出的监测***30)的终端节点(例如,图2A中示出的归属于监测***30的设备300)提交的交易,执行交易以更新账本或者查询账本,并在设备的用户界面(例如,设备300的图形界面301)显示执行交易的各种中间结果或最终结果。
下面以监测***接入区块链网络以实现异常数据检测的上链为例说明区块链网络的示例性应用。
监测***30的设备300接入区块链网络20,成为区块链网络20的终端节点。设备300通过传感器获取基础设施或业务的状态的历史状态数据;并且,将最终的检测结果反馈给区块链网络20中的服务器200或者保存在设备300中;在已对设备300部署上传逻辑或用户进行操作的情况下,设备300根据待处理任务/同步时间查询请求,生成对应更新操作/查询操作的交易,在交易中指定了实现更新操作/查询操作需要调用的智能合约、以及向智能合约传递的参数,交易还携带了监测***30签署的数字签名(例如,使用监测***30的数字证书中的私钥,对交易的摘要进行加密得到),并将交易广播到区块链网络20。其中,数字证书可由监测***30向认证中心31进行登记注册得到。
区块链网络20中的原生节点,例如服务器200在接收到交易时,对交易携带的数字签名进行验证,数字签名验证成功后,根据交易中携带的监测***30的身份,确认监测***30是否是具有交易权限,数字签名和权限验证中的任何一个验证判断都将导致交易失败。验证成功后签署原生节点自己的数字签名(例如,使用原生节点的私钥对交易的摘要进行加密得到),并继续在区块链网络20中广播。
区块链网络20中具有排序功能的节点接收到验证成功的交易后,将交易填充到新的区块中,并广播到区块链网络20中提供共识服务的节点。
区块链网络20中的提供共识服务的节点对新区块进行共识过程以达成一致,提供账本功能的节点将新区块追加到区块链的尾部,并执行新区块中的交易:对于终端发起的异常数据检测请求,可以通过自适应的确定走势基线的两个边界值,对当前状态数据进行检测,并将识别出的异常数据显示于设备300的图形界面301中。
区块链网络20中的原生节点可从区块链中读取待监控对象的状态数据,并将检测结果呈现于原生节点的监测页面,原生节点也可以利用在区块链存储的基础设施或业务的状态,对该基础设施或业务的状态的当前状态数据进行检测。
在实际应用中,可为区块链网络20的不同原生节点设置不同的功能,例如设置服务器200具有异常数据检测功能和记账功能。对于该情况,可在交易过程中,服务器200接收设备300发送的异常数据检测,在服务器200中,通过基于历史状态数据,自适应的确定状态数据的走势基线,然后,确定出该走势基线的动态上下边界值,这样,采用动态上下边界值对当前状态数据进行异常检测,能够提高异常检测的准确度。
参见图2B,图2B是本申请实施例提供的异常数据检测***的结构示意图,图2B所示的设备400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。设备400中的各个组件通过总线***440耦合在一起。可理解,总线***440用于实现这些组件之间的连接通信。总线***440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2B中将各种总线都标为总线***440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,在一些示例中键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(Read Only Memory,ROM),易失性存储器可以是随机存取存储器(Random Access Memory,RAM)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作***451,包括用于处理各种基本***服务和执行硬件相关任务的***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证、和通用串行总线(UniversalSerial Bus,USB)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作***设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2B示出了存储在存储器450中的服务器455,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块4551、第一预测模块4552、第二预测模块4553、第一检测模块4554和第一告警模块4555;这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的异常数据检测方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(Application Specific Integrated Circuit,ASIC)、DSP、可编程逻辑器件(Programmable Logic Device,PLD)、复杂可编程逻辑器件(ComplexProgrammable Logic Device,CPLD)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或其他电子元件。
将结合本申请实施例提供的设备的示例性应用和实施,说明本申请实施例提供的异常数据检测方法。
参见图3,应用于监控***中,以实现对信息服务中涉及的待监控对象的状态数据进行异常检测,图3是本申请实施例提供的异常数据检测方法的实现流程示意图,结合图3示出的步骤进行说明。
步骤S301,获取待监控对象在预设历史时长内的历史状态数据。
在一些实施例中,信息服务包括企业信息部门在对内和对外提供的服务,待监控对象包括所提供的信息服务中的基础设施状态和业务状态,其中,基础设施包括:服务器,数据库,网络等;业务包括:用户在线量,用户访问成功率等。历史状态数据为基础设施或业务的状态的关键性能指标(Key Performance Indicator,KPI),在数据表现形式上,状态数据为按照时间发生的先后顺序进行排列的时间序列数据。
在一些可能的实现方式中,首先,以当前时刻为起点,确定满足预设时间长度的历史时段;比如,预设时间长度可以设定为20分钟还可以设定为1小时等。然后,获取所述基础设施或业务的状态在所述历史时段内的历史状态数据。比如,历史状态数据可以是历史时长内的连续数据,还可以是在历史时长内按照一定时间间隔采集的数据。基础设施或业务的状态为对用户在线量进行检测的服务,历史状态数据可以是在当前时刻之前的20分钟的用户在线量的时间序列数据。
步骤S302,基于历史状态数据,预测当前状态数据的走势基线。
在一些实施例中,通过分析历史状态数据的数据统计规律,预测基础设施或业务的状态数据在当前时刻未检测的数据点的走势基线。比如,历史状态数据为以当前时刻为起点的,过去1小时的时间序列数据,通过分析该时间序列数据,由于当前时刻的状态数据还未获取,所以预测当前时刻的未检测的数据点的走势基线。
在一些可能的实现方式中,采用移动平均或加权移动平均的方式对该历史时间序列(即历史状态数据)进行处理,得到拟合后的时间序列,即可得到预测的走势基线;还可以是采用ARMA模型对该历史时间序列(即历史状态数据)进行处理,得到拟合后的时间序列,从而得到了预测的走势基线。如此,根据历史时间序列,实时预测在当前时刻的状态数据的走势基线,能够免除在人工设定等流程,而且同时随着业务的发展,能够减少人工不断的修改维护;而且通过统计机器学习算法来确定走势基线,可以实现在毫秒级判别异常点,从而能够提高计算效率。
步骤S303,基于走势基线和历史状态数据,预测走势基线的第一边界值和第二边界值。
在一些实施例中,在同一时刻上,所述第一边界值大于所述走势基线中的数据值,所述第二边界值小于所述走势基线中的数据值,比如,在同一时刻点,第一边界值大于所述走势基线中的数据值,所述第二边界值小于所述走势基线中的数据值。第一边界值和第二边界值可以分别理解为是走势基线的上边界值和下边界值,即走势基线在任一时刻点的最大值和走势基线在该时刻点的最小值。通过综合考虑走势基线和历史状态数据,在走势基线的基础上,实时的生成走势基线的上下边界,从而能够实时的预测当前时刻的走势基线的两个边界值,能够免除人工维护静态阈值产生的成本。
在一些可能的实现方式中,首先,通过确定任一时刻点走势基线和所述历史状态数据之间的差值,得到差值序列;然后,将该序列差值中的差值和走势基线按照时刻点相结合,即可得到该时刻点的边界值。比如,对于当前时刻点,将该当前时刻点的序列差值和当前时刻点的走势基线相结合,即可预测到当前时刻走势基线的第一边界值和第二边界值。
步骤S304,基于第一边界值和第二边界值,对当前状态数据进行检测,得到检测结果。
在一些实施例中,当前状态数据即为当前时刻需要检测的数据点,采用走势基线在当前时刻的边界值,判断当前状态数据是否超出该边界值,如果超出该边界值说明该当前状态数据为异常数据点,如果未超值该边界值,说明当前状态数据为正常数据点。
步骤S305,在检测结果表明当前状态数据为异常数据的情况下,输出用于提示出现异常数据的告警信息。
在一些实施例中,如果当前状态数据超出了第一边界值和第二边界值之间的范围,即当前状态数据大于第一边界值,或小于第二边界值,说明当前状态数据为异常数据,按照用户设定好的告警策略(比如,连续三个周期内状态数据均被检测为异常数据,则判定为异常数据,并以语音或文字的方式输出告警提示),生成并输出告警信息,以提示用户检测到了异常数据,使得用户能够及时查看哪些状态数据发生了异常,检测效果的可解释性较好。
在本申请实施例中,通过自实时的生成走势基线的两个边界值,免除了在人工设定阈值的流程,而且这样通过走势基线和历史状态数据,来预测走势基线的两个边界值,用户可以查看到生成的边界值和检测结果,使得检测结果更加直观且结果可解释性较高。而且通过采用走势基线在当前时刻的边界值,对当前状态数据进行检测,以确定当前状态数据是否为异常数据,能够提高异常数据检测的准确性。
在一些实施例中,异常数据检测方法应用于监控***中,以实现对信息服务中涉及的待监控对象的状态数据进行异常检测,比如,对于基础设施中的服务器,数据库和网络等进行异常检测,对业务中的用户在线量,访问成功率进行异常检测等。其中,历史状态数据为在预设历史时长内获取的时间序列数据,通过历史状态数据,预测状态数据在当前时刻的走势基线;走势基线可以理解为是预测出的在当前时刻的时间序列数据点的理想值。然后,通过确定走势基线和历史状态数据之间的误差,预测该理想值(即走势基线在当前时刻的值)的上下边界(即第一边界值和第二边界值),如果检测出当前时刻的实际状态数据超出了第一边界值和第二边界值,说明当前状态数据异常,发出告警信息,以提示用户检测到了异常数据。在实施时,本领域技术人员可以根据实际要检测的基础设施或业务,获取要检测的基础设施或业务的历史状态数据,基于该历史状态数据自适应的实施预测该历史状态数据在当前时刻的走势基线,以及走势基线的动态边界值,包括第一边界值和第二边界值。当检测结果中,表征当前状态数据大于第一边界值或小于第二边界值,表明当前状态数据为异常数据,从而基于用户设定好的告警策略,生成告警信息,并以该告警策略中设定的告警方式进行输出,比如,设定的告警方式为将发生异常的数据进行标注后发送到用户端,以使用户能够查看标注的异常数据。这样,用户就能够很便捷的知晓对应业务的状态数据为什么检测为异常(当前点超出了动态阈值边界),具有很直观的效果。
在一些实施例中,对历史状态数据进行动态实时的生成走势基线,即步骤S302可以通过以下步骤实现:
步骤S321,对所述历史状态数据进行拟合,得到拟合后数据。
在一些可能的实现方式中,可以采用移动平均或加权移动平均对历史状态数据进行拟合,得到拟合后数据。历史状态数据为时间序列数据,通过对该时间序列数据进行拟合,得到拟合后序列。步骤S321可以通过以下过程实现:
首先,采用预设验证条件,对历史状态数据进行验证,得到验证结果。
这里,预设验证条件为验证数据合理性的条件,与历史状态数据的数据特性相关,包括:是否满足预设数据点数量、是否存在断点或者缺失情况、数据值是否满足预设阈值,比如,历史状态数据是在历史时长内不同时刻点的流量数据,那么验证该流量数据的点数是否满足预设数据点数量,是否缺失某一时刻点的流量数据或者是否某一时刻的流量数据过大或过小等。验证结果包括:验证通过和验证不通过,其中,验证通过表明历史状态数据满足预设验证条件,比如,流量数据的点数满足预设数据点数量,不缺失某一时刻点的流量数据,而且认一时刻的流量数据均在阈值范围内。验证不通过表明该流量数据的点数不满足预设数据点数量,或,缺失某一时刻点的流量数据,或者某一时刻的流量数据过大或过小等。
然后,基于验证结果,对历史状态数据进行更新,得到满足预设验证条件的已验证数据。
在一些可能的实现方式中,如果验证结果表明历史状态数据验证不通过,根据历史状态数据中具体不满足的验证条件,对历史状态数据进行补充或者调整,使得更新后的状态数据满足预设验证条件,即得到已验证数据。在一个具体例子中,如果历史状态数据为流量数据,其中的流量数据的点数不满足预设数据点数量,那么从该历史状态数据所在的历史时段内,按照时间顺序再采集一些数据点,补充在历史状态数据中。比如,原历史状态数据是在历史20分钟内,按照每30秒采集一个数据点,这时可以按照每10秒采集一个数据点,将重新采集到的数据点补充在原历史状态数据中,以使补充后的历史状态数据的数据点满足预设数据点数量。
在另一例子中,如果历史状态数据为流量数据,比如,流量数据过大或者过小(比如,流量值大于设定的最大流量值,或者流量值小于设定的最小流量值),如果流量数据过大或者过小的点数比较少,那么可以剔除这些数据点,如果流量数据过大或者过小的点数比较多,可以重新选择其它历史时段内的历史状态数据。
然后,对已验证数据进行归一化处理,得到归一化数据。
在一些可能的实现方式中,对已验证数据进行数据预处理,即进行最大最小值归一化,使得归一化数据的值域统一在[0, 1]之间。
最后,对归一化数据进行拟合,得到拟合后数据。
在一些可能的实现方式中,可以通过多种方式对归一化数据进行拟合,比如,采用移动平均,加权移动平均,AR模型或ARIMA模型等对归一化数据进行拟合,得到拟合后数据。
步骤S322,基于拟合后数据,确定走势基线。
在一些可能的实现方式中,可以将拟合后数据作为走势基线,也就是说走势基线可以是拟合后时间序列;还可以是通过对拟合后数据进行连接,得到走势基线。
在本申请实施例中,通过对历史状态数据进行动态实时的生成边界值,从而使得边界值更能适应基础设施或业务的状态在整个生命周期的动态发展。
在一些实施例中,为了能够实时且准确的预测走势基线的第一边界值和第二边界值,步骤S303可以通过如图4所示的步骤实现,图4是本申请实施例提供的异常数据检测方法的另一实现流程示意图,结合图3和图4示出的步骤进行以下说明:
步骤S401,确定走势基线和同一时刻点的历史状态数据之间的差值,得到差值序列。
在一些可能的实现方式中,走势基线为通过对历史状态数据进行拟合后得到的拟合时间序列数据,其中包括多个数据点,对于每一个数据点,将该数据点和该数据点所属时间点的历史状态数据相减,得到每一时刻点的差值,从而得到差值序列。
步骤S402,确定差值序列的均值和方差。
在一些可能的实现方式中,对差值序列中的差值求平均,该平均值包括差值序列平均绝对误差和平均相对误差,其中平均绝对误差表示对差值序列中每一差值的绝对值求平均,平均相对误差表示对走势基线和同一时刻点的历史状态数据相减的差值求平均。然后,基于差值序列平均绝对误差和平均相对误差,计算出差值序列的方差。
步骤S403,根据均值和方差,确定第一边界值和第二边界值。
在一些可能的实现方式中,通过该均值和方差确定出调整量,然后,在走势基线的基础上,综合考虑调整量,从而得到边界值的最大值和最小值,可以通过以下过程实现:
首先,采用预设的调整参数对方差进行调整,得到调整后方差。
这里,预设的调整参数用于表示数据波动的不同灵敏度,可根据状态特性进行设置。在一个具体例子中,通过将预设的调整参数与方差相乘,得到调整后方差。
其次,对均值和调整后方差求和,得到边界调整量。
这里,将均值和调整后方差相加,得到用于调整走势基线的上下波动的边界调整量。
再次,将走势基线与边界调整量之和,确定为走势基线的第一边界值。
这里,按照相同的时刻点,将同一时刻点的走势基线和与所述边界调整量之和,确定为走势基线的第一边界值,即上边界值(比如,最大边界值)。
最后,将走势基线与边界调整量之差,确定为走势基线的第二边界值。
这里,按照相同的时刻点,将同一时刻点的走势基线和与所述边界调整量之差,确定为走势基线的第二边界值,即下边界值(比如,最小边界值)。
在其他可能的实现方式中,还可以是确定差值序列的均方误差,通过该均方误差,确定出边界值。
上述步骤S401至步骤S403给出了实现“基于所述走势基线和所述历史状态数据,预测所述走势基线的第一边界值和第二边界值”的方式,在该方式中,通过自适应对历史状态数据的时间序列进行基线的拟合,然后根据拟合后的时间序列的均值和方差实时的确定出,走势基线的上下边界值;如此,同时考虑了走势基线与历史状态数据的平均误差以及走势基线与历史状态数据的差值的标准差,可以得到更准确的上下边界值。
步骤S404,如果当前状态数据小于第二边界值,或,当前状态数据大于第一边界值,确定当前状态数据为异常数据。
在一些可能的实现方式中,第一边界值和所述第二边界值为预测的走势基线在当前时刻的上下边界值,通过判断当前时刻的当前状态数据是否大于第一边界值,或小于第二边界值,实现对当前状态数据的检测。如果当前状态数据的数据值超出了第一边界值和第二边界值,说明当前状态数据是不合理的,即为异常数据。
在一些实施例中,如果所述当前状态数据大于等于所述第二边界值,且所述当前状态数据小于等于所述第一边界值,确定所述当前状态数据为正常数据。
在一些可能的实现方式中,如果当前状态数据的数据值未超出第一边界值和第二边界值,说明当前状态数据是合理的,即为正常数据。
上述步骤S404给出了实现“基于所述第一边界值和所述第二边界值,对所述当前状态数据进行检测,得到检测结果”的方式,在该方式中,通过第一边界值和第二边界值对当前状态数据进行检测,从而能够提高对基础设施和业务的状态数据进行异常检测的准确度。
在一些实施例中,可通过异常数据检测***中的业务特性层,对于通过走势基线和历史状态数据,确定的边界值,从而依据状态特性对边界值进行微调,即在步骤S303之后,所述方法还包括以下步骤:
步骤S331,在检测结果表明当前状态数据为异常数据的情况下,确定所述历史状态数据的状态特性。
在一些可能的实现方式中,确定基础设施或业务的状态数据的状态特性。状态特性可以理解为是状态数据在业务中的实际含义,比如,基础设施或业务的状态为成功率指标,其状态特性为成功率。在待监控对象为业务状态的情况下,状态特征可以理解为是业务特性。
步骤S332,根据状态特性对第一边界值和第二边界值进行调整,得到调整的第一边界值和调整的第二边界值。
在一些可能的实现方式中,根据状态特性对边界值中的第一边界值和第二边界值进行调整,可以是增大或者减小第一边界值和第二边界值。在一个具体例子中,基础设施或业务的状态为成功率指标,状态特性为成功率,由于成功率的所属范围应该为小于等于100%,大于等于0,所以可以判断初步设定的边界值的第一边界值是否为100%,第二边界值是否为0,如果不是则基于此进行调整,使得调整的边界值与状态特性匹配。
上述步骤S331和步骤S332实现了对于边界值的调整,这样,基于状态特性对边界值进行调整,从而使得调整的边界值更能够准确的判别出基础设施和业务的状态数据中的异常数据。
步骤S333,基于调整的第一边界值和调整的第二边界值,对当前状态数据进行检测,得到检测结果。
在一些可能的实现方式中,采用经过状态特性进行更新后的调整的第一边界值和第二边界值对当前状态数据进行检测,从而能够提高异常数据检测的准确度。
在本申请实施例中,对于初步得到的边界值,还可以结合状态数据的状态特性,对边界值进行调整,从而使得调整的边界值更能够匹配状态特性的独特性,从而提高了异常检测的准确度。
在一些实施例中,为了减少对于异常数据的误判,可以通过异常数据检测***中的决策层,获取调整的边界值,采用调整的边界值对初次判断为异常数据的当前状态数据进行再次判别,即在步骤S304之后,还包括以下步骤:
步骤S341,如果检测结果表明当前状态数据为异常数据,获取历史状态数据的状态特性。
在一些可能的实现方式中,检测结果表明所述当前状态数据为异常数据,说明当前状态数据小于第二边界值,或者当前状态数据大于第一边界值,如果经过初步判断当前状态数据为异常数据,那么获取状态特性,以通过状态特性实现对初步确定的边界值进行调整
步骤S342,根据状态特性对第一边界值和第二边界值进行调整,得到调整的第一边界值和调整的第二边界值。
这里,步骤S342的实现过程可以是与步骤S332的实现过程相同,但是不好走S332是在异常数据检测***的状态特性层实现的,步骤S342是在异常数据检测***的决策层实现的。
步骤S343,采用调整的第一边界值和调整的第二边界值,对当前状态数据进行检测,得到更新的检测结果。
在一些可能的实现方式中,对于初步判别为异常数据的当前状态数据,采用基于状态特性更新的调整的边界值对当前状态数据进行二次检测,得到更新的检测结果。如果更新的检测结果仍然表明当前状态数据为异常数据,可生成并输出告警信息,以提示用户该数据点为异常数据。
在本申请实施例中,通过对于初步判别为异常数据的当前状态数据,采用调整的边界值进行再次调整,从而减少了对于状态数据的误判。
步骤S344,在更新的检测结果表明当前状态数据为异常数据的情况下,输出告警信息。
在一些可能的实现方式中,如果更新的检测结果表明当前状态数据为异常数据,生成并输出告警信息。也就是说,对于同一状态数据,如果多次检测均为异常数据,那么生成并输出告警信息。
在一些实施例中,在检测结果表明当前状态数据为异常数据的情况下,可生成用于提示用户数据异常的告警信息,即在步骤S304之后,所述方法还包括以下步骤:
第一步,如果检测结果表明当前状态数据为异常数据,确定异常数据的持续时长。
在一些可能的实现方式中,如果检测结果表明当前状态数据为异常数据,确定从当前时刻起,判别的状态数据持续为异常数据的持续时长,比如,在当前时刻起的未来1分钟内的状态数据仅为异常数据。
第二步,如果持续时长大于等于预设时长,生成并输出告警信息。
比如,预设时长可以是基于状态数据的数据属性设定的,比如,基础设施为网络的网络流量,那么数据属性为网络流量的属性,因为网络流量不可以长时间异常,所以将预设时长可以设定为较小的值,比如,设定为5秒。针对异常数据生成告警信息时,可以是依据用户选定的告警策略来生成,比如,以语音的方式,或者文字的方式等输出。
在其他实施例中,针对异常数据生成并输出告警信息之后,首先,对所述当前状态数据进行标注,得到已标注数据;比如,对于判别为异常数据的当前状态数据标识上标注符,得到已标注数据,该已标注数据对应的数据点即为发生告警的点。
然后,将已标注数据发送至客户端,以使客户端对已标注数据进行验证,并基于验证结果调整所述告警信息。
比如,将标注了发生告警的数据点的已标注数据发送给客户端,从而用户可在客户端对发生告警的数据点进行验证,并且还可以通过验证结果调整告警信息以及告警信息输出的策略。
在本申请实施例中,在异常数据联系出现的时长较大,或者多次检测之后仍为异常数据的状态数据,生成并发出告警信息,即可及时的提醒用户存在异常数据,还可以避免异常数据的误报。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用,以基于动态阈值进行异常检测为例,进行说明。
为便于理解本申请实施例,对时间序列进行说明,在本申请实施例中,时间序列是指监控类的时间序列,如图5A所示,图5A是本申请实施例动态阈值检测出曲线的波动示意图,其中,曲线501表示将每分钟上报的一个监控数据点连接起来得到的基线,边界线502和503分别表示动态阈值中的第一边界值和第二边界值;曲线504表示待检测的状态数据的实际数据曲线,曲线504在区域505中的部分曲线,表示业务量出现突增,并一直偏离正常值的波动;基于此,输出告警信息“业务曲线出现突增,并一直偏离正常值波动”。
在相关技术中,可以通过以下多种方式,实现异常数据的检测:
方式一,通过业务运维人员的经验,来给每条时间序列指标进行一个静态阈值的设定。当时间序列值超出了设定的阈值,即,会被认定为异常并发送告警。如此,通过人工设定阈值根据观察或经验,人为的设定阈值,超过阈值的点就认为是异常。虽然简单直观,结果可解释性好,但是维护成本较高,需要大量人力投入来维护阈值、使用场景窄,而且随着业务的发展,阈值的调整速度跟不上发展速度。
方式二,基于特征工程和随机森林方法进行时间序列中异常值检测。
比如,利用特征工程来提取时间序列中的异常特征,通过随机森林模型,或者梯度提升迭代决策树(Gradient Boosting Decision Tree,GBDT),树可扩展的机器学习***(XGBoost)等有监督模型来进行时间序列异常的检测。基于特征工程和随机森林方法进行时间序列中异常值检测的过程如图5B所示,图5B是本申请实施例提供的异常数据检测***的另一组成结构示意图,结合图5B进行以下说明:
KPI数据输入模块51,用于通过数据标注工具进行正负样本数据的标注。
检测器52,用于利用多个现在常用的检测器来进行特征提取工作,从而提取出时间序列中异常值的特征。
特征模块53,用于获取特征序列和标注好的标签。
在一些可能的实现方式中,获取到的特征序列和标注好的标签,可以用于随机森林模型的训练和测试,得到符合要求的随机森林模型;
最新异常分类器54,用于对测试集进行测试,将异常数据输入异常模块55.
异常模块55,用于输出异常数据。
方式三,通过特征工程提取出特征信息;其中,特征信息包括统计特征,拟合特征和分类特征,三类特征共计186个。在模型判决方面,包含三层:第一层统计层,使用类似3sigma准则的统计方案判决,过滤掉大量的正样本,实现异常初级筛选;第二层无监督层,使用多种无监督联合仲裁,如Isolation Forest、指数加权移动平均值(ExponentiallyWeighted Moving-Average,EWMA)、多项式等,将疑似异常传递给第三层进行检测;第三层有监督层,对时间序列进行特征提取,加载已经训练好的有监督模型,利用GBDT、XGBoost等有监督算法进行异常检测,最终检测出异常数据。
在方式二和三中,一方面,进行特征工程来提取异常点的特征,分析人员通过分析大量数据,从中提取出有效的特征或者规则。但时间序列不仅仅是按照天来收集数据的,更多的是按照小时,甚至分钟量级来收集数据,因此数据量非常庞大。从海量的时间序列中进行数据分析提取特征,需要耗费巨大的人力。
另一方面,不同应用场景下的时间序列有着不同的特征表现,因此,针对不同场景的时间序列,分析人员需要挖掘出不同的特征或者规则,而当前场景中特征很难被应用到其他场景。此外,随着业务的不断拓展和时间序列种类的增加,所需的特征也将会越来越大,需要分析人员持续花费巨大的人力进行特征挖掘,维护***等工作,特征工程也将会越来越复杂繁琐。
再一方面,基于机器学习分类模型进行异常数据的检测,检测结果的可解释性不好。很多时候,用户只是得到了一个检测结果(是异常或者不是异常),而对于检测结果的可解释较差。
基于此,本申请实施例提供一种异常数据检测方法,基于统计机器学习的动态阈值方法,动态实时的生成检测的上下边界来进行时间序列指标的异常检测;如此,一方面,免除了特征工程的繁琐工作,也不需要人为的进行检测阈值的设定。模型通过学习历史状态数据,自适应且动态的生成检测上下边界进行检测判断。另一方面,模型计算可以在秒级内出检测结果,提高了时效性。再一方面,用户可以根据生成的动态阈值,很便捷的知晓对应业务的时间序列为什么检测为异常(当前点超出了动态阈值边界),有很直观的产品效果,从而提高了检测结果的可解释性。
图6是本申请实施例提供的异常数据检测方法的实现框架示意图,结合图6所示进行以下说明,所述框架包括数据层601,算法层602,业务层603和决策层604,其中:
数据层601,用于接收输入的原KPI数据611,并对原KPI数据进行数据验证612和数据预处理613。
在一些实施例中,首先,通过数据层进行数据验证和数据预处理工作。对原KPI数据进行数据验证是验证数据的合理性(比如,验证原KPI数据是否满足数据点数的要求,是否存在断点或者缺失值情况,数据值是否满足值域约束等)。对原KPI数据进行数据预处理则是进行最大最小值归一化,将数据值域都统一到[0, 1]之间。
算法层602,用于通过移动平均方法或ARIMA拟合621,对数据层进行处理后的数据自适应的进行时间序列的走势基线的拟合,并对拟合结果求取平均值和评价据对误差,根据平均值和平均绝对误差(mean absolute error,MAE)确定动态阈值对应的上下边界622。
在一些实施例中,算法层602确定时间序列的走势基线可以采用多种方式实现,比如,采用移动平均,加权移动平均,AR或ARIMA等方法,确定时间序列的走势基线,其中:
方式一:采用移动平均的方式确定时间序列的走势基线,首先,采用公式(1)确定移动平均值
Figure 940125DEST_PATH_IMAGE001
,然后,根据移动平均值
Figure 97437DEST_PATH_IMAGE001
,得到走势基线。
Figure 218977DEST_PATH_IMAGE002
在公式(1)中,window_size为根据实际情况设置的值,一般取时间序列总点数的10%至20%的大小。
Figure 588778DEST_PATH_IMAGE003
为原始时间序列在i时刻的值。
方式二:采用加权移动平均的方式确定时间序列的走势基线,首先,采用公式(2)确定加权移动平均值
Figure 384434DEST_PATH_IMAGE001
,然后,根据加权移动平均值,得到走势基线。
Figure 978226DEST_PATH_IMAGE004
方式三:采用ARMA模型确定时间序列的走势基线,首先,采用公式(3)确定拟合后的时间序列,然后,根据拟合后的时间序列,得到走势基线。
Figure 587062DEST_PATH_IMAGE005
在公式(3)中,
Figure 167079DEST_PATH_IMAGE006
为自回归部分,非负整数p为自回归阶数,
Figure 177760DEST_PATH_IMAGE007
为自回归系数,
Figure 676875DEST_PATH_IMAGE008
为滑动平均部分,非负整数q为滑动平均阶数,
Figure 773007DEST_PATH_IMAGE009
为滑动平均系数;
Figure 219032DEST_PATH_IMAGE010
为拟合后的时间序列,
Figure 756323DEST_PATH_IMAGE011
为白噪声序列。
第二步,基于走势基线,确定动态阈值的上下边界。
首先,确定走势基线和原始时间序列点的差序列(即,各个点对应的差值组成的序列,即公式中的
Figure 629601DEST_PATH_IMAGE012
),然后,采用公式(4)对差序列求平均绝对误差(mae),采用公式(5)对差序列求均值
Figure 9767DEST_PATH_IMAGE013
,采用公式(6)对差序列求标准差(std):
Figure 993904DEST_PATH_IMAGE014
然后,根据平均绝对误差和标准差,确定动态阈值的上下边界,其中:
第一边界值
Figure 651281DEST_PATH_IMAGE015
如公式(7)所示:
Figure 695460DEST_PATH_IMAGE016
下边界
Figure 562922DEST_PATH_IMAGE017
如公式(8)所示:
Figure 350750DEST_PATH_IMAGE018
在上述公式(7)和(8)中,Scale为调整参数,表示针对数据波动的不同灵敏度,可根据状态特性(比如,待监控对象为业务状态时,状态特征可以理解为是业务特性)进行设置。这样,根据动态阈值生成上下边界,用户可以查看到生成的上下边界和检测结果,检测结果直观,结果可解释性高;而且确定动态阈值上下边界时,同时考虑了基线拟合的平均误差以及基线与原始时间序列数据差值的标准差,可以得到更准确的阈值上下边界,从而提高异常检测的准确性。
业务层603,用于实现将业务特性加载到上下边界中,得到调整的边界值631。
比如,成功率指标,对应的第一边界值始终是为100%,比如失败率指标,对应的下边界则始终为0。即业务特性可以调整上下边界的阈值,比如根据业务特性设置特定的上下边界的阈值。
这样,算法层输出的是走势基线的上下边界,决策层根据走势基线的上下边界,并考虑业务层的业务特性,进行异常判断,可解释性更好,且算法层只需检测数据层面的异常,无需考虑不同业务的业务特性,具有通用性。
决策层604,用于进行当前待检测点是否异常的判断,以实现评估状态数据是否异常641。
在一些实施例中,当点超出动态阈值的上下边界,则认定为异常点。结合业务层的业务特性,调整算法层输出的动态阈值上下边界,根据调整后的动态阈值上下边界决策当前待检测点是否异常。
在一些实施例中,基于机器学习方法来生成时间序列指标的动态阈值。当待检测点超出了动态阈值的上下边界,则会被检测为异常点。通过这种基于动态阈值方案的异常点检测,用户可以很直观的看到异常点被检测为异常的原因(直观等同于人为设定阈值)。同时与人为设定阈值相比,又免除了阈值设定和维护的成本,同时提供了更好的检测准确率。基于此,该方法的应用过程如下:
首先,用户在告警配置页面,可以选择静态阈值方案或者动态阈值方案。
在一些可能的实现方式中,用户可在如图7所示的动态阈值配置界面701中进行选择静态阈值方案或者动态阈值方案,图7是本申请实施例提供的动态阈值配置页面图,从界面701可以看出,条件类型71包括:静态阈值72和动态阈值73,界面701呈现的内容为将条件类型选择为动态阈值73所呈现的界面。从界面701可以看出,状态数据为外网出流量721,发生告警的触发条件702为对一定时长内的外网出流量721求和大于动态阈值722中的最大值或小于动态阈值中的最小值。在区域703选择的一定时长可以是选择的设定的时长,比如,1小时、3小时,还可以是自由设定的时长,比如,从2019年11月20日12:00:00至2019年11月26日12:00:00等。比如,选择的一定时长为1小时,预测的边界值中的上边界值(对应于上述实施例中的第一边界值)为曲线704,下边界值(对应于上述实施例中的第二边界值)为曲线705,曲线706为实际的外网出流量数据。筛选维度707表示对基础设施或业务的状态的筛选,包括服务类型771,比如,筛选出输入机772。聚合维度708,表示对数据进行聚合的维度,比如,对聊天类数据进行聚合等,对状态特性流量进行聚合等。在本申请实施例中,设定统计周期709为1分钟,即1分钟对状态数据进行一次异常检测,将触发告警周期数710设定为持续触发3个周期,即持续3个周期内状态数据为异常,触发告警,将通知频率711设定为30分钟,即每间隔30分钟上报一次检测结果。
其次,当选择了动态阈值检测方案,告警页面会根据用户选择的历史状态数据(比如,过去一周,或者过去一天),生成直观的动态阈值上下边界。
再次,用户可以选择适合状态特性的告警策略方案,当告警策略选定后,对应的动态阈值检测将结合告警策略,将告警点标注出来。
最后,用户可以根据标注的告警点,对状态特性告警进行验证,从而选择更加适合的告警策略。
在本申请实施例中,通过自适应的根据时间序列,实时的生成动态阈值上下边界,免除了人工设定阈值的流程。同时随着状态特性的发展,人工设定的静态阈值需要人工不断的修改维护,本申请实施例提供的异常数据检测方法,通过自适应的方式设定动态阈值,免除了人工维护成本;而且通过统计机器学习算法来确定动态阈值,可以实现在毫秒级判别异常点。
下面继续说明本申请实施例提供的异常数据检测的服务器455的实施为软件模块的示例性结构,在一些实施例中,如图2B所示,存储在存储器450的异常数据检测的服务器455中的软件模块可以包括:第一获取模块4551,用于获取所述待监控对象在预设历史时长内的历史状态数据;第一预测模块4552,用于基于所述历史状态数据,预测当前状态数据的走势基线;第二预测模块4553,用于基于所述走势基线和所述历史状态数据,预测所述走势基线的第一边界值和第二边界值;其中,在同一时刻上,所述第一边界值大于所述走势基线中的数据值,所述第二边界值小于所述走势基线中的数据值;第一检测模块4554,用于基于所述第一边界值和所述第二边界值,对所述当前状态数据进行检测,得到检测结果;第一告警模块4555,用于在所述检测结果表明所述当前状态数据为异常数据的情况下,输出用于提示出现异常数据的告警信息。
在一些实施例中,所述第一预测模块4552,还用于:对所述历史状态数据进行拟合,得到拟合后数据;基于所述拟合后数据,确定所述走势基线。
在一些实施例中,所述第一预测模块4552,还用于:采用预设验证条件,对所述历史状态数据进行验证,得到验证结果;基于所述验证结果,对所述历史状态数据进行更新,得到满足所述预设验证条件的已验证数据。对所述已验证数据进行归一化处理,得到归一化数据;对所述归一化数据进行拟合,得到所述拟合后数据。
在一些实施例中,所述第二预测模块4553,还用于:确定所述走势基线和同一时刻点的历史状态数据之间的差值,得到差值序列;确定所述差值序列的均值和方差;根据所述均值和所述方差,确定所述第一边界值和所述第二边界值。
在一些实施例中,所述第二预测模块4553,还用于:采用预设的调整参数对所述方差进行调整,得到调整后方差;对所述均值和所述调整后方差求和,得到边界调整量;将所述走势基线与所述边界调整量之和,确定为所述走势基线的第一边界值;将所述走势基线与所述边界调整量之差,确定为所述走势基线的第二边界值。
在一些实施例中,第一检测模块4554,还用于:如果所述当前状态数据小于所述第二边界值,或,所述当前状态数据大于所述第一边界值,确定所述当前状态数据为异常数据;如果所述当前状态数据大于等于所述第二边界值,且所述当前状态数据小于等于所述第一边界值,确定所述当前状态数据为正常数据。
在一些实施例中,所述第二预测模块4553,还用于:确定所述历史状态数据的状态特性;根据所述状态特性对所述第一边界值和第二边界值进行调整,得到调整的第一边界值和调整的第二边界值;
所述第一检测模块4554,还用于:基于所述调整的第一边界值和调整的第二边界值,对所述当前状态数据进行检测,得到所述检测结果。
在一些实施例中,所述第二预测模块4553,还用于:在所述检测结果表明所述当前状态数据为异常数据的情况下,确定所述历史状态数据的状态特性;根据所述状态特性对所述第一边界值和第二边界值进行调整,得到调整的第一边界值和调整的第二边界值;采用所述调整的第一边界值和调整的第二边界值,对所述当前状态数据进行检测,得到更新的检测结果;在所述更新的检测结果表明所述当前状态数据为异常数据的情况下,输出所述告警信息。
在一些实施例中,所述第一告警模块4555,还用于:如果所述检测结果表明所述当前状态数据为异常数据,确定所述异常数据的持续时长;如果所述持续时长大于等于预设时长,生成并输出所述告警信息。
本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法。在一些实施例中,存储介质可以是闪存、磁表面存储器、光盘、或光盘存储器等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。作为示例,可执行指令可以但不一定对应于文件***中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(Hyper Text Markup Language,HTML)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个车载计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备执行。综上所述,本申请实施例对于信息服务中涉及的待监控对象,监控***首先,基于获取的历史状态数据,预测当前状态数据走势基线;然后,基于该走势基线和历史状态数据,来预测走势基线的第一边界值和第二边界值;如此,实时的生成走势基线的第一边界值和第二边界值,免除了在人工设定阈值的流程,而且这样通过走势基线和历史状态数据,来预测走势基线的两个边界值,用户可以查看到生成的边界值和检测结果,使得检测结果更加直观且结果可解释性较高。最后,采用实时确定的走势基线的第一边界值和第二边界值,对当前状态数据进行检测,以确定当前状态数据是否为异常数据;如此,能够提高异常检测的准确性。以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (8)

1.一种异常数据检测方法,应用于监控***中,以实现对信息服务中涉及的待监控对象的状态数据进行异常检测,其特征在于,所述方法包括:
获取所述待监控对象在预设历史时长内的历史状态数据;
基于所述历史状态数据,预测当前状态数据的走势基线;
确定所述走势基线和同一时刻点的历史状态数据之间的差值,得到差值序列;
确定所述差值序列的均值和方差;
根据所述均值和所述方差,确定第一边界值和第二边界值;其中,在同一时刻上,所述第一边界值大于所述走势基线中的数据值,所述第二边界值小于所述走势基线中的数据值;
通过业务特性层对所述第一边界值和所述第二边界值进行微调,得到微调的第一边界值和微调的第二边界值;
基于所述微调的第一边界值和所述微调的第二边界值,对所述当前状态数据进行检测,得到检测结果;
在所述检测结果表明所述当前状态数据为异常数据的情况下,通过决策层确定所述历史状态数据的状态特性;
根据所述状态特性对所述微调的第一边界值和所述微调的第二边界值进行调整,得到调整的第一边界值和调整的第二边界值;
采用所述调整的第一边界值和调整的第二边界值,对所述当前状态数据进行检测,得到更新的检测结果;
在所述更新的检测结果表明所述当前状态数据为异常数据的情况下,输出告警信息。
2.根据权利要求1所述的方法,其特征在于,所述基于所述历史状态数据,预测所当前状态数据的走势基线,包括:
对所述历史状态数据进行拟合,得到拟合后数据;
基于所述拟合后数据,确定所述走势基线。
3.根据权利要求2所述的方法,其特征在于,所述对所述历史状态数据进行拟合,得到拟合后数据,包括:
采用预设验证条件,对所述历史状态数据进行验证,得到验证结果;
基于所述验证结果,对所述历史状态数据进行更新,得到满足所述预设验证条件的已验证数据;
对所述已验证数据进行归一化处理,得到归一化数据;
对所述归一化数据进行拟合,得到所述拟合后数据。
4.根据权利要求1所述的方法,其特征在于,所述根据所述均值和所述方差,确定所述第一边界值和所述第二边界值,包括:
采用预设的调整参数对所述方差进行调整,得到调整后方差;
对所述均值和所述调整后方差求和,得到边界调整量;
将所述走势基线与所述边界调整量之和,确定为所述走势基线的第一边界值;
将所述走势基线与所述边界调整量之差,确定为所述走势基线的第二边界值。
5.根据权利要求1所述的方法,其特征在于,基于所述微调的第一边界值和所述微调的第二边界值,对所述当前状态数据进行检测,得到检测结果:
如果所述当前状态数据小于所述微调的第二边界值,或,所述当前状态数据大于所述微调的第一边界值,确定所述当前状态数据为异常数据;
如果所述当前状态数据大于等于所述微调的第二边界值,且所述当前状态数据小于等于所述微调的第一边界值,确定所述当前状态数据为正常数据。
6.一种异常数据检测装置,应用于监控***中,以实现对信息服务中涉及的待监控对象的状态数据进行异常检测,其特征在于,所述装置包括:
第一获取模块,用于获取所述待监控对象在预设历史时长内的历史状态数据;
第一预测模块,用于基于所述历史状态数据,预测当前状态数据的走势基线;
第二预测模块,用于确定所述走势基线和同一时刻点的历史状态数据之间的差值,得到差值序列;确定所述差值序列的均值和方差;根据所述均值和所述方差,确定第一边界值和第二边界值;其中,在同一时刻上,所述第一边界值大于所述走势基线中的数据值,所述第二边界值小于所述走势基线中的数据值;通过业务特性层对所述第一边界值和所述第二边界值进行微调,得到微调的第一边界值和微调的第二边界值;
第一检测模块,用于基于所述微调的第一边界值和所述微调的第二边界值,对所述当前状态数据进行检测,得到检测结果;
第一告警模块,用于在所述检测结果表明所述当前状态数据为异常数据的情况下,通过决策层确定所述历史状态数据的状态特性;根据所述状态特性对所述微调的第一边界值和所述微调的第二边界值进行调整,得到调整的第一边界值和调整的第二边界值;采用所述调整的第一边界值和调整的第二边界值,对所述当前状态数据进行检测,得到更新的检测结果;在所述更新的检测结果表明所述当前状态数据为异常数据的情况下,输出告警信息。
7.一种异常数据检测的设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至5任一项所述的方法。
8.一种存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至5任一项所述的方法。
CN202010901199.0A 2020-09-01 2020-09-01 异常数据检测方法、装置、设备及存储介质 Active CN111931860B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010901199.0A CN111931860B (zh) 2020-09-01 2020-09-01 异常数据检测方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010901199.0A CN111931860B (zh) 2020-09-01 2020-09-01 异常数据检测方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111931860A CN111931860A (zh) 2020-11-13
CN111931860B true CN111931860B (zh) 2021-02-09

Family

ID=73308394

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010901199.0A Active CN111931860B (zh) 2020-09-01 2020-09-01 异常数据检测方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111931860B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4207029A1 (en) * 2021-12-28 2023-07-05 Highradius Corporation Autonomous accounting anomaly detection engine

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112769643B (zh) * 2020-12-28 2023-12-29 北京达佳互联信息技术有限公司 资源调度方法、装置、电子设备及存储介质
CN112749071B (zh) * 2020-12-30 2023-11-14 中国人寿保险股份有限公司上海数据中心 一种用于检测应用集群健康度的***及方法
CN112948230A (zh) * 2021-03-31 2021-06-11 中国建设银行股份有限公司 一种基于机房机密空调的数据处理方法和装置
CN113094249A (zh) * 2021-04-30 2021-07-09 杭州安恒信息技术股份有限公司 一种节点异常检测方法、装置及介质
CN113127470A (zh) * 2021-05-10 2021-07-16 广州欢网科技有限责任公司 判断Clickhouse数据是否异常的方法及设备
CN113722177B (zh) * 2021-08-03 2024-03-29 北京达佳互联信息技术有限公司 时序指标异常检测方法、装置、***、设备及存储介质
CN113688929B (zh) * 2021-09-01 2024-02-23 睿云奇智(重庆)科技有限公司 预测模型确定方法、装置、电子设备及计算机存储介质
CN114664074B (zh) * 2022-03-10 2023-02-14 深圳市百泰实业股份有限公司 一种蓝牙遥控器的测试方法及***
CN114944929B (zh) * 2022-03-24 2024-07-05 奇安信科技集团股份有限公司 网络异常行为检测方法、装置、电子设备及存储介质
CN115096344A (zh) * 2022-05-13 2022-09-23 珠海格力电器股份有限公司 数据实时显示方法、装置、电子设备及存储介质
CN115081969B (zh) * 2022-08-23 2023-05-09 中国中金财富证券有限公司 异常数据确定方法及相关装置
CN115442214A (zh) * 2022-09-02 2022-12-06 中国工商银行股份有限公司 业务异常排障方法、装置、设备、存储介质和程序产品
CN115271733B (zh) * 2022-09-28 2022-12-13 深圳市迪博企业风险管理技术有限公司 一种隐私保护的区块链交易数据异常检测方法及设备
CN116186017B (zh) * 2023-04-25 2023-07-28 蓝色火焰科技成都有限公司 一种大数据协同监管方法及平台
CN116560292B (zh) * 2023-07-11 2023-09-26 南京欧控自动化有限公司 一种适应远程控制的电动执行机构智能控制方法
CN117221008B (zh) * 2023-11-07 2024-02-23 中孚信息股份有限公司 基于反馈机制的多行为基线修正方法、***、装置及介质
CN118153017A (zh) * 2024-05-09 2024-06-07 翌飞锐特电子商务(北京)有限公司 一种基于ai和大数据的业务管理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718715A (zh) * 2015-12-23 2016-06-29 华为技术有限公司 异常检测方法和设备
CN110874674A (zh) * 2018-08-29 2020-03-10 阿里巴巴集团控股有限公司 一种异常检测方法、装置及设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239963A (zh) * 2014-08-14 2014-12-24 国家电网公司 基于灰色gm(1,1)模型查找异常电能表的方法
CN105956734B (zh) * 2016-04-15 2020-01-21 广东轩辕网络科技股份有限公司 动态设置it设备的性能的指标阈值的方法及***
CN107086944B (zh) * 2017-06-22 2020-04-21 北京奇艺世纪科技有限公司 一种异常检测方法和装置
CN110008079A (zh) * 2018-12-25 2019-07-12 阿里巴巴集团控股有限公司 监控指标异常检测方法、模型训练方法、装置及设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718715A (zh) * 2015-12-23 2016-06-29 华为技术有限公司 异常检测方法和设备
CN110874674A (zh) * 2018-08-29 2020-03-10 阿里巴巴集团控股有限公司 一种异常检测方法、装置及设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4207029A1 (en) * 2021-12-28 2023-07-05 Highradius Corporation Autonomous accounting anomaly detection engine

Also Published As

Publication number Publication date
CN111931860A (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
CN111931860B (zh) 异常数据检测方法、装置、设备及存储介质
US11080906B2 (en) Method for creating period profile for time-series data with recurrent patterns
US11586972B2 (en) Tool-specific alerting rules based on abnormal and normal patterns obtained from history logs
US11836162B2 (en) Unsupervised method for classifying seasonal patterns
CN107566163B (zh) 一种用户行为分析关联的告警方法及装置
US20190228022A1 (en) System for detecting and characterizing seasons
US20140259170A1 (en) Internet Security Cyber Threat Reporting System and Method
US10699211B2 (en) Supervised method for classifying seasonal patterns
US11966319B2 (en) Identifying anomalies in a data center using composite metrics and/or machine learning
JP7478226B2 (ja) 充電ステーション監視方法および装置
US20140223555A1 (en) Method and system for improving security threats detection in communication networks
EP2747365A1 (en) Network security management
CN113313280B (zh) 云平台的巡检方法、电子设备及非易失性存储介质
US20190197432A9 (en) Automated meta parameter search for invariant based anomaly detectors in log analytics
KR20190001501A (ko) 통신망의 인공지능 운용 시스템 및 이의 동작 방법
US11897527B2 (en) Automated positive train control event data extraction and analysis engine and method therefor
CN113923037B (zh) 一种基于可信计算的异常检测优化装置、方法及***
CN113568802A (zh) 业务监控方法、装置、电子设备及计算机可读存储介质
US20190121973A1 (en) System and method for detecting security risks in a computer system
WO2015134572A1 (en) Internet security cyber threat reporting
US20240070338A1 (en) Apparatuses, computer-implemented methods, and computer program products for modeling environment-related data from real-time data alerts
US11275367B2 (en) Dynamically monitoring system controls to identify and mitigate issues
Chen et al. An unsupervised detection method for multiple abnormal wi-fi access points in large-scale wireless network
US20210281587A1 (en) Systems and method of cyber-monitoring which utilizes a knowledge database
CN116701037A (zh) 一种集群节点监控方法和装置

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