一种带状态流计算系统中的异常监控及预测方法和系统与流程

文档序号:12665404阅读:218来源:国知局
一种带状态流计算系统中的异常监控及预测方法和系统与流程

本发明涉及计算机技术领域,涉及利用机器学习算法对带状态流计算系统的特征属性进行分析处理,具体涉及一种带状态流计算系统中的异常监控及预测方法。



背景技术:

近年来,随着社会数据量的日益膨胀,流式计算系统已经成为计算机工业界和学术界的关注热点,并在各领域受到广泛使用,从生产应用方面来看,流计算已经初步走入大型电信系统,电力电网系统,银行金融交易系统等重要应用领域,同时在学术界,流计算系统在各类国际顶级学术会议中获得高度关注。数据流式计算是一种实时产生、实时处理的一个数据处理模式,并且数据的价值随着时间的推移而降低,所以当一个事件发生后需要立即进行处理,与批处理技术有显著的区别。但是流式计算系统处理的事件流是简单的、无状态的,其事件流所含信息量往往相对较少,只能解决简单的统计、预处理以及初级的流计算任务,导致流式计算系统不能处理一些复杂任务,因此需要考虑事件流之间的关联,并将这些有关联的事件流在一个时间窗口内进行计算、聚合等操作,形成复杂的事件流,从而生成更高抽象层次、符合业务需求的高级事件,提高系统上层的决策能力。

带状态的流式计算是实时处理有状态事件流的重要方式。在该系统中,基本事件为监控到系统运行时的系统特征,异常事件包括计算机重新启动、系统参数变化、电源故障、通信中断等。经过事件解析和内存数据库的交互得到具有语义的基本事件流,经过流计算引擎的聚合、筛选和计算形成高级的复杂事件,就可以检测出系统的故障。系统连续监控每个组件的行为,周期性收集系统日志数据,例如,CPU空闲时间、可用内存,空闲的处理器时间等作为特征流元组,元组的状态可以分为两类:正常和异常。如果发现系统出现异常,则监控系统对当前的系统数据进行备份。面对安全性需求很高的领域,把复杂事件处理技术应用其中,这将导致该行业面临着严重的安全威胁,所以安全问题仍然是制约流式计算系统发展的主要因素。

由于流计算系统处理的事件都是有状态的,但状态的转换需要等待下一状态事件的发生,在该事件发生的过程中外部进入系统的事件流会急剧增高,对系统造成极大的负荷,并且事件发生的状态是不可控的,即事件在内存中等待的时间是不确定的,容易引起内存的聚集,如何解决对带状态流计算系统的异常监控及预测是当中亟待解决的问题。如果无法保证系统高效可靠的运行,云计算、物联网、移动互连、社交媒体等新兴信息技术的发展将遭受很大的阻碍。目前带状态流计算系统的异常监控主要存在以下几个问题:(1)只能查看系统的当前状态,无法对系统之前监控数据进行查询和比对,从而不能完成合理的系统性能评估分析、优化以及系统集群规模伸缩性预测。(2)现有异常检测方式比较被动,使得故障发生之后才能得到解决,不但延长了故障时间,而且大大降低了集群系统的可用性。(3)缺少对整个集群系统的全方面状态信息监控,无法了解系统之间的联系,缺少多故障发生时定位故障源的参考依据。



技术实现要素:

本发明提供一种带状态流计算系统中的异常监控及预测方法和系统,根据监控到系统当前的运行状态预测下一时刻系统的状态,判定系统是否会发生异常,从而提高带状态流计算系统的可靠性和稳定性。

为了实现带状态流计算系统的大规模应用,本发明的目的是提供一种带状态流计算系统中的异常监控及预测方法,其主要思想大致可分为三步,首先分析带状态流计算系统的特征并采集可以表征系统性能的特征属性,其次利用采集到的特征属性进行降维处理并训练分类器,得到最优分类平面,最后再根据预测的系统下一时刻运行状态所构成的平面与最优分类平面进行比较,然后进行预警判定。而分类结果可以进一步加以利用,通过将异常样本数据回溯到历史样本集中,可以为系统提供高效、精准的异常判定。

鉴于此本发明采用的技术方案如下:一种带状态流计算系统中的异常监控及预测方法,包括以下步骤:

S1:对带状态流计算系统的运行状态进行实时监控,采集系统运行时的特征属性E,并将这些特征属性存储在历史样本集中。

S2:对历史样本集中的数据进行归一化处理,将归一化处理后的数据进行降维处理,得到降维空间F。

S3:对降维空间F的特征向量进行分类处理。将降维空间F的特征向量作为支持向量机(Support Vector Machines,SVM)分类器的输入,输出最优分类平面S1,得到训练好的SVM分类器。

S4:利用马尔科夫模型计算历史样本集的转移概率并得到转移矩阵,然后统计初始时刻数据的分布状况并对系统下一时刻运行状态进行预测;根据预测的系统下一时刻运行状态,输出系统状态所构成的平面S2

