一种基于BCC‑KNN的云计算中心智能运维方法及系统与流程

文档序号:12278185阅读:380来源:国知局
一种基于BCC‑KNN的云计算中心智能运维方法及系统与流程

本发明涉及计算机技术领域,尤其涉及一种基于BCC-KNN的云计算中心智能运维方法及系统。



背景技术:

NIST定义云计算是一个模型,用于随时随地的按需快速的通过网络访问一个可配置的计算资源(网络、服务器、存储、应用程序和服务)共享池。计算资源只需要很小的管理代价和与服务提供商较少的交互便能够快速的获取和释放。云计算模型由5个基本特征、3种服务模型、4种部署模型组成。

基本特征有按需自服务、资源池化、广泛的网络连接方式、快速的弹性扩展、可计量的服务。

按需自服务是指用户可以自主地根据需要单向地准备计算资源,不需要与服务提供商进行交互。

资源池化是指服务提供者将计算资源汇集到资源池中(类型包括存储、处理、内存、带宽、和虚拟机等),通过多租户模式共享给多个消费者,根据消费者的需求对不同的物理资源和虚拟资源进行动态分配或重分配。以用户为中心的界面使云基础架构能够实现应用对用户的透明性,用户基于自已的需求访问服务而不用考虑服务是在哪里提供。

广泛的网络连接方式是指通过标准化,云计算提供的资源能够被各种异构的瘦终端或特定的客户端,比如手机、平板电脑、工作站所访问。

快速的弹性扩展是云计算的一个很重要的特征,因为资源池化和快速弹性,用户能够获取的资源似乎是无穷无尽的,并且可以在任何时候获取任何数量的资源。弹性的重要性在于能够按需分配资源,应用程序驻留在可以快速进行水平扩展的数据中心中,即云服务的规模可快速伸缩,以自动适应业务负载的动态变化。用户使用的资源同业务的需求相一致,避免了因为服务器性能过载或冗余而导致的服务质量下降或资源浪费。值得注意的是,资源的扩展必须是细粒度并且足够快速才能使计算资源跟计算负载很好的匹配。因为服务器的峰值工作量比平均值要高3-10倍,所以传统的数据中心的服务器利用率大概仅在10%到30%左右。为了保证服务质量,服务器要按峰值工作量需求来部署,这就必然导致了非峰值时间资源的浪费,而且负载的波动性越强浪费的资源就越多。

可计量的服务是指云系统利用一种计量功能来自动调控和优化资源利用,根据不同的服务类型按照合适的度量指标进行计量、监控和报告资源使用情况,提升服务提供者和服务消费者的透明度。

然而,现在云计算中心的规模过大,传统环境中的低频异常在云计算中心就会因规模化而变成高频异常,并且许多的异常会重复出现。因此,若是不能利用有效的方式而是要人为负责大量异常的处理,这就会导致了较高的同种异常人工重复处理成本,即异常发生并处理后,当再次出现时人工还要重复处理过程。

另外,云应用本身在运行过程中会产生相关的状态数据,这些数据会指导运维人员对异常进行判定,但大量的云应用产生的海量的运行状态数据会导致运维人员要花费大量的时间和精力去分析这些数据来定位异常并判定其类型,延长了异常的修复时间。

最后,由于传统环境下的维护管理的手段、系统、模型的设计都不是面向云计算中心的,所以许多的维护任务不能用简单的步骤一次完成,这就迫使云管理者要投入大量人力资源,导致较高的运营费用。



技术实现要素:

为了解决上述技术问题,本发明的目的是提供一种能快速处理异常情况,且能降低运营成本的一种基于BCC-KNN的云计算中心智能运维方法及系统。

本发明所采用的技术方案是:

一种基于BCC-KNN的云计算中心智能运维方法,包括以下步骤:

A、检测所有服务的运行状态是否发生异常,并对发生异常的服务采集其运行状态数据;

B、对采集得到的运行状态数据进行处理并将其利用BCC-KNN算法进行分类处理;

C、根据分类后得到的异常类别从方案库调用相应的解决方案并执行。

