一种软件老化流式监测系统及其监测方法与流程

文档序号:16998888发布日期:2019-03-02 01:35阅读:410来源:国知局
一种软件老化流式监测系统及其监测方法与流程

本发明属于分布式系统内存的实时监测技术,具体涉及一种针对内存的软件老化流式监测系统及其检测方法。



背景技术:

目前分布式系统监测工具只实现了简单的数据分析方法,其通常采用基于阈值的异常预警或者基于统计的异常预警,对于稍微复杂的异常情况,误警率和漏警率都非常高。此外对于分布式系统中的软件老化问题,传统软件老化的分析方法难以应对分布式系统每天tb级的流式数据。



技术实现要素:

发明目的:本发明提供一种可结合针对内存的软件老化监测方法和流式处理技术,实现对分布式系统的内存软件老化监测的软件老化流式检测系统。

技术方案:所述的软件老化流式监测系统包括多个被监测主机节点,多个数据收集模块、分布式消息队列模块、实时异常发现模块、软件老化预测模块以及展示模块;其中,在每一被监测主机节点上设置有数据收集模块,用于收集该节点上的内存数据;分布式消息队列模块接收来自各个被监测主机节点上的数据收集模块发送的内存数据;实时异常发现模块从分布式消息队列模块中获取流式内存数据,并使用桶算法实时地对其进行分析,判断对应的被监测主机节点的内存是否出现过载,并将处理结果通发送给展示模块;软件老化预测模块从分布式消息队列模块中获取历史内存数据,用时间序列分析方法预测各对应被监测主机节点未来一段时间的内存数据,预估系统出现失效或异常的时间,并将结果数据发送给展示模块。

进一步,所述的展示模块将从分布式消息队列模块读取的实时内存数据和分别从实时异常发现模块和软件老化预测模块接收的处理结果数据,通过web向用户展示各个被监测主机节点的实时监测视图、异常报告视图和预测数据视图。

进一步,所述的数据收集模块将内存数据通过restfulapi接口以json格式发送至分布式消息队列模块。

进一步,所述的实时异常发现模块的处理结果和软件老化预测模块的结果数据以websocket发送方式发送给展示模块。

进一步,所述的数据收集模块收集的内存数据包括:物理内存、虚拟机内存、jvm内存和服务使用内存。

本发明还给出一种软件老化流式监测系统的监测方法,监测步骤如下:

(1)数据收集模块收集各被监测主机节点上的内存数据,;

(2)分布式消息队列模块接收来自各个被监测主机节点上数据收集模块发送的内存数据;

(3)实时异常发现模块从分布式消息队列模块中获取流式内存数据并使用桶算法实时地对其进行分析,判断对应的被监测主机节点的内存是否出现过载,并将处理结果通发送给展示模块;

(4)软件老化预测模块从分布式消息队列模块中读取历史内存数据,用时间序列分析方法预测各对应节点未来一段时间的内存数据,预估系统出现失效或异常的时间,并将结果数据发送给展示模块;

(5)展示模块从分布式消息队列模块中读取的各个主机节点的实时内存数据以及分别从实时异常发现模块和软件老化预测模块接收处理结果数据,通过web向用户展示分布式系统各个主机节点的实时监测视图、异常报告视图和预测数据视图。

有益效果:本发明所述的软件老化流式监测系统,通过在分布式系统中主机节点,设计数据收集模块收集各个主机节点的内存信息,并将信息上传至消息队列模块,之后根据消息队列模块中的内存数据,判断各个主机节点中内存是否过载,并对各主机节点的失效和异常时间做出预测,运维人员由展示模块获取数据处理结果。

附图说明

图1是本发明的软件老化流式监测系统架构图;

图2是本发明的软件老化流式监测系统的监测方法流程图;

图3是本发明实施例提供的实时异常发现模块的具体算法实现流程图;

图4是本发明实施例提供的软件老化预测模块的具体算法实现流程图。

具体实施方式:

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

图1示出了本发明设计的一种针对内存的软件老化流式监测系统,该系统具体包括多个被监测主机节点11、多个数据收集模块12、分布式消息队列模块13、实时异常发现模块14、软件老化预测模块15以及展示模块16。其中在各个被监测主机节点11上分别布置数据收集模块12,该收集模块用于收集该节点上的流式内存数据,具体包括物理内存、虚拟机内存、jvm内存和服务使用内存。并将数据通过restfulapi接口以json格式发送至分布式消息队列模块13;