S5:对系统状态所构成的平面S2与最优分类平面S1进行比较,如果系统状态构成的平面S2与最优分类平面S1之间的距离大于阈值β,则进行预警,判定系统状态为异常。

S6:如果判定系统状态为异常,则将异常样本数据回溯到历史样本集,并随机去掉当前历史样本集中正常样本数据,更新分类器。缩小历史样本集的空间,缩短分类器更新时间。

步骤S1中所述特征属性E包括,E=[可用字节,平均磁盘队列长度,数据包速率,线程数,当前磁盘队列长度,处理器时间,状态转换,系统响应时间,吞吐量,CPU占用率,内存使用率,磁盘I/O,网络I/O,进程数,每个进程的消耗时间,虚拟内存字节数,每个元组的处理时间,原子事件实例序列长度,状态机处理速率,事件响应时间,事件到达率]。

步骤S2中降维处理的步骤如下:

S21:将特征属性E利用核函数抽象到高维空间中;

S22:将高维空间进行归一化处理;

S23:按照多种划分方式(如距离、密度等本领域常用的方式)分别划分高维空间,然后在每个空间中进行降维处理;

S24:重复S23的过程,直到当前降维空间与前一降维空间相差小于阈值λ,则停止;

S25:得到最终的降维空间F。

本发明还提供一种带状态流计算系统中的异常监控及预测系统,包括系统监控模块、数据处理模块、系统预测模块和结果检测模块。

所述系统监控模块用于对带状态流计算系统的运行状态进行实时监控,采集系统运行时的特征属性E,并将这些特征属性存储在历史样本集中。

所述数据处理模块用于对历史样本集中的数据进行归一化处理,将归一化处理后的数据进行降维,训练出分类器。

所述系统预测模块利用马尔科夫模型计算历史样本集的转移概率并得到转移矩阵,然后统计初始时刻数据的分布状况并对系统下一时刻运行状态进行预测。

所述结果检测模块用于判断系统是否处于异常状态。

本系统还包括分类器更新模块,用于在系统状态异常时,更新分类器,使其能够自适应系统运行状态的变化。

所述系统预测模块包括状态机预判断模块和系统运行状态预测模块;状态机预判断模块预判断下一时刻状态机的事件到达率的概率,如果预测状态机状态正常,则系统运行状态预测模块根据历史样本集中的数据计算系统下一时刻状态的转移概率和转移矩阵,得到系统下一时刻运行状态,并得到该时刻系统运行状态所构成的状态平面;否则认为系统下一时刻出现异常,直接进行预警。

所述判断系统是否处于异常状态为:对系统预测模块中的系统状态所构成的平面S2与数据处理模块中的最优分类平面S1进行比较,如果系统状态构成的平面S2与最优分类平面S1之间的距离大于阈值β,则进行预警,判定系统状态为异常。

本发明通过对高维系统性能数据进行降维处理,不仅实现了降维的目的,减少特征向量的维数,而且缩短了训练时间,并且计算量并没有随着维数升高而增加很多;本发明通过提出一种带状态流计算系统中的异常监控及预测方法,有效地利用海量带标签样本数据提高分类器的准确率,并将异常分类结果回溯到历史样本集中对分类器进行更新,提高了分类效率。

附图说明

本发明的上述和/或附加的方面和优点将结合下面附图对实施例的描述中变得明显和容易理解,其中:

图1是本发明的整体流程结构示意图;

图2是本发明中的高维空间数据进行降维处理流程图;

图3是本发明中带状态流式计算系统所用的状态机异常判断的流程图;

图4是本发明提出的一种带状态流计算系统中的异常监控及预测方法流程图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的含义。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

图1是本发明的整体流程结构示意图。目前有很多应用场景都是基于带状态流计算框架建立的,可以应用于监控、欺诈检测、预处理等环境,实现智能化、自动化的业务流程管理。根据上述对带状态流式计算系统的特点进行分析,本申请提出的监控及预测方法整体框架主要分为五个模块:包括系统监控模块、数据处理模块、系统预测模块、结果检测模块和分类器更新模块。系统监控模块用于对带状态流计算系统的运行状态进行实时监控,采集系统运行时的特征属性E,并将这些特征属性存储在历史样本集中。数据处理模块用于对历史样本集中的数据进行归一化处理,将归一化处理后的数据进行降维,训练出分类器。系统预测模块用于根据历史样本集中的数据利用马尔科夫模型计算转移概率并得到转移矩阵,然后统计初始时刻数据的分布状况并对系统下一时刻运行状态进行预测。结果检测模块用于判断系统是否处于异常状态。分类器更新模块用于在系统状态异常时,更新分类器,使其能够自适应系统运行状态的变化。

