CN114358106A - 系统异常检测方法、装置、计算机程序产品及电子设备 - Google Patents
系统异常检测方法、装置、计算机程序产品及电子设备 Download PDFInfo
- Publication number
- CN114358106A CN114358106A CN202111152912.7A CN202111152912A CN114358106A CN 114358106 A CN114358106 A CN 114358106A CN 202111152912 A CN202111152912 A CN 202111152912A CN 114358106 A CN114358106 A CN 114358106A
- Authority
- CN
- China
- Prior art keywords
- target
- abnormal
- index
- indexes
- current
- 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
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种系统异常检测方法、装置、计算机程序产品及电子设备,相关实施例可应用于云技术、云安全、人工智能、智慧交通等各种场景。其中,该方法包括:按照预设频率采集目标系统的多个运行指标的运行数据;按照预设时间窗口提取每个运行指标的所述运行数据,得到多个运行指标对应的多个指标时间序列;将多个运行指标对应的多个指标时间序列输入系统异常检测模型,以进行多目标决策树异常检测处理,得到以多个目标决策树输出的多个异常检测结果;对多个异常检测结果进行加权次数统计处理,以确定并输出目标系统的目标异常检测结果。本发明解决了异常检测的效率较低的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种系统异常检测方法、装置、计算机程序产品及电子设备。
背景技术
随着当前互联网技术的发展,客户端对于系统的稳定性和可用性要求日渐增高。目前针对系统的安全监控通常由运维人员通过人工方式进行监控,需要较高的人工成本,并且人工监控会存在异常遗漏的问题。
将人工智能应用到系统的运维,可以减少人力成本。目前常用的人工智能算法包括有监督学习和无监督学习两类。其中,有监督的学习需要标注好的训练数据,通常通过人工标注的方式获得,成本高、工作量大,且效率低。无监督学习则通过算法找出数据中的离群点,然而空间上的离群点并不一定是异常点。而且无监督算法计算出的分数需要人为划分阈值来界定异常,不同的阈值会影响最终的准确率和召回率。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种系统异常检测方法、装置、计算机程序产品及电子设备,以至少解决异常检测的效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种系统的异常检测方法,包括:按照预设频率采集目标系统的多个运行指标的运行数据,其中,所述运行指标包括所述目标系统运行时的硬件指标和软件指标,所述运行数据是所述目标系统运行时各个指标的数据;按照预设时间窗口提取每个运行指标的所述运行数据,得到所述多个运行指标对应的多个指标时间序列,其中,每个运行指标对应一个指标时间序列,每个指标时间序列中包括对应运行指标运行时的一组运行数据;将所述多个运行指标对应的多个指标时间序列输入系统异常检测模型,以进行多目标决策树异常检测处理,得到以多个目标决策树输出的多个异常检测结果;对所述多个异常检测结果进行加权次数统计处理,以确定并输出所述目标系统的目标异常检测结果,其中,所述目标异常检测结果包括所述目标系统发生异常时的目标异常类型。
可选地,将所述多个运行指标对应的多个指标时间序列输入系统异常检测模型,以进行多目标决策树异常检测处理,包括:对所述多个指标时间序列中的每个指标时间序列执行以下操作,在执行以下操作时,所述每个指标时间序列为当前运行指标的当前指标时间序列:将所述当前指标时间序列输入所述系统异常检测模型中与所述当前运行指标对应的当前决策树,得到所述当前决策树根据所述当前指标时间序列确定出的当前异常检测结果。
可选地,所述将所述当前指标时间序列输入所述系统异常检测模型中与所述当前运行指标对应的当前决策树,得到所述当前决策树根据所述当前指标时间序列确定出的当前异常检测结果,包括:根据所述当前指标时间序列包括的所述当前运行指标的一组数据,确定所述当前运行指标对应的所述目标参数的参数取值;在所述当前决策树中的决策条件包括所述目标参数的多个预设取值区间、每个所述预设取值区间对应多种异常类型中的一种异常类型时,在所述多个预设取值区间中确定所述参数取值所在的当前预设取值区间;确定所述当前预设取值区间对应的异常类型,为所述当前决策树输出的所述当前异常检测结果。
可选地,所述在所述多个预设取值区间中确定所述参数取值所在的当前取值区间,包括:在所述目标参数包括多个参数、且每个所述预设取值区间是所述多个参数中的每个参数的一个取值区间的组合时,在所述多个预设取值区间中确定所述当前预设取值区间,其中,所述当前预设取值区间包括所述多个参数中的每个参数的当前取值区间的组合,所述目标参数的参数取值包括所述多个参数的当前取值,所述多个参数的当前取值分别位于所述多个参数的当前取值区间中。
可选地,所述对所述多个异常检测结果进行加权次数统计处理,以确定并输出所述目标系统的目标异常检测结果,包括:在所述多个目标决策树为N个目标决策树、所述多个异常检测结果包括所述N个目标决策树确定的N个异常检测结果、且所述N个异常检测结果中的每个异常类型都是多种异常类型中的一种异常类型时,将所述N个异常类型中出现次数最多的一种异常类型确定为所述目标异常类型,其中,N为大于或等于2的自然数。
可选地,所述对所述多个异常检测结果进行加权次数统计处理,以确定并输出所述目标系统的目标异常检测结果,包括:在所述多个目标决策树为N个目标决策树、所述多个异常检测结果包括所述N个目标决策树确定的N个异常检测结果、且所述N个异常检测结果中出现了多种异常类型中的M种异常类型时,在所述N个异常类型中确定所述M种异常类型分别出现的加权次数,其中,所述M种异常类型中的第i种异常类型出现的加权次数等于对每个目标决策树确定出的所述第i种异常类型的次数进行加权求和所得到的值,其中,N为大于或等于2的自然数,M小于或等于N,i大于或等于1且小于或等于M;将所述M种异常类型分别出现的加权次数中加权次数最多的一种异常类型确定为所述目标异常类型。
可选地,通过以下步骤训练得到所述系统异常检测模型:在所述目标系统上运行目标工程,以控制所述目标系统出现指定异常类型的异常,其中,所述目标系统被所述目标工程按照对应的输入参数控制出现所述指定异常类型的异常;所述目标系统发生现所述指定异常类型的异常时,获取对应的所述运行指标的异常运行数据,以得到所述运行指标对应的异常指标时间序列;使用对应的所述运行指标的异常指标时间序列对待训练决策树训练得到与所述运行指标对应的所述目标决策树。
可选地,通过以下步骤获取在所述目标系统出现指定异常类型的异常指标时间序列:获取与所述指定异常类型对应的一组输入参数,其中,所述一组输入参数中的每个输入参数用于控制所述目标系统出现所述指定异常类型的异常;分别按照所述一组输入参数中的每个输入参数运行目标工程,以控制所述目标系统出现所述指定异常类型的异常;记录在所述目标系统出现所述指定异常类型的异常时,所述目标系统中的P个运行指标的数据所形成的P组异常指标时间序列,其中,P为大于或等于1的自然数,所述P个运行指标是在所述目标系统出现所述指定异常类型的异常时数据异常的运行指标,所述P组异常指标时间序列中的每组异常指标时间序列是所述P个运行指标中对应的一个运行指标的异常指标时间序列。
可选地,所述获取与所述指定异常类型对应的一组输入参数,包括:在目标工程中预设的多种异常类型中选择所述指定异常类型,并获取与所述指定异常类型对应的所述一组输入参数。
可选地,所述获取与所述指定异常类型对应的一组输入参数,包括:获取CPU高负载异常类型、内存高负载异常类型、输入输出高负载异常类型、磁盘填充异常类型、杀docker/pod异常类型、网络拒绝异常类型、网络超时异常类型、网络延迟异常类型、网络丢包异常类型中的一种异常类型对应的所述一组输入参数。
可选地,所述方法还包括:在所述多个目标决策树为N个目标决策树、且所述多个运行指标为N个运行指标时,在获取到所述目标系统出现多种异常类型中的每种异常类型的异常时的异常指标时间序列之后,将获取到的所述异常指标时间序列以及对应的异常类型形成所述N个运行指标的N个异常训练样本集合,其中,N为大于或等于1的自然数,每个异常训练样本集合包括所述N个运行指标中对应的运行指标的异常训练样本;使用所述N个运行指标的N个异常训练样本集合,分别对N个待训练决策树进行训练,得到所述N个目标决策树,其中,每个运行指标的异常训练样本集合用于对所述N个待训练决策树中与所述每个运行指标对应的待训练决策树进行训练。
可选地,所述使用所述N个运行指标的N个异常训练样本集合,分别对N个待训练决策树进行训练,得到所述N个目标决策树,包括:通过执行以下步骤,对第s个待训练决策树进行训练,得到第s个目标决策树,其中,1≤s≤N,所述第s个待训练决策树对应于第s个运行指标,所述第s个运行指标的异常训练样本集合中包括Q个异常指标时间序列以及对应的Q个实际异常类型,Q为大于或等于1的自然数:根据所述Q个异常指标时间序列中的每个异常指标时间序列包括的所述第s个运行指标的一组数据,确定所述第s个运行指标对应的目标参数的参数取值,其中,所述目标参数包括均值参数、标准差参数和斜率参数中的至少一个,所述第s个待训练决策树的决策条件包括所述目标参数的多个待调整的取值区间;根据所述第s个运行指标对应的目标参数的参数取值、以及所述Q个实际异常类型,对所述第s个待训练决策树的决策条件中的所述多个待调整的取值区间进行调整,得到所述第s个目标决策树,其中,在所述第s个目标决策树的决策条件包括调整得到的所述目标参数的多个预设取值区间时,根据所述第s个运行指标对应的目标参数的参数取值与所述第s个目标决策树的决策条件之间的关系,确定出的Q个预测异常类型与所述Q个实际异常类型之间的误差满足预设收敛条件。
可选地,在所述确定所述多个异常检测结果中,出现次数最多的异常检测结果为所述目标系统的目标异常检测结果之后,所述方法还包括:向目标应用发送告警信息,其中,所述告警信息用于指示所述目标系统出现所述目标异常类型的异常。
根据本发明实施例的另一方面,还提供了一种系统的异常检测装置,包括:采集模块,用于按照预设频率采集目标系统的多个运行指标的运行数据,其中,所述运行指标包括所述目标系统运行时的硬件指标和软件指标,所述运行数据是所述目标系统运行时各个指标的数据;提取模块,用于按照预设频率采集目标系统的多个运行指标的运行数据,其中,所述运行指标包括所述目标系统运行时的硬件指标和软件指标,所述运行数据是所述目标系统运行时各个指标的数据;处理模块,用于将所述多个运行指标对应的多个指标时间序列输入系统异常检测模型,以进行多目标决策树异常检测处理,得到以多个目标决策树输出的多个异常检测结果;确定模块,用于对所述多个异常检测结果进行加权次数统计处理,以确定并输出所述目标系统的目标异常检测结果,其中,所述目标异常检测结果包括所述目标系统发生异常时的目标异常类型。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述系统的异常检测方法。
根据本申请实施例的又一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上系统的异常检测方法。
根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的系统的异常检测方法。
在本发明实施例中,通过目标决策树可以自动对系统的异常类型进行预测,避免现有技术中人工监控系统异常的准确率低的问题。并且,不同异常类型对应的异常训练样本是通过目标工程自动实现的,避免了有监督学习中需要人工搜集系统出现异常时的运行指标的数据,并由人工对上述运行指标的数据进行异常类型的标注,从而解决了相关技术中异常检测的效率较低的技术问题。
另一方面,本发明实施例中的每个决策树是使用对应的运行指标的运行数据训练得到的,也就是说,决策树是与运行指标对应的。在对系统异常进行预测时,结合了多个决策树的异常检测结果得到系统的异常类型,这样可以结合多个运行指标对系统的异常类型进行预测,提高了系统异常检测的准确性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的系统的异常检测方法的应用环境的示意图;
图2是根据本发明实施例的一种可选的系统的异常检测方法流程图;
图3是根据本发明实施例的一种可选的安全网络客户端示意图;
图4是根据本发明实施例的一种可选的决策树示意图;
图5所示是根据本发明可选实施例的多目标决策树异常检测处理结构示意图;
图6是根据本发明实施例的一种可选的CPU使用率的指标时间序列示意图;
图7是根据本发明实施例的一种可选的异常指标时间序列示意图;
图8是根据本发明实施例的一种可选的整体框图;
图9是根据本发明实施例的一种可选的系统异常检测模型训练流程示意图;
图10是根据本发明实施例的一种可选的系统异常检测模型训练结构示意图;
图11是根据本发明实施例的一种可选的系统异常监控流程图;
图12是根据本发明实施例的一种可选的监控告警示意图;
图13是根据本发明实施例的一种可选的整体流程图;
图14是根据本发明实施例的一种可选的系统的异常检测装置的结构示意图;
图15是根据本发明实施例的一种可选的电子设备的结构示意图;
图16是根据本发明实施例的一种可选的电子设备的计算机系统结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请可以应用于云技术、云安全、人工智能、智慧交通等各种场景。
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
云安全(Cloud Security)是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。
云安全主要研究方向包括:1.云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;2.安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;3.云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。
智能交通系统(Intelligent Traffic System,ITS)又称智能运输系统(Intelligent Transportation System),是将先进的科学技术(信息技术、计算机技术、数据通信技术、传感器技术、电子控制技术、自动控制理论、运筹学、人工智能等)有效地综合运用于交通运输、服务控制和车辆制造,加强车辆、道路、使用者三者之间的联系,从而形成一种保障安全、提高效率、改善环境、节约能源的综合运输系统。或者;
智能车路协同系统(Intelligent Vehicle Infrastructure CooperativeSystems,IVICS),简称车路协同系统,是智能交通系统(ITS)的一个发展方向。车路协同系统是采用先进的无线通信和新一代互联网等技术,全方位实施车车、车路动态实时信息交互,并在全时空动态交通信息采集与融合的基础上开展车辆主动安全控制和道路协同管理,充分实现人车路的有效协同,保证交通安全,提高通行效率,从而形成的安全、高效和环保的道路交通系统。
下面对本申请中涉及到的关键词进行解释说明:
混沌工程(Chaos Engineering):是一套通过在生产系统上进行实验,主动找出系统中的脆弱环节的方法。实践混沌工程可以简单如在生产环境中运行kill-9来模拟一个服务节点的突然宕机,也可以复杂到在线上挑选一小部分(但足够代表性)的流量,按一定规则或频率自动运行一系列实验。
异常检测(Anomaly Detection):异常检测是指在数据中发现不符合预期行为模式的数据的问题。异常检测广泛用于各种应用中,如信用卡欺诈检测,保险或医疗保健,网络安全入侵检测,安全关键系统中的异常检测。在本文中主要指通过采集的系统指标,监控系统是否处于异常状态中。
时间序列(Time Series):时间序列是指将同一统计指标的数值按其发生的时间先后顺序排列而成的数列。
指标(Metric):通过指标来表示每一类需要被观测、监控的对象。包括系统指标,如服务器状态、网络状态、流量等;服务指标,如每个API耗时、错误次数等,可以分为中间件监控、容器监控等;业务指标,比如单位时间订单数、支付成功率、A/B测试、报表分析等。通过对每项指标按照一定时间频率的观测,得到指标的时间序列。
根据本发明实施例的一个方面,提供了一种系统的异常检测方法,可选地,作为一种可选的实施方式,上述系统的异常检测方法可以但不限于应用于如图1所示的应用环境中。应用环境中包括终端设备101、服务器102和数据库103。
可选地,在本实施例中,上述终端设备可以包括但不限于以下至少之一:手机(如Android手机、iOS手机等)、笔记本电脑、平板电脑、掌上电脑、MID(Mobile InternetDevices,移动互联网设备)、PAD、台式电脑、智能电视等。上述终端设备上安装有目标客户端,上述目标客户端包括但不限于:安全网络客户端、视频客户端、游戏客户端等。上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、WIFI及其他实现无线通信的网络。上述服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,或者是云服务器。上述数据库用于存储系统的运行数据。上述仅是一种示例,本实施例中对此不作任何限定。
可选地,作为一种可选的实施方式,如图2所示,上述系统的异常检测方法包括:
步骤S202,按照预设频率采集目标系统的多个运行指标的运行数据,其中,所述运行指标包括所述目标系统运行时的硬件指标和软件指标,所述运行数据是所述目标系统运行时各个指标的数据;
其中,上述目标系统是运行目标客户端的系统,包括系统中包括软件和硬件,目标客户端包括但不限于:安全网络客户端、游戏客户端等,上述目标系统可以是终端设备中的系统,也可以是服务器中的系统。如图3所示是根据本发明可选实施例的安全网络客户端示意图,该网络安全客户端可以运行在终端设备上,在该网络安全客户端可以查看系统的硬件和软件运行情况,如图中所示在该客户端中可以查看网关节点的CPU使用情况,内存的使用情况,上行、下行带宽情况等。
上述运行指标包括但不限于:硬件指标和软件指标,上述硬件指标和软件指标中还可以细分出多指标,例如,硬件指标中包括:CPU使用率、内存使用率、磁盘剩余空间、网络上下行流量等指标,例如,软件指标中包括:进程指标、业务指标、组件指标等,业务指标中还可以细分出多个指标,例如,业务指标中包括:用户登录数、用户访问数、用户访问流量等相关指标,进程指标中包括:各进程存活指标。组件指标中包括:网关、存储、消息队列等组件相关指标。
上述指标时间序列是系统运行时,在预设时长的预设时间点上采集的运行指标的数据,上述预设时长可以根据实际情况选取,例如,8点到8点10分,9点到10点,6点到12点等。可以通过指标采集模块对各运行指标的运行数据进行采集,包括机器运行指标,各进程、组件及模块指标,业务相关指标。可以按照一定频率采集(例如1分钟)并聚合指标。当前采集到的指标运行数据会被打上时间戳标签,并且存入时序数据库。
步骤S204,按照预设时间窗口提取每个运行指标的所述运行数据,得到所述多个运行指标对应的多个指标时间序列,其中,每个运行指标对应一个指标时间序列,每个指标时间序列中包括对应运行指标运行时的一组运行数据;
其中,上述预设时间窗口的长度可以根据实际情况而定,例如,10小时、15小时、24小时、48小时等。从时序数据库中取出一段时间窗口T(例如24小时)内的各个指标的运行数据,组成各个指标的时间序列。假设上述运行指标为CPU使用率,可以预设时间窗口提取8点到18点分内多次采集系统的CPU使用率,例如,采集到的数据为0.4、0.3、0.25、0.2、0.22,则运行指标CPU使用率的指标时间序列为:0.4、0.3、0.25、0.2、0.22。假设上述运行指标为用户访问数,可以在预设时间窗口9点到22点内多次采集用户访问目标客户端的次数,采集到的数据为4、3、6、2、8,则运行指标用户访问数的指标时间序列为4、3、6、2、8。
步骤S206,将所述多个运行指标对应的多个指标时间序列输入系统异常检测模型,以进行多目标决策树异常检测处理,得到以多个目标决策树输出的多个异常检测结果;
其中,上述系统异常检测模型中包括多个目标决策树,每个目标决策树是使用对应的所述运行指标的异常训练样本对待训练决策树训练所得到的决策树,异常训练样本包括记录的实际异常类型以及异常指标时间序列,所述异常指标时间序列是在所述目标系统被目标工程按照对应的输入参数控制出现所述指定异常类型的异常时,记录的对应的所述运行指标的数据。上述目标工程可以是混沌工程。
以CPU使用率、内存使用率和用户访问数三个运行指标为例,每个运行指标对应一个决策树。如图4所示是根据本发明可选实施例的决策树示意图,图中异常类型1、2、3、4分别表示四种不同的异常类型,异常类型包括但不限于:CPU高负载、内存高负载、IO高负载、磁盘填充、杀docker/pod、网络拒绝、网络超时、网络延迟、网络丢包等。图中所示的决策树的结构,以及每个决策树可以预测的异常类型的种类仅为了说明本实施例,具体决策树的结构,每个决策树可预测的异常类型可以根据实际情况而定。
其中,上述目标参数包括但不限于:均值、标准差和斜率中的一个或者几个。目标参数的参数取值包括但不限于当前运行指标的一组数据的均值、标准差和斜率中的一个或者几个。
所述确定所述当前运行指标对应目标参数的参数取值,包括以下至少之一:在所述目标参数包括均值参数时,将所述当前运行指标对应的所述均值参数的参数取值确定为等于所述当前运行指标的所述一组数据的均值;在所述目标参数包括标准差参数时,将所述当前运行指标对应的所述标准差参数的参数取值确定为等于所述当前运行指标的所述一组数据的标准差;在所述目标参数包括斜率参数时,将所述当前运行指标对应的所述斜率参数的参数取值确定为等于所述当前运行指标的所述一组数据的斜率。
其中,目标参数可以包括均值、标准差、斜率中一个或多个。决策树的决策条件可以是均值、标准差、斜率中任意一个,也可以是任意几个参数的组合。
例如,目标决策树的决策条件包括均值、标准差。异常类型1对应的预设取值区间中包括均值、标准差的取值区间的组合,异常类型1对应的预设取值区间为{均值取值区间1,标准差取值区间1}。异常类型2对应的预设取值区间为{均值取值区间2,标准差取值区间2}。
又例如,目标决策树的决策条件包括均值、标准差和斜率。异常类型1对应的预设取值区间中包括均值、标准差、斜率的取值区间的组合,异常类型1对应的预设取值区间为{均值取值区间1,标准差取值区间1,斜率取值区间1}。异常类型2对应的预设取值区间为{均值取值区间2,标准差取值区间2,斜率取值区间2}。
其中,通过指标运行序列的均值、标准差和斜率所位于的取值区间,可以确定系统的异常类型。
步骤S208,对所述多个异常检测结果进行加权次数统计处理,以确定并输出所述目标系统的目标异常检测结果,其中,所述目标异常检测结果包括所述目标系统发生异常时的目标异常类型。
其中,对于某种异常类型需要结合多种指标进行预测。例如,对于网络延迟,需要结合消息队列、用户访问流量、用户登录数、用户访问数等多种运行指标的运行数据来判断系统是否发生网络延迟的异常。另外,对于每个运行指标,可能影响发生的异常类型为多种,例如,对于用户访问流量可能影响发生的异常类型为网络拒绝、网络超时、网络延迟、网络丢包。因此,对于每个运行指标的指标时间序列需要输入多个指标对应的目标决策树,而不同目标决策树预测得到异常类型可能不同,需要结合多个指标对应的目标决策树输出的多个异常检测结果,得到目标异常类型。具体地,可以将多个目标决策输出的多个异常类型中,出现次数最多的异常类型作为目标系统发生异常的目标异常类型。
下面以消息队列、用户访问流量、用户登录数三种运行指标为例,如图5所示是根据本发明可选实施例的多目标决策树异常检测处理结构示意图,包括如下步骤:
步骤S11,在目标系统运行时,获取消息队列、用户访问流量、用户登录数三种运行指标的指标时间序列,包括:消息队列指标时间序列、用户访问流量指标时间序列和用户登录数指标时间序列。
步骤S12,将上述三种运行指标的指标时间序列分别输入对应运行指标的决策树,消息队列指标时间序列输入消息队列的决策树1,用户访问流量指标时间序列输入用户访问流量的决策树2,用户登录数指标时间序列输入用户登录数的决策树3。其中,决策树1、决策树2和决策树3的结构可以相同,也可以不同。图中决策树1、决策树2和决策树3的结构仅为了说明本实施例。决策树1可以预测的异常类型包括:异常类型1、异常类型2、异常类型3、异常类型4。决策树2可以预测的异常类型包括:异常类型3、异常类型5。决策树3可以预测的异常类型包括:异常类型2、异常类型3、5。上述异常类型1、2、3、4、5可以为任意的异常类型,包括但不限于网络拒绝、网络超时、网络延迟、网络丢包等任意异常类型。本实施例仅为了简要举例说明本申请方案,具体异常类型可以根据实际情况而定。
步骤S13,各个决策树输出异常检测结果,根据异常检测结果确定目标系统的目标异常类型。假设上述决策树1的异常检测结果是异常类型1,决策树2的异常检测结果是异常类型3,决策树3的异常检测结果是异常类型3。可以取异常检测结果中数量最多的异常类型作为目标异常类型。在本实施例中,由于异常类型3的数量最多,所以确定目标系统的目标异常类型为异常类型3。
通过上述实施例,可以通过预先训练好的系统异常检测模型对系统的异常类型进行预测,可以避免人工预测工作量较大、效率低的问题。另外,系统异常检测模型的训练样本是通过目标工程进行标注的,避免了现有技术中,对于有监督的模型,需要人工标注样本的问题。通过目标工程实现了对训练样本自动标注的目的,达到了提升样本标注效率的效果。
可选地,将所述多个运行指标对应的多个指标时间序列输入系统异常检测模型,以进行多目标决策树异常检测处理,包括:对所述多个指标时间序列中的每个指标时间序列执行以下操作,在执行以下操作时,所述每个指标时间序列为当前运行指标的当前指标时间序列:将所述当前指标时间序列输入所述系统异常检测模型中与所述当前运行指标对应的当前决策树,得到所述当前决策树根据所述当前指标时间序列确定出的当前异常检测结果。
作为一个可选的实施方式,上述系统异常检测模型中包括多个目标决策树,每个目标决策树对应一种指标类型,例如,CPU使用率对应目标决策树1,内存使用率对应目标决策树。对于多种运行指标对应的指标时间序列,在对每个指标时间序列进行处理时,当前处理的指标时间序列称为当前指标时间序列。假设当前处理的是CPU使用率对应的指标时间序列,则将该指标时间序列输入到系统异常检测模型与CPU使用率对应的目标决策树(当前决策树),由该决策树对CPU使用率的指标时间序列进程系统异常检测,得到检测结果,检测结果中包括系统是否发生异常,以及系统发生异常时的异常类型。
可选地,所述将所述当前指标时间序列输入所述系统异常检测模型中与所述当前运行指标对应的当前决策树,得到所述当前决策树根据所述当前指标时间序列确定出的当前异常检测结果,包括:根据所述当前指标时间序列包括的所述当前运行指标的一组数据,确定所述当前运行指标对应的所述目标参数的参数取值;在所述当前决策树中的决策条件包括所述目标参数的多个预设取值区间、每个所述预设取值区间对应多种异常类型中的一种异常类型时,在所述多个预设取值区间中确定所述参数取值所在的当前预设取值区间;确定所述当前预设取值区间对应的异常类型,为所述当前决策树输出的所述当前异常检测结果。
作为一个可选的实施方式,以上述运行指标为CPU使用率,目标参数为均值,下面举例进行说明:
步骤S21,系统运行时,采集在预设时长内(如1天)CPU使用率,得到CPU使用率的指标时间序列,如图6所示的CPU使用率的指标时间序列示意图。
步骤S12,计算该指标时间序列的均值。
步骤S13,使用与CPU使用率对应的决策树对上述均值进行分析。假设决策树的决策条件仅包括均值。决策树的决策条件中,均值的预设取值区间为1-3为异常类型1。假设指标时间序列的均值为2。通过确认上述均值位于上述预设取值区间为1-3,该预设取值区间对应异常类型1。由此可以确认系统的异常类型为异常类型1。
又例如,运行指标为内存使用率,目标参数为均值和标准差,下面举例进行说明:
步骤S21,系统运行时,获取在预设时长内(如19:00-22:00)内存使用率,得到内存使用率的指标时间序列。
步骤S22,可以将该指标时间序列示意图划分为M个随机区间,随机选取其中的一个随机区间,例如,选取20:00-21:00的内存使用率的数据。计算该随机区间内的内存使用率的均值、标准差。
步骤S23,使用与内存使用率对应的决策树对上述均值和标准差进行分析。假设决策树的决策条件包括均值、标准差。决策树的决策条件中,均值的预设取值区间为1-3为异常类型1,均值的预设取值区间为3-5对应异常类型2。标准差的预设取值区间为0-1.5对应异常类型1,标准差的预设取值区间为1.5-2.5对应的异常类型2。假设目标系统在20:00-21:00之间的指标时间序列的均值为2,标准差为1.1。通过确认上述均值、标准差和斜率位于上述预设取值区间,确定预设取值区间对应的异常类型为系统的异常类型。通过比对可以发现,均值为2在均值的预设取值区间为1-3内,对应异常类型1,标准差为1.1在标准差的预设取值区间为0-1.5内,对应异常类型1。由此可以确认系统的异常类型为异常类型1。
在上述实施例中,将指标时间序列转化为子序列的均值、方差和斜率等统计特征,并使用系统异常检测模型进行分类。可以避免特征空间巨大的问题,提高模型的检测效率。
可选地,所述在所述多个预设取值区间中确定所述参数取值所在的当前取值区间,包括:在所述目标参数包括多个参数、且每个所述预设取值区间是所述多个参数中的每个参数的一个取值区间的组合时,在所述多个预设取值区间中确定所述当前预设取值区间,其中,所述当前预设取值区间包括所述多个参数中的每个参数的当前取值区间的组合,所述目标参数的参数取值包括所述多个参数的当前取值,所述多个参数的当前取值分别位于所述多个参数的当前取值区间中。
作为一个可选的实施方式,目标参数可以包括均值、标准差、斜率中的多个。决策树的决策条件可以是均值、标准差、斜率中的任意组合。预设取值区间是多个参数对应的取值区间的组合,每个预设取值区间对应一种异常类型。
例如,决策树的决策条件包括均值、标准差。异常类型1对应的预设取值区间中包括均值、标准差的取值区间的组合,异常类型1对应的预设取值区间为{均值取值区间1,标准差取值区间1}。异常类型2对应的预设取值区间为{均值取值区间2,标准差取值区间2}。
又例如,决策树的决策条件包括均值、标准差和斜率。异常类型1对应的预设取值区间中包括均值、标准差、斜率的取值区间的组合,异常类型1对应的预设取值区间为{均值取值区间1,标准差取值区间1,斜率取值区间1}。异常类型2对应的预设取值区间为{均值取值区间2,标准差取值区间2,斜率取值区间2}。通过指标运行序列的均值、标准差和斜率所位于的取值区间,可以确定系统的异常类型。
下面通过一个具体实施例进行说明,假设运行指标是CPU使用率,决策树的决策条件是均值、标准差和斜率。
步骤S31,系统运行时,获取在预设时长内(如1天)CPU使用率,得到CPU使用率的指标时间序列,如图6所示的CPU使用率的指标时间序列示意图。
步骤S32,可以将该指标时间序列示意图划分为M个随机区间,随机选取一个区间,例如,选取20:00-21:00的随机区间。计算该随机区间内的CPU使用率的均值、标准差和斜率。对于均值和标准差可以按照现有技术中的均值和标准差计算方式进行计算。对于斜率,如图6所示,0:00-21:00之间的CPU使用率数值成直线,可以得到20:00-21:00之间的指标时间序列的斜率K。
步骤S33,使用与CPU使用率对应的决策树对上述均值、标准差、斜率进行分析。决策树的决策条件中,异常类型1对应的预设取值区间为{均值:1-3,标准差:0-1.5,斜率:0-0.3},其中,1-3为均值的取值区间,0-1.5为标准差的取值区间,0-0.3为斜率的取值区间。异常类型2对应的预设取值区间为{均值:3-5,标准差:1.5-2.5,斜率:0.3-0.7},3-5为均值的取值区间,1.5-2.5为标准差的取值区间,0.3-0.7为斜率的取值区间
假设目标系统在20:00-21:00之间的CPU使用率的多个参数中,均值的当前取值为2,标准差的当前取值为1.1,斜率的当前取值为0.2。通过确认上述均值、标准差和斜率位于当前预设取值区间{均值:1-3,标准差:0-1.5,斜率:0-0.3},其中,1-3为均值的当前取值区间,0-1.5为标准差的当前取值区间,0-0.3为斜率的当前取值区间。确定预设取值区间对应的异常类型1为系统的目标异常类型。
在上述实施例中,将指标时间序列转化为子序列的均值、方差和斜率等统计特征,并使用系统异常检测模型进行分类。可以避免特征空间巨大的问题,提高模型的预测效率。
可选地,所述对所述多个异常检测结果进行加权次数统计处理,以确定并输出所述目标系统的目标异常检测结果,包括:在所述多个目标决策树为N个目标决策树、所述多个异常检测结果包括所述N个目标决策树确定的N个异常检测结果、且所述N个异常检测结果中的每个异常类型都是多种异常类型中的一种异常类型时,将所述N个异常类型中出现次数最多的一种异常类型确定为所述目标异常类型,其中,N为大于或等于2的自然数。
作为一个可选的实施方式,N个决策树可以输出N个异常检测结果,N个异常检测结果中可以存在相同的异常检测结果,以N=3为例,决策树1的异常检测结果是异常类型1,决策树2的异常检测结果是异常类型1,决策树3的异常检测结果是异常类型3。则确定系统的异常类型为异常类型1。
下面通过一个具体实施例进行说明,下面以消息队列、用户访问流量、用户登录数三种运行指标为例,在目标系统运行时,获取消息队列、用户访问流量、用户登录数三种运行指标的指标时间序列,包括:消息队列指标时间序列、用户访问流量指标时间序列和用户登录数指标时间序列。将上述三种运行指标的指标时间序列分别输入对应运行指标的决策树,消息队列指标时间序列输入消息队列的决策树1,用户访问流量指标时间序列输入用户访问流量的决策树2,用户登录数指标时间序列输入用户登录数的决策树3。假设上述决策树1的异常检测结果是异常类型1,决策树2的异常检测结果是异常类型3,决策树3的异常检测结果是异常类型3。可以取异常检测结果中数量最多的异常类型作为目标异常类型。在本实施例中,由于异常类型3的数量最多,所以确定目标系统的目标异常类型为异常类型3。在本实施例中,根据多个指标对应的决策树的异常检测结果,将异常检测结果中数量最多的异常类型作为系统的异常类型,由于结合了多种指标,可以提高系统异常类型预测的准确性。
可选地,所述对所述多个异常检测结果进行加权次数统计处理,以确定并输出所述目标系统的目标异常检测结果,包括:在所述多个目标决策树为N个目标决策树、所述多个异常检测结果包括所述N个目标决策树确定的N个异常检测结果、且所述N个异常检测结果中出现了多种异常类型中的M种异常类型时,在所述N个异常类型中确定所述M种异常类型分别出现的加权次数,其中,所述M种异常类型中的第i种异常类型出现的加权次数等于对每个目标决策树确定出的所述第i种异常类型的次数进行加权求和所得到的值,其中,N为大于或等于2的自然数,M小于或等于N,i大于或等于1且小于或等于M;将所述M种异常类型分别出现的加权次数中加权次数最多的一种异常类型确定为所述目标异常类型。
作为一个可选的实施方式,由于不同指标对异常类型的影响程度不同,可以为每种运行指标对应的决策树的异常检测结果分配权重。根据异常检测结果的加权值确定系统的异常结果。以消息队列、用户访问流量、用户登录数、用户访问数四种运行指标为例,在目标系统运行时,获取消息队列、用户访问流量、用户登录数、用户访问数四种运行指标的指标时间序列,包括:消息队列指标时间序列、用户访问流量指标时间序列和用户登录数指标时间序列、用户访问数指标时间序列。将上述四种运行指标的指标时间序列分别输入对应运行指标的决策树,消息队列指标时间序列输入消息队列的决策树1,用户访问流量指标时间序列输入用户访问流量的决策树2,用户登录数指标时间序列输入用户登录数的决策树3,用户访问数指标时间序列输入用户访问数的决策树4。假设上述决策树1的异常检测结果是异常类型1,决策树2的异常检测结果是异常类型1,决策树3的异常检测结果是异常类型3,决策树4的异常检测结果是异常类型3。根据每个指标对应的权重计算两种异常类型的加权次数,假设,消息队列对应的权重为0.3,用户访问流量对应的权重为0.4,用户登录数对应的权重为0.2,用户访问数对应的权重为0.1。计算得到异常类型1的加权次数为0.7,异常类型3的加权次数为0.7,确定加权次数最大的异常类型1为系统的异常类型。在本实施例中,为不同指标分配不同的权重,可以结合多种运行指标对异常类型的影响程度预测系统的异常类型,提高系统异常类型预测的准确性。
可选地,通过以下步骤训练得到所述系统异常检测模型:在所述目标系统上运行目标工程,以控制所述目标系统出现指定异常类型的异常,其中,所述目标系统被所述目标工程按照对应的输入参数控制出现所述指定异常类型的异常;所述目标系统发生现所述指定异常类型的异常时,获取对应的所述运行指标的异常运行数据,以得到所述运行指标对应的异常指标时间序列;使用对应的所述运行指标的异常指标时间序列对待训练决策树训练得到与所述运行指标对应的所述目标决策树。
其中,上述系统异常检测可以是系统异常检测模型,系统异常检测模型网络模型中包括多个决策树,每个决策树对应一个运行指标,决策树用于根据对应运行指标的指标时间序列,确定目标系统的该运行指标是否发生异常,以及发生异常的异常类型。以CPU使用率、内存使用率和用户访问数三个运行指标为例,每个运行指标对应一个决策树。如图4所示是根据本发明可选实施例的决策树示意图,图中异常类型1、2、3、4分别表示四种不同的异常类型,异常类型包括但不限于:CPU高负载、内存高负载、IO高负载、磁盘填充、杀docker/pod、网络拒绝、网络超时、网络延迟、网络丢包等。图中所示的决策树的结构,以及每个决策树可以预测的异常类型的种类仅为了说明本实施例,具体决策树的结构,每个决策树可预测的异常类型可以根据实际情况而定。
其中,上述目标工程可以是混沌工程,通过混沌工程可以设计各种类型的异常,例如CPU高负载、内存高负载、IO高负载、磁盘填充、杀docker/pod、网络拒绝、网络超时、网络延迟、网络丢包等。针对每种异常类型,输入参数运行混沌工程,混沌工程运行时,在收集系统的运行指标,以及各个运行指标在预设时间内的运行数据,得到异常指标时间序列,预设时间可以根据实际情况而定,例如可以是一个小时、一天、5个小时等。以CPU高负载为例,通过指定目标target为节点的CPU,实验动作为burn,就需要通过混沌工程的程序让CPU一直运作。以下是CPU异常制造案例程序:
#CPU所有核负载80%
Chaos-executor attack--target cpu--action burn--flag“percent=80;duration=100”
#CPU指定两个核负载100%
Chaos-executor attack--target cpu--action burn--flag“cores=2;duration=100”
#CPU指定1,3核负载100%
Chaos-executor attack--target cpu--action burn--flag“core-list=1,3;duration=100”
上述CPU异常制造案例中分别制造了CPU所有核负载80%、CPU指定两个核负载100%、CPU指定1,3核负载100%,三种CPU指标的异常类型。
如图7所示是根据本发明可选实施例的异常指标时间序列示意图,其中,包括CPU使用率(CPU Usage)、内存使用率(Memory Usage)和磁盘剩余空间(Disk Space Usage),图中横坐标为时间,纵坐标为在对应异常类型时,不同时间点上运行指标的数据,在各个时间点上采集的运行指标的数据为异常时间序列。通过每个运行指标的异常指标时间序列训练对应的决策树,得到与该运行指标对应的目标决策树,该运行指标对应的决策树可以对该运行指标的时间序列进行异常检测,得到异常检测结果。假设运行指标为CPU使用率,通过混沌工程制造CPU使用率异常的异常指标时间序列,通过CPU使用率异常的异常指标时间序列对决策树进行训练,得到与CPU使用率对应的目标决策树,对于CPU使用率的时间指标序列,可以通过CPU使用率对应的目标决策树进行预测,可以得到CPU使用率对应的目标决策树输出的异常检测结果。根据该异常检测结果可以确定系统的CPU使用率是否发生异常,以及发生异常的异常类型。
可选地,通过以下步骤获取在所述目标系统出现指定异常类型的异常指标时间序列:获取与所述指定异常类型对应的一组输入参数,其中,所述一组输入参数中的每个输入参数用于控制所述目标系统出现所述指定异常类型的异常;分别按照所述一组输入参数中的每个输入参数运行目标工程,以控制所述目标系统出现所述指定异常类型的异常;记录在所述目标系统出现所述指定异常类型的异常时,所述目标系统中的P个运行指标的数据所形成的P组异常指标时间序列,其中,P为大于或等于1的自然数,所述P个运行指标是在所述目标系统出现所述指定异常类型的异常时数据异常的运行指标,所述P组异常指标时间序列中的每组异常指标时间序列是所述P个运行指标中对应的一个运行指标的异常指标时间序列。
作为一个可选的实施方式,对于混沌工程制造系统异常,可以定义以下条件,靶点(Target),指系统异常发生的组件,例如容器、应用框架等;范围(Scope),指具体触发系统异常的机器或者集群等;规则匹配器(Matcher):根据所配置的Target,定义相关的匹配规则,可以配置多个;Action:指实验模拟的具体场景,Target不同,实施的场景也不一样,比如磁盘的异常可以包括:磁盘满,磁盘IO读写高,磁盘硬件故障等。如果是应用,可以抽象出延迟、异常、返回指定值(错误码、大对象等)、参数篡改、重复调用等异常场景。
以上述指定异常类型为CPU满载为例,通过指定target为节点的cpu,实验动作为burn,就需要通过混动工程的程序让CPU一直运作。一组输入参数可以是CPU满载程度,例如:80%、60%、90%。通过以下CPU满载异常为例进行说明:
#CPU所有核负载80%
Chaos-executor attack--target cpu--action burn--flag“percent=80;duration=100”
其中,一组输入参数可以是“percent=80;duration=100”,将该输入参数输入混沌工程,运行混沌工程可以制造CPU所有核负载80%的异常。在系统发生上述异常后,在预设时长内收集相关P个运行指标的数据,得到异常指标时间序列,P个运行指标可以根据实际情况而定,例如,CPU使用率、内存使用率、磁盘剩余空间等指标的运行数据,得到对应指标的异常指标时间序列。
可选地,所述获取与所述指定异常类型对应的一组输入参数,包括:在目标工程中预设的多种异常类型中选择所述指定异常类型,并获取与所述指定异常类型对应的所述一组输入参数。
作为一个可选的实施方式,混沌工程可以模拟各种系统异常场景,可以标注多种异常类型的标签,每种标签可以对应一种故障类型,可以通过选取标签制造相应类型的故障。以指定异常类型为CPU满载为例,对于CPU满载可以包含多种标签,例如,CPU所有核负载80%、CPU指定两个核负载100%、CPU指定1,3核负载100%。若选择标签CPU所有核负载80%,获取输入参数percent=80;duration=100,混沌工程自动运行Chaos-executorattack--target cpu--action burn--flag“percent=80;duration=100”,制造CPU所有核负载80%的系统异常。
在本实施例中,通过混沌工程制造系统异常,结合有监督的多分类机器学习算法,可以对在线数据进行监控判断系统是否处于异常以及具体是哪一类情况导致的异常。避免了现有技术中,对于有监督的分类机器需要人工标注的效率低的问题,提高了系统异常类型标注的效率。
可选地,所述获取与所述指定异常类型对应的一组输入参数,包括:获取CPU高负载异常类型、内存高负载异常类型、输入输出高负载异常类型、磁盘填充异常类型、杀docker/pod异常类型、网络拒绝异常类型、网络超时异常类型、网络延迟异常类型、网络丢包异常类型中的一种异常类型对应的所述一组输入参数。
可选地,所述方法还包括:在所述多个目标决策树为N个目标决策树、且所述多个运行指标为N个运行指标时,在获取到所述目标系统出现多种异常类型中的每种异常类型的异常时的异常指标时间序列之后,将获取到的所述异常指标时间序列以及对应的异常类型形成所述N个运行指标的N个异常训练样本集合,其中,N为大于或等于1的自然数,每个异常训练样本集合包括所述N个运行指标中对应的运行指标的异常训练样本;使用所述N个运行指标的N个异常训练样本集合,分别对N个待训练决策树进行训练,得到所述N个目标决策树,其中,每个运行指标的异常训练样本集合用于对所述N个待训练决策树中与所述每个运行指标对应的待训练决策树进行训练。
作为一个可选的实施方式,如图8所示是根据本发明可选实施例的整体框图,其中包括方法主流程、混沌工程采集数据流程、模型训练流程。其中,包括以下步骤:
步骤S81,部署系统相关服务器,指标采集服务器,目标工程(例如,混沌工程)。在生产环境或者测试环境中部署好系统相关服务以及相关指标采集服务,然后在环境中安装混沌工程所需软件,例如开源的chaosbalde工具。
步骤S82,收集指标正常运行时各个指标的运行数据,采集系统正常运行时,各个指标的运行数据,形成正常指标时间序列。
步骤S83,启动目标工程制造系统异常,包括但不限于:CPU/内存异常、网络异常、进程异常和其他异常。收集异常时各个指标的数据形成异常指标时间序列。
步骤S84,训练系统异常检测模型,将系统正常运行指标的运行数据和异常指标的数据作为训练数据。如图9所示是根据本发明可选是实施例的系统异常检测模型训练流程示意图,其中,包括:通过目标工程按照输入参数使得目标系统出现指定异常类型的异常,获取目标系统在发生指定异常类型的异常时,每个运行指标的运行数据,按照预设时间窗口在每个运行指标的运行数据中截取部分运行数据,得到异常指标时间序列,选择m个随机区间,将指标时间序列划分为m个子序列。生成每个子序列的均值,标准差和斜率,然后在所得的3m个特征上创建和训练一棵决策树,每个运行指标的异常运行数据训练得到与该指标对应的目标决策树。训练完成的多个决策树组成系统异常检测模型。图10所示是根据本发明可选实施例的系统异常检测模型训练结构示意图,其中,T1、T2、TN为系统发生故障时,各种指标的异常指标时间序列(对应N为N个运行指标,TN为每种故障类型的故障时的异常指标时间序列,T1、T2、TN为N个异常训练样本集合),C1、C2、CN为对应指标的分类模型(对应为N个目标决策树),使用T1训练得到决策树C1,使用T2训练得到决策树C2,使用TN训练得到决策树CN(对应为使用所述N个运行指标的N个异常训练样本集合,分别对N个待训练决策树进行训练,得到N个目标决策树)。对系统故障进行检测时,将系统运行时的指标时间序列输入对应指标的决策树,得到各个决策树输出的预测结果P1、P2…PN,通过P1、P2…PN投票确定目标故障类型,目标故障类型为系统的故障类型。
步骤S85,部署训练后的系统异常检测模型监控系统异常。如图11所示是根据本发明可选实施例的系统异常监控流程图。通过训练得到系统异常检测模型后,可以将模型部署至生产环境中。
指标采集模块可以对系统各个指标的数据进行采集,包括但不限于:机器指标采集、模块级指标采集、业务指标采集。对于机器指标采集可以采集系统运行时各种软件的指标数据,对于模块级指标采集可以采集各个模块的硬件指标数据,包括但不限于图中所示的网关通信模块、策略控制模块、登陆鉴权模块、业务连接模块、数据模块等各个模块的指标数据。对于业务指标采集可以在业务日志存储中进行采集。将上述采集到的各个指标数据按照一定频率采集(例如1分钟)并聚合,当前采集到的数据可以打上时间戳标签,形成当前时间戳指标数据。并且存入专门的时间戳数据库中存储。从时序数据库中取出一段时间窗口T(例如24小时)内的历史数据,与当前数据组成各个指标的时间序列。将时间序列发送至上文中训练后的多变量系统异常检测模型中进行分类。模型将判断系统正常还是异常,或者处于某一类型的异常中。当模型检测到异常时,将通过邮件、短信、或者即时通讯发送告警至相关运维人员并告知处于哪一类型的异常,从而实现对系统进行实时的监测。
可选地,所述使用所述N个运行指标的N个异常训练样本集合,分别对N个待训练决策树进行训练,得到所述N个目标决策树,包括:通过执行以下步骤,对第s个待训练决策树进行训练,得到第s个目标决策树,其中,1≤s≤N,所述第s个待训练决策树对应于第s个运行指标,所述第s个运行指标的异常训练样本集合中包括Q个异常指标时间序列以及对应的Q个实际异常类型,Q为大于或等于1的自然数:根据所述Q个异常指标时间序列中的每个异常指标时间序列包括的所述第s个运行指标的一组数据,确定所述第s个运行指标对应的目标参数的参数取值,其中,所述目标参数包括均值参数、标准差参数和斜率参数中的至少一个,所述第s个待训练决策树的决策条件包括所述目标参数的多个待调整的取值区间;根据所述第s个运行指标对应的目标参数的参数取值、以及所述Q个实际异常类型,对所述第s个待训练决策树的决策条件中的所述多个待调整的取值区间进行调整,得到所述第s个目标决策树,其中,在所述第s个目标决策树的决策条件包括调整得到的所述目标参数的多个预设取值区间时,根据所述第s个运行指标对应的目标参数的参数取值与所述第s个目标决策树的决策条件之间的关系,确定出的Q个预测异常类型与所述Q个实际异常类型之间的误差满足预设收敛条件。
作为一个可选的实施方式,收集的每一个指标都是一条时间序列,可以训练一个多变量的时间序列分类模型。将训练数据拆分成单个指标的单变量时间序列,并分别训练其分类模型。对于单变量时间序列的分类模型,采用时间序列森林(Time Series Forest,TSF)的算法进行训练,时间序列森林模型将指标时间序列转化为子序列的均值、方差和斜率等统计特征,并使用系统异常检测模型进行分类。TSF通过使用系统异常检测模型方法(以每个间隔的统计信息作为特征)来克服间隔特征空间巨大的问题。
上述第s个待训练决策树可以是任意运行指标对应的决策树。假设指标为消息队列,对消息队列对应的第s个待训练决策树进行训练,一个指标可以对应多种故障类型(如Q个,Q的实际情况而定)。以Q=3为例,消息队列可以预测网络拒绝、网络超时、网络延迟3种故障类型。通过混沌工程制造网络拒绝故障类型时,得到该故障类型时,消息队列的一条异常指标时间序列;通过混沌工程制造网络超时故障类型时,得到该故障类型时,消息队列的一条异常指标时间序列;通过混沌工程制造网络延迟故障类型时,得到该故障类型时,消息队列的一条异常指标时间序列。通过混沌工程制造上述3种故障类型,可以得到3个异常指标时间序列。
可以将每个异常指标时间序列划分为m个随机区间,得到m个子序列。第s个运行指标的一组数据可以是m个子序列组成的一组数据,m值可以根据实际情况而定,例如,3、5、8等。生成每个子序列的均值,标准差和斜率。根据生成每个子序列的均值,标准差和斜率,以及对应的实际故障类型对第s个待训练决策树进行训练,调整第s个待训练决策树决策条件中的多个待调整的取值区间,根据均值,标准差、斜率的取值与决策条件之间的关系,训练得到目标决策树,目标决策树对子序列的均值、标准差、斜率的预测故障类型与实际故障类型的误差满足预设收敛条件,预设条件可以根据实际情况而定,例如,预测出的故障类型为实际故障类型的次数大于预设值,预设值可以根据实际情况而定,例如5、10、13等。
本申请通过混沌工作对系统制造各种各样的异常,同时收集异常时期的指标时间序列作为异常样本,以此训练有监督模型得到系统的异常检测模型,实现精确到具体类别的异常告警。并且传统有监督方法需要大量运维人员人工标注训练数据的问题。通过机器学习算法实现运维自动化,解决传统阈值方法不灵活和手工配置较多的问题,有效降低运维人员的工作量。通过多指标异常检测,能够综合多个指标综合评判系统指标异常,发现单个指标难以发现的风险,提高告警的准确性。对系统进行实时监控,保障系统的正常稳定运行。
可选地,在所述确定所述多个异常检测结果中,出现次数最多的异常检测结果为所述目标系统的目标异常检测结果之后,所述方法还包括:向目标应用发送告警信息,其中,所述告警信息用于指示所述目标系统出现所述目标异常类型的异常。
作为一个可选的实施方式,上述目标应用包括但不限于即时通讯客户端。如图12所示是根据本发明可选实施例的监控告警示意图,其中包括系统的指标采集,包括但不限于图中所示的硬件指标、软件指标,图中仅为了说明本实施例,具体的指标采集可以根据实际情况而定,例如还可以包括集群指标、网络指标、安全指标等。采集的指标的数据可以显示在用户界面,包括但不限于网页页面,客户端界面等。服务器可以通过混沌工程制造异常,通过制造的各种异常,收集各种指标的异常指标时间序列训练得到系统异常检测模型,通过系统异常检测模型对系统的异常类型进行预测,将预测结果发送至用户终端,具体地,可以通过即时通讯、短信、邮件等方式将告警信息发送给用户终端。通过向即时通讯客户端发送系统的故障类型,可以提醒运维人员系统出现了故障,运维人员可以根据系统的故障类型,及时准确地对系统进行修复。
作为一个可选的实施方式,如图13所示是一个可选实施例的整体流程图,其中,包括以下步骤:
步骤S1301,部署目标系统和目标工程,目标工程包括但不限于混沌工程,部署目标系统包括但不限于部署目标系统中的服务和运行指标的指标数据采集;
步骤S1302,启动目标工程,使得目标系统被制造指令类型的异常,包括但不限于CUP异常、内存异常、网络异常、进程异常等;
步骤S1303,获取目标系统异常时各个运行指标的运行数据,通过预设时间窗口获取预设时间段的各个指标的运行数据,得到各个运行指标对应的异常指标时间序列,例如图中所示的异常指标时间序列1至异常指标时间序列N;
步骤S1304,使用各个运行指标对应的异常指标时间序列训练系统异常检测模型,其中,系统异常检测模型中包括多个待训练的决策树,使用每个运行指标对应的异常时间序列训练待训练的决策树,得到与该运行指标对应的目标决策树,例如图中所示的系统异常检测模型中的决策树1、决策树2、决策树N是训练完成的目标决策树;
步骤S1305,按照预设采集频率采集目标系统运行时,各个指标的运行数据,预设采集频率可以根据实际情况而定,例如,1分钟、10秒钟等。可以通过指标采集模块对各运行指标的运行数据进行采集,包括机器运行指标,各进程、组件及模块指标,业务相关指标。可以按照一定频率采集(例如1分钟)并聚合指标。当前采集到的指标运行数据会被打上时间戳标签,并且存入时序数据库;
步骤S1306,按照预设时间窗口提取每个运行指标的运行数据,得到多个运行指标对应的多个指标时间序列,其中,每个运行指标对应一个指标时间序列,每个指标时间序列中包括对应运行指标运行时的一组运行数据;设时间窗口的长度可以根据实际情况而定,例如,10小时、15小时、24小时、48小时等;
步骤S1307,将多个运行指标对应的多个指标时间序列输入系统异常检测模型,以进行多目标决策树异常检测处理,得到以多个目标决策树输出的多个异常检测结果;
步骤S1308,对多个异常检测结果进行加权次数统计处理,以确定并输出目标系统的目标异常检测结果,其中,目标异常检测结果包括目标系统发生异常时的目标异常类型。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一个方面,还提供了一种用于实施上述系统的异常检测方法的系统的异常检测装置。如图14所示,该装置包括:采集模块1402,用于按照预设频率采集目标系统的多个运行指标的运行数据,其中,所述运行指标包括所述目标系统运行时的硬件指标和软件指标,所述运行数据是所述目标系统运行时各个指标的数据;提取模块1404,用于按照预设频率采集目标系统的多个运行指标的运行数据,其中,所述运行指标包括所述目标系统运行时的硬件指标和软件指标,所述运行数据是所述目标系统运行时各个指标的数据;处理模块1406,用于将所述多个运行指标对应的多个指标时间序列输入系统异常检测模型,以进行多目标决策树异常检测处理,得到以多个目标决策树输出的多个异常检测结果;确定模块1408,用于对所述多个异常检测结果进行加权次数统计处理,以确定并输出所述目标系统的目标异常检测结果,其中,所述目标异常检测结果包括所述目标系统发生异常时的目标异常类型。
可选地,上述装置还用于对所述多个指标时间序列中的每个指标时间序列执行以下操作,在执行以下操作时,所述每个指标时间序列为当前运行指标的当前指标时间序列:将所述当前指标时间序列输入所述系统异常检测模型中与所述当前运行指标对应的当前决策树,得到所述当前决策树根据所述当前指标时间序列确定出的当前异常检测结果。
可选地,上述装置还用于根据所述当前指标时间序列包括的所述当前运行指标的一组数据,确定所述当前运行指标对应的所述目标参数的参数取值;在所述当前决策树中的决策条件包括所述目标参数的多个预设取值区间、每个所述预设取值区间对应多种异常类型中的一种异常类型时,在所述多个预设取值区间中确定所述参数取值所在的当前预设取值区间;确定所述当前预设取值区间对应的异常类型,为所述当前决策树输出的所述当前异常检测结果。
可选地,上述装置还用于在所述目标参数包括多个参数、且每个所述预设取值区间是所述多个参数中的每个参数的一个取值区间的组合时,在所述多个预设取值区间中确定所述当前预设取值区间,其中,所述当前预设取值区间包括所述多个参数中的每个参数的当前取值区间的组合,所述目标参数的参数取值包括所述多个参数的当前取值,所述多个参数的当前取值分别位于所述多个参数的当前取值区间中。
可选地,上述装置还用于在所述多个目标决策树为N个目标决策树、所述多个异常检测结果包括所述N个目标决策树确定的N个异常检测结果、且所述N个异常检测结果中的每个异常类型都是多种异常类型中的一种异常类型时,将所述N个异常类型中出现次数最多的一种异常类型确定为所述目标异常类型,其中,N为大于或等于2的自然数。
可选地,上述装置还用于在所述多个目标决策树为N个目标决策树、所述多个异常检测结果包括所述N个目标决策树确定的N个异常检测结果、且所述N个异常检测结果中出现了多种异常类型中的M种异常类型时,在所述N个异常类型中确定所述M种异常类型分别出现的加权次数,其中,所述M种异常类型中的第i种异常类型出现的加权次数等于对每个目标决策树确定出的所述第i种异常类型的次数进行加权求和所得到的值,其中,N为大于或等于2的自然数,M小于或等于N,i大于或等于1且小于或等于M;将所述M种异常类型分别出现的加权次数中加权次数最多的一种异常类型确定为所述目标异常类型。
可选地,上述装置还用于通过以下步骤训练得到所述系统异常检测模型:在所述目标系统上运行目标工程,以控制所述目标系统出现指定异常类型的异常,其中,所述目标系统被所述目标工程按照对应的输入参数控制出现所述指定异常类型的异常;所述目标系统发生现所述指定异常类型的异常时,获取对应的所述运行指标的异常运行数据,以得到所述运行指标对应的异常指标时间序列;使用对应的所述运行指标的异常指标时间序列对待训练决策树训练得到与所述运行指标对应的所述目标决策树。
可选地,上述装置还用于通过以下步骤获取在所述目标系统出现指定异常类型的异常指标时间序列:获取与所述指定异常类型对应的一组输入参数,其中,所述一组输入参数中的每个输入参数用于控制所述目标系统出现所述指定异常类型的异常;分别按照所述一组输入参数中的每个输入参数运行目标工程,以控制所述目标系统出现所述指定异常类型的异常;记录在所述目标系统出现所述指定异常类型的异常时,所述目标系统中的P个运行指标的数据所形成的P组异常指标时间序列,其中,P为大于或等于1的自然数,所述P个运行指标是在所述目标系统出现所述指定异常类型的异常时数据异常的运行指标,所述P组异常指标时间序列中的每组异常指标时间序列是所述P个运行指标中对应的一个运行指标的异常指标时间序列。
可选地,上述装置还用于在目标工程中预设的多种异常类型中选择所述指定异常类型,并获取与所述指定异常类型对应的所述一组输入参数。
可选地,上述装置还用于获取CPU高负载异常类型、内存高负载异常类型、输入输出高负载异常类型、磁盘填充异常类型、杀docker/pod异常类型、网络拒绝异常类型、网络超时异常类型、网络延迟异常类型、网络丢包异常类型中的一种异常类型对应的所述一组输入参数。
可选地,上述装置还用于在所述多个目标决策树为N个目标决策树、且所述多个运行指标为N个运行指标时,在获取到所述目标系统出现多种异常类型中的每种异常类型的异常时的异常指标时间序列之后,将获取到的所述异常指标时间序列以及对应的异常类型形成所述N个运行指标的N个异常训练样本集合,其中,N为大于或等于1的自然数,每个异常训练样本集合包括所述N个运行指标中对应的运行指标的异常训练样本;使用所述N个运行指标的N个异常训练样本集合,分别对N个待训练决策树进行训练,得到所述N个目标决策树,其中,每个运行指标的异常训练样本集合用于对所述N个待训练决策树中与所述每个运行指标对应的待训练决策树进行训练。
可选地,上述装置还用于通过执行以下步骤,对第s个待训练决策树进行训练,得到第s个目标决策树,其中,1≤s≤N,所述第s个待训练决策树对应于第s个运行指标,所述第s个运行指标的异常训练样本集合中包括Q个异常指标时间序列以及对应的Q个实际异常类型,Q为大于或等于1的自然数:根据所述Q个异常指标时间序列中的每个异常指标时间序列包括的所述第s个运行指标的一组数据,确定所述第s个运行指标对应的目标参数的参数取值,其中,所述目标参数包括均值参数、标准差参数和斜率参数中的至少一个,所述第s个待训练决策树的决策条件包括所述目标参数的多个待调整的取值区间;根据所述第s个运行指标对应的目标参数的参数取值、以及所述Q个实际异常类型,对所述第s个待训练决策树的决策条件中的所述多个待调整的取值区间进行调整,得到所述第s个目标决策树,其中,在所述第s个目标决策树的决策条件包括调整得到的所述目标参数的多个预设取值区间时,根据所述第s个运行指标对应的目标参数的参数取值与所述第s个目标决策树的决策条件之间的关系,确定出的Q个预测异常类型与所述Q个实际异常类型之间的误差满足预设收敛条件。
可选地,上述装置还用于向目标应用发送告警信息,其中,所述告警信息用于指示所述目标系统出现所述目标异常类型的异常。
根据本发明实施例的又一个方面,还提供了一种用于实施上述系统的异常检测方法的电子设备,该电子设备可以是图1所示的终端设备或服务器。本实施例以该电子设备为服务器为例来说明。如图15所示,该电子设备包括存储器1502和处理器1504,该存储器1502中存储有计算机程序,该处理器1504被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,按照预设频率采集目标系统的多个运行指标的运行数据,其中,所述运行指标包括所述目标系统运行时的硬件指标和软件指标,所述运行数据是所述目标系统运行时各个指标的数据;
S2,按照预设时间窗口提取每个运行指标的所述运行数据,得到所述多个运行指标对应的多个指标时间序列,其中,每个运行指标对应一个指标时间序列,每个指标时间序列中包括对应运行指标运行时的一组运行数据;
S3,将所述多个运行指标对应的多个指标时间序列输入系统异常检测模型,以进行多目标决策树异常检测处理,得到以多个目标决策树输出的多个异常检测结果;
S4,对所述多个异常检测结果进行加权次数统计处理,以确定并输出所述目标系统的目标异常检测结果,其中,所述目标异常检测结果包括所述目标系统发生异常时的目标异常类型。
可选地,本领域普通技术人员可以理解,图15所示的结构仅为示意,电子装置电子设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图15其并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图15中所示更多或者更少的组件(如网络接口等),或者具有与图15所示不同的配置。
其中,存储器1502可用于存储软件程序以及模块,如本发明实施例中的异常类型的确定系统的异常检测方法和装置对应的程序指令/模块,处理器1504通过运行存储在存储器1502内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的异常类型的确定系统的异常检测方法。存储器1502可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1502可进一步包括相对于处理器1504远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1502具体可以但不限于用于存储物品的样本特征与目标虚拟资源账号等信息。作为一种示例,如图15所示,上述存储器1502中可以但不限于包括上述异常类型的确定系统的异常检测装置中的采集模块1402、提取模块1404、处理模块1406、确定模块1408。此外,还可以包括但不限于上述异常类型的确定系统的异常检测装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置1506用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1506包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1506为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子设备还包括:显示器1508,用于显示上述指标时间序列和目标异常检测结果;和连接总线1510,用于连接上述电子设备中的各个模块部件。
在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(P2P,Peer To Peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
根据本申请的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序/指令,该计算机程序/指令包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1609从网络上被下载和安装,和/或从可拆卸介质1611被安装。在该计算机程序被中央处理器1601执行时,执行本申请实施例提供的各种功能。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
图16示意性地示出了用于实现本申请实施例的电子设备的计算机系统结构框图。
需要说明的是,图16示出的电子设备的计算机系统1600仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图16所示,计算机系统1600包括中央处理器1601(Central Processing Unit,CPU),其可以根据存储在只读存储器1602(Read-Only Memory,ROM)中的程序或者从存储部分1608加载到随机访问存储器1603(Random Access Memory,RAM)中的程序而执行各种适当的动作和处理。在随机访问存储器1603中,还存储有系统操作所需的各种程序和数据。中央处理器1601、在只读存储器1602以及随机访问存储器1603通过总线1604彼此相连。输入/输出接口1605(Input/Output接口,即I/O接口)也连接至总线1604。
以下部件连接至输入/输出接口1605:包括键盘、鼠标等的输入部分1606;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1607;包括硬盘等的存储部分1608;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分1609。通信部分1609经由诸如因特网的网络执行通信处理。驱动器1610也根据需要连接至输入/输出接口1605。可拆卸介质1611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1610上,以便于从其上读出的计算机程序根据需要被安装入存储部分1608。
特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1609从网络上被下载和安装,和/或从可拆卸介质1611被安装。在该计算机程序被中央处理器1601执行时,执行本申请的系统中限定的各种功能。
根据本申请的一个方面,提供了一种计算机可读存储介质,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
可选地,在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,按照预设频率采集目标系统的多个运行指标的运行数据,其中,所述运行指标包括所述目标系统运行时的硬件指标和软件指标,所述运行数据是所述目标系统运行时各个指标的数据;
S2,按照预设时间窗口提取每个运行指标的所述运行数据,得到所述多个运行指标对应的多个指标时间序列,其中,每个运行指标对应一个指标时间序列,每个指标时间序列中包括对应运行指标运行时的一组运行数据;
S3,将所述多个运行指标对应的多个指标时间序列输入系统异常检测模型,以进行多目标决策树异常检测处理,得到以多个目标决策树输出的多个异常检测结果;
S4,对所述多个异常检测结果进行加权次数统计处理,以确定并输出所述目标系统的目标异常检测结果,其中,所述目标异常检测结果包括所述目标系统发生异常时的目标异常类型。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (16)
1.一种系统的异常检测方法,其特征在于,包括:
按照预设频率采集目标系统的多个运行指标的运行数据,其中,所述运行指标包括所述目标系统运行时的硬件指标和软件指标,所述运行数据是所述目标系统运行时各个指标的数据;
按照预设时间窗口提取每个运行指标的所述运行数据,得到所述多个运行指标对应的多个指标时间序列,其中,每个运行指标对应一个指标时间序列,每个指标时间序列中包括对应运行指标运行时的一组运行数据;
将所述多个运行指标对应的多个指标时间序列输入系统异常检测模型,以进行多目标决策树异常检测处理,得到以多个目标决策树输出的多个异常检测结果;
对所述多个异常检测结果进行加权次数统计处理,以确定并输出所述目标系统的目标异常检测结果,其中,所述目标异常检测结果包括所述目标系统发生异常时的目标异常类型。
2.根据权利要求1所述的方法,其特征在于,将所述多个运行指标对应的多个指标时间序列输入系统异常检测模型,以进行多目标决策树异常检测处理,包括:
对所述多个指标时间序列中的每个指标时间序列执行以下操作,在执行以下操作时,所述每个指标时间序列为当前运行指标的当前指标时间序列:
将所述当前指标时间序列输入所述系统异常检测模型中与所述当前运行指标对应的当前决策树,得到所述当前决策树根据所述当前指标时间序列确定出的当前异常检测结果。
3.根据权利要求2所述的方法,其特征在于,所述将所述当前指标时间序列输入所述系统异常检测模型中与所述当前运行指标对应的当前决策树,得到所述当前决策树根据所述当前指标时间序列确定出的当前异常检测结果,包括:
根据所述当前指标时间序列包括的所述当前运行指标的一组数据,确定所述当前运行指标对应的所述目标参数的参数取值;
在所述当前决策树中的决策条件包括所述目标参数的多个预设取值区间、每个所述预设取值区间对应多种异常类型中的一种异常类型时,在所述多个预设取值区间中确定所述参数取值所在的当前预设取值区间;
确定所述当前预设取值区间对应的异常类型,为所述当前决策树输出的所述当前异常检测结果。
4.根据权利要求3所述的方法,其特征在于,所述在所述多个预设取值区间中确定所述参数取值所在的当前取值区间,包括:
在所述目标参数包括多个参数、且每个所述预设取值区间是所述多个参数中的每个参数的一个取值区间的组合时,在所述多个预设取值区间中确定所述当前预设取值区间,其中,所述当前预设取值区间包括所述多个参数中的每个参数的当前取值区间的组合,所述目标参数的参数取值包括所述多个参数的当前取值,所述多个参数的当前取值分别位于所述多个参数的当前取值区间中。
5.根据权利要求1所述的方法,其特征在于,所述对所述多个异常检测结果进行加权次数统计处理,以确定并输出所述目标系统的目标异常检测结果,包括:
在所述多个目标决策树为N个目标决策树、所述多个异常检测结果包括所述N个目标决策树确定的N个异常检测结果、且所述N个异常检测结果中的每个异常类型都是多种异常类型中的一种异常类型时,将所述N个异常类型中出现次数最多的一种异常类型确定为所述目标异常类型,其中,N为大于或等于2的自然数。
6.根据权利要求1所述的方法,其特征在于,所述对所述多个异常检测结果进行加权次数统计处理,以确定并输出所述目标系统的目标异常检测结果,包括:
在所述多个目标决策树为N个目标决策树、所述多个异常检测结果包括所述N个目标决策树确定的N个异常检测结果、且所述N个异常检测结果中出现了多种异常类型中的M种异常类型时,在所述N个异常类型中确定所述M种异常类型分别出现的加权次数,其中,所述M种异常类型中的第i种异常类型出现的加权次数等于对每个目标决策树确定出的所述第i种异常类型的次数进行加权求和所得到的值,其中,N为大于或等于2的自然数,M小于或等于N,i大于或等于1且小于或等于M;
将所述M种异常类型分别出现的加权次数中加权次数最多的一种异常类型确定为所述目标异常类型。
7.根据权利要求1至6中任一项所述的方法,其特征在于,
通过以下步骤训练得到所述系统异常检测模型:
在所述目标系统上运行目标工程,以控制所述目标系统出现指定异常类型的异常;
所述目标系统发生现所述指定异常类型的异常时,获取对应的所述运行指标的异常运行数据,以得到所述运行指标对应的异常指标时间序列;
使用对应的所述运行指标的异常指标时间序列对待训练决策树训练得到与所述运行指标对应的所述目标决策树。
8.根据权利要求1至6中任一项所述的方法,其特征在于,
通过以下步骤获取在所述目标系统出现指定异常类型的异常指标时间序列:
获取与所述指定异常类型对应的一组输入参数,其中,所述一组输入参数中的每个输入参数用于控制所述目标系统出现所述指定异常类型的异常;
分别按照所述一组输入参数中的每个输入参数运行目标工程,以控制所述目标系统出现所述指定异常类型的异常;
记录在所述目标系统出现所述指定异常类型的异常时,所述目标系统中的P个运行指标的数据所形成的P组异常指标时间序列,其中,P为大于或等于1的自然数。
9.根据权利要求8所述的方法,所述获取与所述指定异常类型对应的一组输入参数,包括:
在目标工程中预设的多种异常类型中选择所述指定异常类型,并获取与所述指定异常类型对应的所述一组输入参数。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在所述多个目标决策树为N个目标决策树、且所述多个运行指标为N个运行指标时,在获取到所述目标系统出现多种异常类型中的每种异常类型的异常时的异常指标时间序列之后,将获取到的所述异常指标时间序列以及对应的异常类型形成所述N个运行指标的N个异常训练样本集合,其中,N为大于或等于1的自然数,每个异常训练样本集合包括所述N个运行指标中对应的运行指标的异常训练样本;
使用所述N个运行指标的N个异常训练样本集合,分别对N个待训练决策树进行训练,得到所述N个目标决策树,其中,每个运行指标的异常训练样本集合用于对所述N个待训练决策树中与所述每个运行指标对应的待训练决策树进行训练。
11.根据权利要求10所述的方法,其特征在于,所述使用所述N个运行指标的N个异常训练样本集合,分别对N个待训练决策树进行训练,得到所述N个目标决策树,包括:
通过执行以下步骤,对第s个待训练决策树进行训练,得到第s个目标决策树,其中,1≤s≤N,所述第s个运行指标的异常训练样本集合中包括Q个异常指标时间序列,Q为大于或等于1的自然数:
根据所述Q个异常指标时间序列中的每个异常指标时间序列包括的所述第s个运行指标的一组数据,确定所述第s个运行指标对应的目标参数的参数取值,其中,所述第s个待训练决策树的决策条件包括所述目标参数的多个待调整的取值区间;
根据所述第s个运行指标对应的目标参数的参数取值、以及所述Q个实际异常类型,对所述第s个待训练决策树的决策条件中的所述多个待调整的取值区间进行调整,得到所述第s个目标决策树。
12.根据权利要求1所述的方法,其特征在于,在所述确定所述多个异常检测结果中,出现次数最多的异常检测结果为所述目标系统的目标异常检测结果之后,所述方法还包括:
向目标应用发送告警信息,其中,所述告警信息用于指示所述目标系统出现所述目标异常类型的异常。
13.一种系统的异常检测装置,其特征在于,包括:
采集模块,用于按照预设频率采集目标系统的多个运行指标的运行数据,其中,所述运行指标包括所述目标系统运行时的硬件指标和软件指标,所述运行数据是所述目标系统运行时各个指标的数据;
提取模块,用于按照预设频率采集目标系统的多个运行指标的运行数据,其中,所述运行指标包括所述目标系统运行时的硬件指标和软件指标,所述运行数据是所述目标系统运行时各个指标的数据;
处理模块,用于将所述多个运行指标对应的多个指标时间序列输入系统异常检测模型,以进行多目标决策树异常检测处理,得到以多个目标决策树输出的多个异常检测结果;
确定模块,用于对所述多个异常检测结果进行加权次数统计处理,以确定并输出所述目标系统的目标异常检测结果,其中,所述目标异常检测结果包括所述目标系统发生异常时的目标异常类型。
14.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行所述权利要求1至12任一项中所述的方法。
15.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至12的方法步骤。
16.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至12任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111152912.7A CN114358106A (zh) | 2021-09-29 | 2021-09-29 | 系统异常检测方法、装置、计算机程序产品及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111152912.7A CN114358106A (zh) | 2021-09-29 | 2021-09-29 | 系统异常检测方法、装置、计算机程序产品及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114358106A true CN114358106A (zh) | 2022-04-15 |
Family
ID=81095297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111152912.7A Pending CN114358106A (zh) | 2021-09-29 | 2021-09-29 | 系统异常检测方法、装置、计算机程序产品及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114358106A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114866296A (zh) * | 2022-04-20 | 2022-08-05 | 武汉大学 | 入侵检测方法、装置、设备及可读存储介质 |
CN114970546A (zh) * | 2022-05-30 | 2022-08-30 | 北京声智科技有限公司 | 信息输出方法、装置及电子设备 |
CN115496424A (zh) * | 2022-11-09 | 2022-12-20 | 广东能创科技有限公司 | 一种甲醇制氢工艺安全管理方法及系统 |
CN115766554A (zh) * | 2022-11-07 | 2023-03-07 | 深圳复临科技有限公司 | 软件检测方法、装置、计算机设备及存储介质 |
CN115914052A (zh) * | 2022-10-28 | 2023-04-04 | 京东科技信息技术有限公司 | 域名健康状况的检测方法和装置 |
CN117827524A (zh) * | 2024-03-06 | 2024-04-05 | 建信金融科技有限责任公司 | 系统运维方法和装置 |
-
2021
- 2021-09-29 CN CN202111152912.7A patent/CN114358106A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114866296A (zh) * | 2022-04-20 | 2022-08-05 | 武汉大学 | 入侵检测方法、装置、设备及可读存储介质 |
CN114970546A (zh) * | 2022-05-30 | 2022-08-30 | 北京声智科技有限公司 | 信息输出方法、装置及电子设备 |
CN115914052A (zh) * | 2022-10-28 | 2023-04-04 | 京东科技信息技术有限公司 | 域名健康状况的检测方法和装置 |
CN115914052B (zh) * | 2022-10-28 | 2024-05-17 | 京东科技信息技术有限公司 | 域名健康状况的检测方法和装置 |
CN115766554A (zh) * | 2022-11-07 | 2023-03-07 | 深圳复临科技有限公司 | 软件检测方法、装置、计算机设备及存储介质 |
CN115496424A (zh) * | 2022-11-09 | 2022-12-20 | 广东能创科技有限公司 | 一种甲醇制氢工艺安全管理方法及系统 |
CN115496424B (zh) * | 2022-11-09 | 2023-04-28 | 广东能创科技有限公司 | 一种甲醇制氢工艺安全管理方法及系统 |
CN117827524A (zh) * | 2024-03-06 | 2024-04-05 | 建信金融科技有限责任公司 | 系统运维方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114358106A (zh) | 系统异常检测方法、装置、计算机程序产品及电子设备 | |
EP2487860B1 (en) | Method and system for improving security threats detection in communication networks | |
US11966319B2 (en) | Identifying anomalies in a data center using composite metrics and/or machine learning | |
CN108092836A (zh) | 一种服务器的监控方法及装置 | |
KR20180108446A (ko) | Ict 인프라 관리 시스템 및 이를 이용한 ict 인프라 관리 방법 | |
CN102739802A (zh) | 面向业务应用的it集中运维分析系统 | |
CN106716454A (zh) | 利用机器学习来识别非技术性损失 | |
KR102087959B1 (ko) | 통신망의 인공지능 운용 시스템 및 이의 동작 방법 | |
CN105184886A (zh) | 一种云数据中心智能巡检系统及方法 | |
CN112769605B (zh) | 一种异构多云的运维管理方法及混合云平台 | |
Barbhuiya et al. | RADS: Real-time anomaly detection system for cloud data centres | |
US10733514B1 (en) | Methods and apparatus for multi-site time series data analysis | |
CN112532435B (zh) | 一种运维方法、运维管理平台、设备及介质 | |
CN113395251A (zh) | 一种机器学习安全场景检测方法及装置 | |
CN113313280A (zh) | 云平台的巡检方法、电子设备及非易失性存储介质 | |
CN115733762A (zh) | 具有大数据分析能力的监控系统 | |
CN110968479A (zh) | 一种针对应用程序的业务级全链路监控方法及服务器 | |
Ageyev et al. | Traffic Monitoring and Abnormality Detection Methods for IoT | |
CN113657536A (zh) | 基于人工智能的对象分类方法、装置 | |
CN110677271B (zh) | 基于elk的大数据告警方法、装置、设备及存储介质 | |
CN115080363B (zh) | 一种基于业务日志的系统容量评估方法及装置 | |
CN111404742A (zh) | 一种面向智慧供应链的工业互联架构 | |
CN105892387B (zh) | 基于跨平台多点数据采集mpca模型的机房隐患自动上报装置及方法 | |
CN113986704A (zh) | 基于TS-Decomposition的数据中心高频故障时域预警方法及系统 | |
CN115222181A (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 |