作为所述的一种基于BCC-KNN的云计算中心智能运维方法的进一步改进,所述步骤A包括:

A1、对所有服务的运行状态数据进行循环检测,判断其是否发生异常,若是,则执行步骤A2;否则进行执行步骤A1;

A2、对发生异常的服务进行运行状态数据的采集。

作为所述的一种基于BCC-KNN的云计算中心智能运维方法的进一步改进,所述步骤B包括:

B1、对采集得到的运行状态数据进行筛选处理;

B2、将处理后的运行状态数据转换成符合BCC-KNN算法的数据格式;

B3、对转换格式后的运行状态数据利用BCC-KNN算法进行实时分类处理,得出服务对应的异常类别。

作为所述的一种基于BCC-KNN的云计算中心智能运维方法的进一步改进,所述步骤B3包括:

B31、将存储的实例集按照异常类别进行划分聚簇;

B32、计算各聚簇内所有实例的数据的均值,得到异常聚簇中心;

B33、对未分类的运行状态数据与各异常聚簇中心进行相似度计算,将其归类至与其相似度最高的异常聚簇中心所在的聚簇,并将该聚簇的异常类别作为其对应的异常类别,从而得到该服务对应的异常类别。

作为所述的一种基于BCC-KNN的云计算中心智能运维方法的进一步改进,所述步骤C包括:

C1、根据分类后得到的异常类别从方案库调用相应的解决方案;

C2、根据需要调用的解决方案,生成其自动化执行脚本,并执行。

作为所述的一种基于BCC-KNN的云计算中心智能运维方法的进一步改进,所述步骤C2后还包括:

C3、检测脚本执行后该异常是否处理成功,若不成功,则发送警报通知工作人员进行人为处理;

C4、根据分类后聚簇的运行状态数据,对聚簇的异常聚簇中心进行更新。

本发明所采用的另一技术方案是:

一种基于BCC-KNN的云计算中心智能运维系统,包括:

异常状态采集模块,用于检测所有服务的运行状态是否发生异常,并对发生异常的服务采集其运行状态数据;

异常检测模块,用于对采集得到的运行状态数据进行处理并将其利用BCC-KNN算法进行分类处理;

异常处理模块,用于根据分类后得到的异常类别从方案库调用相应的解决方案并执行。

作为所述的一种基于BCC-KNN的云计算中心智能运维系统的进一步改进,所述异常状态采集模块包括:

运行状态检测模块,用于对所有服务的运行状态数据进行循环检测,判断其是否发生异常,若是,则执行数据采集模块;否则进行执行运行状态检测模块;

数据采集模块,用于对发生异常的服务进行运行状态数据的采集。

作为所述的一种基于BCC-KNN的云计算中心智能运维系统的进一步改进,所述异常检测模块包括:

数据处理模块,用于对采集得到的运行状态数据进行筛选处理;

数据转换模块,用于将处理后的运行状态数据转换成符合BCC-KNN算法的数据格式;

数据分类模块,用于对转换格式后的运行状态数据利用BCC-KNN算法进行实时分类处理,得出服务对应的异常类别。

作为所述的一种基于BCC-KNN的云计算中心智能运维系统的进一步改进,所述异常处理模块包括:

处理方案生成模块,用于根据分类后得到的异常类别从方案库调用相应的解决方案;

自动化执行模块,用于根据需要调用的解决方案,生成其自动化执行脚本,并执行。

本发明的有益效果是:

本发明一种基于BCC-KNN的云计算中心智能运维方法通过对异常情况依次进行检测、判定和自动化解决执行的过程,能对云服务发生的异常情况进行智能自主处理,有效减少人为的介入,提高异常处理的速度,实现提高服务的可用性和减少工作人员的工作量的目的,大大减少运营成本。

本发明的另一个有益效果是:

本发明一种基于BCC-KNN的云计算中心智能运维系统通过异常状态采集模块、异常检测模块和异常处理模块对异常情况依次进行检测、判定和自动化解决执行的过程,能对云服务发生的异常情况进行智能自主处理,有效减少人为的介入,提高异常处理的速度,实现提高服务的可用性和减少工作人员的工作量的目的,大大减少运营成本。