如图4所示,本发明提供一种带状态流计算系统中的异常监控及预测方法。首先,对带状态的流计算系统进行全面实时监控,提取能够反映系统性能的指标,如可用字节、平均磁盘队列长度、数据包速率、线程数、当前磁盘队列长度、处理器时间、状态转换、系统响应时间,吞吐量,CPU占用率,内存使用率,磁盘I/O,网络I/O,进程数,每个进程的消耗时间,虚拟内存字节数,每个元组的处理时间,原子事件实例序列长度,状态机处理速率,事件响应时间,事件到达率等,并将这些特征属性存储在历史样本集中;然后对系统特征属性数据进行归一化处理,对带状态流计算系统进行实时监控,提取可以反映系统性能的特征指标,为了避免不同数量级的数字之间相互影响,所以需要对采集到的历史样本集进行归一化处理,并且归一化能有效提高分类器的分类准确率。接着通过对采集的高维数据进行降维处理,提取数据的主要特征分量,得到降维空间F的特征向量;其次,对降维空间F的特征向量进行分类,得到训练好的分类器及最优分类平面S1;然后利用预测模型对降维空间F进行预测,可以得到系统下一时刻的运行状态,并得到运行状态所构成的平面S2;最后,将预测到的系统状态所构成的平面S2与最优分类平面S1进行比较,如果系统状态构成的平面与最优分类平面的距离大于阈值β,则进行预警;判断系统是否出现异常,然后根据更新规则对分类器进行更新,如果判定系统状态为异常,则将异常分类样本回溯到历史样本集,并随机去掉当前历史样本集中正常样本,缩小历史样本集的空间,缩短分类器更新时间。

具体包括以下步骤:

S1:对带状态流计算系统的运行状态进行实时监控,采集系统运行时的特征属性E,并将这些特征属性存储在历史样本集中;

S2:预处理原始系统特征属性数据,经过归一化处理后,将原始系统特征属性数据按运行状态分类,分别遍历所有存储系统原始高维性能指标数据的样本,将这些样本数据作为输入进行降维处理,提取特征属性数据的主要特征分量,输出结果为降维空间F的特征向量;

S3:对降维空间F的特征向量进行分类处理。将降维空间F的特征向量作为SVM分类器的输入,输出最优分类平面S1,得到训练好的SVM分类器。

S4:预测系统下一时刻运行状态,利用马尔科夫模型计算历史样本集的转移概率并得到转移矩阵,然后统计初始时刻数据的分布状况并对系统下一时刻运行状态进行预测;

S5:根据马尔科夫预测模型预测系统下一时刻运行状态,输出系统状态所构成的平面S2

S6:对预测到的系统状态所构成的平面S2与由分类器得到的最优分类平面S1进行比较,如果系统状态构成的平面与最优分类平面之间的距离小于阈值β,则进行预警;

S7:更新历史样本集,反馈系统出现异常的样本数据,如果判定系统状态为异常,则将异常样本回溯到历史样本集,并随机去掉当前历史样本集中正常样本,缩小历史样本集的空间,缩短分类器更新时间。

本发明是对采集的带状态流计算系统的性能数据进行异常检测,然后对高维系统性能数据进行降维处理,不仅实现了降维的目的,减少特征向量的维数,而且缩短了训练时间,满足非线性特征的需求,并且计算量并没有随着维数升高而增加;本发明通过提出一种带状态流计算系统中的异常监控及预测方法,有效地利用海量带标签样本数据提高分类器的准确率,并将异常分类结果回溯到历史样本集中对分类器进行更新,提高了分类效率,在实际中更加具有应用价值。

图2为本发明中高维空间数据进行降维处理的流程图。首先将监控到的系统性能属性E利用核函数抽象到高维空间中;其次将性能属性E构成的矩阵进行归一化处理;再次按照距离、密度等方式对高维特征空间进行随机划分,得到n个子空间;最后对划分后的n个子空间数据集进行降维处理,得到多个低维空间,判断由不同划分方式产生的低维空间,相差在给定的误差范围内,则得到最终的降维空间F。

图3为本发明中带状态流式计算系统所用的状态机异常判断的流程图,首先监控采集状态机处理速度,建立时间为T的数据窗口。然后筛选连续1分钟状态机处理速率低于20%的进程数据进入待处理数据窗口。每发生一次上述事件,警告级别加1,如果警告级别超过10次,系统发出告警。如果T时刻内,状态机没有达到错误级别,认为系统正常,数据过期。

在上述具体实施例中,具体数据处理和预测模型的处理流程具体如下:

S31:对带状态的流计算系统进行监控,采集m条样本记录(每条记录有n个属性),将m条样本记录分为训练集X;

S32:将X中的数据利用降维训练得到维度约简后的训练集X′;

S33:将训练集X′代入分类器中进行分类训练,得到最优分类平面S1

S34:根据系统当前运行状态得到转移概率矩阵,利用初始时刻的运行分布状况建立预测模型,可以预测系统下一时刻运行状态,并得到运行状态构成的平面S2

S35:将预测到的系统状态所构成的平面S2与最优分类平面S1进行比较,如果系统状态构成的平面S2与最优分类平面S1的距离小于阈值β,则进行预警。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1