一种基于朴素贝叶斯分类技术的动态监控间隔调整方法
【技术领域】
[0001] 本发明涉及云计算智能监控系统技术领域,尤其涉及一种基于朴素贝叶斯分类技 术的动态监控间隔调整方法。
【背景技术】
[0002] 云监控伴随着整个云计算系统的运行,执行的操作不仅仅是添加删除监控目标, 获取数据这些简单的操作,当云监控获取数据之后,还需要对获取的数据做出某些处理操 作,让用户可以针对自己的需求自定义数据处理行为。监控的历史数据可以看成是系统信 息的一种日志数据,可以利用日志分析来获得系统的运行历史状态和趋势,从而做出进一 步的决策。
[0003] 云计算系统通常是一个大规模的系统,以OpenStack为例,系统中各个组件可以 看成是独立的模块,模块与模块之间有着频繁的信息交互。云计算系统中信息的交互都伴 随着网络通信,网络带宽资源在云计算系统中是很重要的资源。在上文介绍的云监控收集 客户端度量信息的过程中,无论是在Pull还是Push方式的情况下,需要定义一个监控时间 粒度,定时有效稳定地获取监控的数据。在获得详细监控数据的同时,需要保证监控系统的 资源利用的高效性,因此需要一个权衡的策略来获得有效监控数据的同时,使系统的资源 消耗率降低。
[0004] 云环境中多变的系统环境特性,传统的静态监控模式已经不能满足新环境的需 求,云监控需要能够动态地调整系统的监控时间间隔,在给系统带来更小的负担的同时,能 够保证系统的有效监控和稳定的运行。监控时间间隔配置在静态文件中使其不能在运行时 做出改变,在系统运行的过程中,客户端和服务端始终会按照这个配置信息运行,Agent会 定时在客户端节点上运行收集信息,服务端和客户端之间也会按照配置的时间间隔进行数 据通信。因此当监控的度量数据指标很大的时候,将会给监控目标节点带来一定的性能负 担。对于监控系统的设计架构,考虑到可扩展性的设计,具体的监控任务通常都由插件来执 行。当频繁的在客户节点上运行监控插件的时候,如果有的插件在运行时会消耗一定的系 统资源,如在获取JVM运行数据,或者Tomcat之类的数据时,需要对获取数据做一定的分 析,这样给客户端节点带来的负担是不能忽视的。
[0005] 云监控能够动态的改变自身系统的配置,能够在运行时适应当前特定负载来进行 配置文件的调整。
【发明内容】
[0006] 针对上述技术缺陷,本发明的目的在于针对传统监控软件的固定监控时间间隔模 型存在信息冗余和资源利用低下等问题,在云监控系统中加入运行时动态改变系统监控配 置功能,提出了一种基于朴素贝叶斯分类技术的动态监控间隔调整方法,根据历史监控信 息对当前状态做出趋势预测,并且根据预测的结果来判定系统状态,以此来动态调整的监 控时间的监控,能够有效的调整监控间隔,优化信息传输频率,从而达到系统的高效运行。
[0007] 为了解决上述技术问题,本发明的技术方案如下:
[0008] -种基于朴素贝叶斯分类技术的动态监控间隔调整方法,包括如下步骤:
[0009] 1. 1)通过监控系统客户端Agent从监控目标节点主机获取主机的监控信息,选取 CPU使用率和内存使用率信息;
[0010] 1. 2)对获取的监控信息按照时间戳、主机、监控数据值的方式进行存储,并且对数 据进行预处理,剔除异常无效数据;
[0011] 1. 3)设定分类特征集合f,其中包括了四个特征信息:CPU使用率,CPU变化率,内 存使用率,内存变化率四个特征值,设定分类器中的类别集合,包括对监控间隔调整的5种 不同行为类别;根据监控目标特征选取合理数据集合作为初始化样本,将初始化样本带入 分类器中进行训练;计算的值包括各类别的统计数量,总类别样本数量,各特征值在不同类 别下的统计值;统计以上数据用来计算朴素贝叶斯模型中的每个类别的先验概率P(c),特 征值属于某一类别的概率P(fi|c);当对当前时间点监控信息进行分类时,将监控数据代 入分类器进行分类,得到分类结果;
[0012] 1. 4)通过步骤1. 3)得到的对当前时间点监控信息的分类结果,对监控间隔采取 相应的改变;设定监控间隔的粒度范围大小为1~20,初始化监控间隔定义为5,根据分类 得到的结果可以对监控间隔采取增大1,增大2,不变,减小1,减小2的行为,但最大的监控 间隔不能超过20 ;通过监控系统动态配置功能改变监控间隔,并进入下一个监控周期,监 控间隔变化行为的操作可以定义为i个监控间隔周期,每次做出分类操作是可以将前i个 监控点数据加入分类器中进行迭代训练;
[0013] 1. 5)通过步骤1. 4)进行迭代后样本规模会不断扩大,选取一定大小阈值控制样 本规模,当分类器得到较好稳定效果后,将样本保存为常用训练样本数据。
[0014] 本发明的有益效果在于:本发明所提供的方法能够应对云计算复杂环境中的监控 问题,提供精确高效的监控解决方案,提高监控系统运行效率,给云监控带来的优势主要由 以下几点:
[0015] 1?动态改变监控目标配置
[0016] 2.适应监控目标运行过程中负载变化,动态改变监控运行间隔
[0017] 3.相对于传统间隔优化方法和其他动态改变方法有更高的精确性
[0018] 4.在系统状态中加入资源变化率因素,更合理的预测监控行为
[0019] 5.有效的减少了冗余监控信息获取行为,使监控系统高效运行能够适应云计算环 境中弹性伸缩引起的负载变化,有效调整监控间隔。
【附图说明】
[0020] 图1为朴素贝叶斯分类中的类别集合定义;
[0021] 图2为监控间隔调整结构图;
[0022] 图3为动态监控间隔调整流程图。
【具体实施方式】
[0023] 下面将结合附图和具体实施例对本发明做进一步的说明。
[0024] 本发明是利用监控信息中的基础数据:CPU和内存信息,对系统状态进行预测分 类,方法设计了图2的监控间隔调整结构,根据分类结果来执行相应的监控间隔调整操作。 下面首先给出了一些相关的定义。
[0025] CPU使用率和内存使用率,因为这两项指标在系统中存在着多种类型的数据,例如 使用linux系统中的top指令显示的信息中,CPU-栏中的指标主要包括如下:用户模式 (user),系统模式(system),空闲使用率(idle),I/O等待中(iowait)等。Top指令中的内 存数据一栏显示有total(内存总量),used(已使用的),free(空闲可用的),buffers(缓 存内存大小)等选项。
[0026] 本发明定义CPU和内存使用率为:
[0027]
[0028] 即系统中所有消耗的CPU时间都计入CPU使用率之中,只有空闲部分作为可用CPU 资源,内存则考虑空闲的可用资源,其余部分都考虑为已使用。
[0029] 朴素贝叶斯概率樽塑是一个条件概率模型,其最基本的形式如公式所示:
[0030]
[0031] 其中P(A|B)表示在已知在事件B发生的情况下,时间A发生的概率,这个公式是 整个朴素贝叶斯模型的核心模型。首先定义待分类项的特征值,已经定义了CPU使用率和 内存使用率,在考虑系统运行趋势的时候值的的变化差值也应该加入,加入变化率两项:
[0032]
[0033]
[0034] 定义特征向量即出现的待分类项f= {C_,Cdelta,M_,MdeltJ。对于监控时间间隔 来说,上面特征向量对于其产生的影响都是相对独立的,因为任意特征的分类值如果是要 增大的情况,监控时间间隔针对此服务就应该增大,否则对于这类资源监控健康状况将得 不到保证。
[0035] 定义类别集合:C= {-2, -1,0, 1,2},C集合中的数值正数表示增大n个监控时间 单位,负数表示减小n个时间单位,而0表示保持监控时间粒度不变。
[0036] 将上述的定义应用到贝叶斯定理则得到下述方程:
[0037]
[0038] 其中c表示了类别集合C中的每一项,即当某个特征f出现时计算其被分类为某 一类别c的概率大小。p(c),{cGC}则表示了在训练样本中每个类别c的