附图说明

下面结合附图对本发明的具体实施方式作进一步说明:

图1是本发明一种基于BCC-KNN的云计算中心智能运维方法的步骤流程图;

图2是本发明一种基于BCC-KNN的云计算中心智能运维系统的模块方框图。

具体实施方式

参考图1,本发明一种基于BCC-KNN的云计算中心智能运维方法,包括以下步骤:

A、检测所有服务的运行状态是否发生异常,并对发生异常的服务采集其运行状态数据;

B、对采集得到的运行状态数据进行处理并将其利用BCC-KNN算法进行分类处理;

C、根据分类后得到的异常类别从方案库调用相应的解决方案并执行。

作为所述的一种基于BCC-KNN的云计算中心智能运维方法的进一步改进,所述步骤A包括:

A1、对所有服务的运行状态数据进行循环检测,判断其是否发生异常,若是,则执行步骤A2;否则进行执行步骤A1;

A2、对发生异常的服务进行运行状态数据的采集。

其中,对机器或服务进行检测,若发生异常则采集异常发生时的运行状态数据。这里需要预先对正常情况数据进行设定范围,超过则判定为异常,比如对某项服务要求是对一个请求的响应时间不能超过3秒,因此编写的检测工具就可以是对访问时间进行计时,超过三秒即认为该服务发生异常,然后对该服务进行循环检测,当发生异常时(相应时间超3秒)便采集该服务的运行状态数据。

作为所述的一种基于BCC-KNN的云计算中心智能运维方法的进一步改进,所述步骤B包括:

B1、对采集得到的运行状态数据进行筛选处理;

B2、将处理后的运行状态数据转换成符合BCC-KNN算法的数据格式;

B3、对转换格式后的运行状态数据利用BCC-KNN算法进行实时分类处理,得出服务对应的异常类别。

BCC-KNN算法主要有三个优点,第一点在于在存在倾斜类分布的情况下仍然具备较好的分类性能,第二点在于改进了传统KNN需要存储整个训练集的缺点,只需存储由训练集转换的数据结构,大副降低存储代价并提高分类的实时性,第三点在于BCC-KNN支持增量学习,能随着异常数据的不断产生自主进化,持续的适应新的环境。

进一步,所述对采集得到的运行状态数据进行筛选处理包括处理无效值、缺失值并去除不完整的数据、错误的数据、重复的数据使得注入处理系统的数据量降低,加快数据的处理速度进而提升处理效率。

进一步,将处理后的运行状态数据转换成符合BCC-KNN算法的数据格式包含将数据转换成其它合适的数值表示方式,或者对数据进行归一化处理,使得每个属性的取值范围不会相差过大,并且数据的每个属性都是可计算的。

作为所述的一种基于BCC-KNN的云计算中心智能运维方法的进一步改进,所述步骤B3包括:

B31、将存储的实例集按照异常类别进行划分聚簇;

B32、计算各聚簇内所有实例的数据的均值,得到异常聚簇中心;

B33、对未分类的运行状态数据与各异常聚簇中心进行相似度计算,将其归类至与其相似度最高的异常聚簇中心所在的聚簇,并将该聚簇的异常类别作为其对应的异常类别,从而得到该服务对应的异常类别。

作为所述的一种基于BCC-KNN的云计算中心智能运维方法的进一步改进,所述步骤C包括:

C1、根据分类后得到的异常类别从方案库调用相应的解决方案;

C2、根据需要调用的解决方案,生成其自动化执行脚本,并执行。

进一步,解决方案的生成调用是利用相对简单的异常处理方案组合而成,也就是说一个异常解决方案是由很多个子方案构成,这样可以增加方案的灵活性和重用性。解决方案需要按照预先定义好的格式进行编写,执行时可以根据机器的环境自动生成相对应的脚本。

作为所述的一种基于BCC-KNN的云计算中心智能运维方法的进一步改进,所述步骤C2后还包括:

C3、检测脚本执行后该异常是否处理成功,若不成功,则发送警报通知工作人员进行人为处理;