分布式消息队列模块13用于接收来自各个被监测主机节点11上数据收集模块12发送的流式内存数据;

实时异常发现模块14接收从分布式消息队列模块13中的json格式的流式内存数据并使用桶算法实时地对其进行分析,判断对应的被监测主机节点11的内存是否出现过载,并将处理结果通过websocket发送给展示模块16;

软件老化预测模块15从分布式消息队列模块13中读取json格式的历史内存数据,用时间序列分析方法预测各对应节点未来一段时间的内存数据,预估系统出现失效或异常的时间,并将结果数据通过websocket发送给展示模块16;

展示模块16从分布式消息队列模块13读取json格式的各个主机节点的实时内存数据并分别从实时异常发现模块14和软件老化预测模块15接收处理结果数据,通过web向用户展示分布式系统各个主机节点的实时监测视图、异常报告视图和预测数据视图等。

图2示出了本发明的一种软件老化流式监测系统的监测方法的流程图,具体的检测步骤如下:

步骤s201:数据收集模块收集各主机节点上的内存数据,该数据包括物理内存、虚拟机内存、jvm内存、服务使用内存。

步骤s202:数据集模块将所述的各项内存数据通过restfulapi接口以json格式发送至分布式消息队列模块;即该模块接收来自各个被监测主机节点上数据收集模块发送的流式内存数据;

步骤s203:分布式消息队列模块将获取的json格式的流式内存数据传递给实时异常发现模块,将获取的json格式的历史内存数据传递给软件老化预测模块;同时,将获取的json格式的各个主机节点的实时内存数据传递给展示模块。其中,实时异常发现模块对所接收的流式内存数据使用桶算法实时地对其进行分析,判断对应的被监测主机节点的内存是否出现过载,并将处理结果通过websocket发送给展示模块;老化预测模块对所接收的历史内存数据,用时间序列分析方法预测各对应节点未来一段时间的内存数据,预估系统出现失效或异常的时间;并将结果数据通过websocket发送给展示模块。

步骤s204:展示模块将从分布式消息队列模块中获取的json格式的各个主机节点的实时内存数据以及分别从实时异常发现模块和软件老化预测模块接收的处理结果数据,通过web向用户展示分布式系统各个主机节点的实时监测视图、异常报告视图和预测数据视图等。

在步骤s203中,所述的实时异常发现模块对所接收的流式内存数据使用桶算法的流程如图3所示,其具体算法步骤为:

步骤s301,实时异常发现模块根据分布式消息队列模块中的历史内存数据估计出对应主机节点内存总体服从正态分布,即

步骤s302,分别在数据分布轴上设置k个深度为d的桶,初始时,第i个桶在分布轴上放置的位置xi和桶的当前深度di分别如下所示:

xi=μx+iσx

di=0i=1,2,...,k

步骤s303:以数据长度n为单位,每当实时异常发现模块从分布式消息队列模块中获取某一被监测主机节点的最新内存数据达到n个时,将这n个数据的平均值与数据分布轴上左侧第一个未满的桶(不是一般性,设为桶j,满足dj<d)的位置xj相比较,若则桶j的当前深度di加1,若则桶j的当前深度di减1;若桶j的当前深度dj<d,则操作桶(j-1),若桶j的当前深度dj=d,则操作桶(j+1);

步骤s304:若设置的k个桶均已放满,即

di=d

i=1,2,...,k

则判定被测指标出现异常;循环执行上述步骤s301~s304。

在步骤s203中,所述的老化预测模块对所接收的历史内存数据进行预测各对应节点未来一段时间的内存数据的算法流程如图4所示,其具体算法步骤为:

步骤s401:软件老化预测模块从分布式消息队列模块中读取各个主机节点的历史内存数据,并以每个主机节点为单位,将历史内存数据转换为相应的时间序列数据;

步骤s402:根据得到的时间序列数据,使用经验模态分解法(emd)将时间序列数据分解为若干个imf序列数据以及一个残差序列数据;

步骤s403:使用arima算法分别对每个imf序列数据进行预测;使用二次多项式对残差序列数据进行预测;

步骤s404:将s403中得到的各个imf和残差序列的预测结果进行求和,得到最终的预测结果。

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