C4、根据分类后聚簇的运行状态数据,对聚簇的异常聚簇中心进行更新。

进一步,当一个新异常出现时,已存的方案不能很好的进行处理导致处理失败,此时就需要通知工作人员进行人为编写解决方案并放入方案库,更新异常类别和方案的对应关系,同时将新的异常状态加入训练集用以提高该类的预测准确率,进而当该异常状态再次出现时就能够自主处理而不用人为再次参与。

参考图2,本发明一种基于BCC-KNN的云计算中心智能运维系统,包括:

异常状态采集模块,用于检测所有服务的运行状态是否发生异常,并对发生异常的服务采集其运行状态数据;

异常检测模块,用于对采集得到的运行状态数据进行处理并将其利用BCC-KNN算法进行分类处理;

异常处理模块,用于根据分类后得到的异常类别从方案库调用相应的解决方案并执行。

作为所述的一种基于BCC-KNN的云计算中心智能运维系统的进一步改进,所述异常状态采集模块包括:

运行状态检测模块,用于对所有服务的运行状态数据进行循环检测,判断其是否发生异常,若是,则执行数据采集模块;否则进行执行运行状态检测模块;

数据采集模块,用于对发生异常的服务进行运行状态数据的采集。

作为所述的一种基于BCC-KNN的云计算中心智能运维系统的进一步改进,所述异常检测模块包括:

数据处理模块,用于对采集得到的运行状态数据进行筛选处理;

数据转换模块,用于将处理后的运行状态数据转换成符合BCC-KNN算法的数据格式;

数据分类模块,用于对转换格式后的运行状态数据利用BCC-KNN算法进行实时分类处理,得出服务对应的异常类别。

作为所述的一种基于BCC-KNN的云计算中心智能运维系统的进一步改进,所述异常处理模块包括:

处理方案生成模块,用于根据分类后得到的异常类别从方案库调用相应的解决方案;

自动化执行模块,用于根据需要调用的解决方案,生成其自动化执行脚本,并执行。

其中,本发明中的BCC-KNN算法核心思想是将训练实例集转换成异常聚簇中心集。一个异常类别包含许多的实例,每个实例有自已的具体属性数据,我们依据异常类别将实例进行划分,即具有相同异常类别的所有实例属于同一个聚簇。

当HTTP数据集按异常类别划分后,同一个划分内的实例类别相同,因此每个类别可以看作是一个聚簇。因为传统KNN算法要和每个全部训练集实例进行相似度运算,这就有很大的计算开销并且要将整个训练集存储起来,所以我们若能将划分后的聚簇用一个模型表示,那么就能将训练数据集转换成了模型,我们采用的模型就是计算聚簇内的所有的实例的均值,并将这个均值作为聚簇的中心,这样每个聚簇就只需要一条记录即可表示,存储量大大降低。有了异常聚簇中心集后,就要对未分类的实例进行分类,算法将未分类的实例与转换后的异常聚簇中心进行相似度计算,而不是和整个训练集计算相似度,然后将相似度最高的聚簇中心的异常类别作为实例的类别。具体的说就是利用KNN算法的思想,将未分类的实例与每个聚簇中心进行相似度计算。若相似度采用欧式距离,那么在和所有的聚簇中心依次计算距离后,将与其距离最近的聚簇中心所在的异常类别作为该实例的分类结果。因为算法的分类采用相似度计算,并且选取相似度最高的聚簇中心作为实例的分类结果,即K的取值为1,这就降低偏斜类分布的影响。

另外,算法将训练集转换成异常聚簇中心,使得算法只需与异常聚簇中心而不是和整个训练集进行相似度计算,这样不但使得分类的速度大大加快降低时间复杂度,同时也降低了空间复杂度,因为同样只需要存储聚簇中心而不是整个训练集,使得所有的异常聚簇中心可以全部放入内存,有利于聚簇中心的快速更新,此处的重要性在于时间和空间复杂度的降低使得算法能够大幅提高分类的实时性。

因为BCC-KNN将数据集转换为异常聚簇中心集,所以为了实现增量式学习算法要能根据新产生异常实例来调整异常聚簇中心集,将新知识与旧知识结合,使得异常聚簇中心集能随着新知识的加入不断调整适应新的环境。同时为了防止过期的旧知识对新环境的处理造成影响,还要丢弃过期的部分聚簇中心值。当产生异常实例时,异常的类别只有新的异常和已经发生异常两种类型。针对这两种类型的异常算法的增量学习策略如下:

若异常是已经发生过的,那么就将该异常实例划分到该异常类别对应的聚簇中,然后基于该实例与聚簇中心重新计算聚簇中心。

若异常是新的异常,那么此时就将该异常实例划分为一个新的聚簇,然后将该实例作为聚簇中心。

存储了异常聚簇中心集后,异常实例产生后我们要对异常聚簇中心进行更新,我们用(Anew,Bnew,Cnew,Nnew…,class)向量来描述新产生的HTTP数据和异常的类别正确对应,具体为(0.75,0.78,0.79,0.29,0,0.77,负载过高),记为(VCTnew,class)。首先我们判定class的值,因class的值“负载过高”能在聚簇列别中找到,就说明产生的异常实例是已经发生过的,那么直接将该异常实例与其异常类别对应的聚簇中心进行平均值计算。负载过高对应的聚簇中心向量CLUcenter进行平均值计算,新中心向量记为NEWCLUcenter,因此计算公式如下:

若异常实例所属的异常类别是第一次出现,我们同样用(VCTnew,class)来描述,具体的数据与异常类别对应为(0.8,0.1,0.1,0,0,0,配置错误),即其class的值为配置错误。由于异常聚簇中心集中就没有配置错误类别对应的聚簇条目,因此可知该异常类别是第一次发生,所以我们要将该异常实例划分到一个新的聚簇中,聚簇对应的类别就是配置错误,而实例的聚簇中心NEWCLUcenter就初始化为(VCTnew,class)。

通过前面的描述,可知算法能够根据新产生的异常实例不断调整异常聚簇中心集,但是为了防止旧数据对利用新知识分类这个过程的影响,算法会丢弃过期的数据,算法定义一个固定时间段,这也是数据的有效期,那么随着时间的流逝,超过有效期的数据就会被丢弃,这样就使得异常聚簇中心集总是能够持续的适应最新的环境。

由于我们的聚簇中心是计算该异常类别下所有实例的平均值,因此,为了删除过期的数据,我们给异常聚簇中心集中的每个数据条目一个时间戳,然后将时间戳在有效期内的子聚簇中心组合共同来计算平均值。简单说就是聚簇中心由几个子中心构成,每个子中心都有自己的时间戳,随时间流逝,过期的时间戳标识的子聚簇中心就被删除,不能再被用作生成聚簇中心。

比如我们把过期时间限定为三个月,以月为单位删除旧数据,那么我们可以将每个月作为一个子聚类中心,因此就有3个子聚簇中心,假设当前月为0,上个月为1,上上个月为2。实际的聚簇中心是由三个子聚簇中心算出的,我们用CLU0sub-center来表示时间戳为0的条目,CLU1sub-center来表示时间戳为1的条目,CLU2sub-center来表示时间戳为2的条目,并假设我们用(中心属性Areal,中心属性Breal,中心属性Creal…)向量来表示负载过高异常类别的聚簇中心,记为CLUreal-center,而这个聚簇中心是真正用来计算相似度的使用的,那么CLUreal-center计算公式如下;

当时间进入新的月份后,所有新产生的实例都标识为新月份的时间戳,子聚簇中心的初始化过程和新异常类别发生的过程相似,即将新月份内产生的第一个该异常类别的实例作为子聚簇中心,其后的产生的实例与再与该子聚簇中心重新计算均值。接下来要将时间超过三个月的子聚簇中心删除,以多时间戳聚簇中心集为例,当进入新的月份时,每个时间戳的值加1,异常聚簇中心集中的所有时间戳标识大于2的条目应被删除。我们假设进入新月份产生的负载过高异常为(0.73,0.782,0.80,0.22,0,0.76,负载过高)。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

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