基于日志的Web应用系统集群运行状态监测方法及其系统与流程

文档序号:11709980阅读:280来源:国知局
基于日志的Web应用系统集群运行状态监测方法及其系统与流程

本发明涉及web应用系统集群运行状态监测领域,尤其涉及基于日志的web应用系统集群运行状态监测方法及其系统。



背景技术:

随着信息技术飞速发展,各类应用系统不断建设和投运,特别是面向大量用户的提供服务的web应用系统,更是成为各公司企业、学校、组织对内对外提供服务的标准配置。而且,为了保障这些应用服务的高可用性,还会在软硬件设施上提供集群部署方案,让应用系统运行在多个节点上,确保其中一个或者部分节点宕机时,用户仍然能够获得不间断服务。

但是,在诸如关键节点故障、关键组件故障,或者特定系统缺陷被触发等原因,造成系统一个节点无法正常提供服务,在一定条件下,故障范围会从一个节点扩展到几个节点,最终导致整个集群系统崩溃。这样的故障在初期表现为:部分节点性能不良或者故障未得到及时有效处理,之后故障不断扩散,负载会转移到剩余节点,在故障节点达到集群节点一定比例后,负载会迅速集中到剩余节点上,特别是当响应迟缓或者长时间不响应后,用户会反复提交请求,更加大了系统负担,导致剩余节点在很短时间内被拖垮,整个集群崩溃。

因为集群在设计之初就具备的高可用性特性,web应用系统集群崩溃的情况极少发生,但是一旦发生就影响极大,例如:2014年8月发生的“微软云服务azure全球范围宕机”事件,导致全球多个国家和地区无法访问。



技术实现要素:

为了解决上述技术问题,本发明提出一种基于日志的web应用系统集群运行状态监测方法及其系统,它对协助运行维护人员采取应对措施具有重要帮助,可以呈现集群中的状态不良节点及其发展情况。

为了实现上述目的,本发明采用的方案是:

基于日志的web应用系统集群运行状态监测方法,其特征在于,包括步骤:

s1,对请求代理节点和应用集群节点的日志文件进行监测与解析;

s2,根据所述代理节点的日志解析数据,进行请求响应分析;

s3,根据所述应用集群节点的日志解析数据,进行时间关联分析;

s4,根据所述步骤s2与步骤s3的分析结果生成判定规则库;

s5,若步骤s2的分析结果为不良状态则进行告警;若步骤s3的分析结果为不良状态则进行告警。

所述步骤s1包括步骤:s11,从所述请求代理节点的日志文件中,读取并解析各请求串的请求时间、响应时间以及响应状态的数据;s12,从所述应用集群节点的日志文件中,读取并解析稳定的业务特征串记录。

所述步骤s2包括步骤:s21,接收步骤s11中代理节点的日志文件解析数据,进行用户请求响应状态分析和请求响应时间分析;s22,对请求响应串分析结果进行转化,调整各级告警临界值。

所述骤s3包括步骤:s31,接收步骤s12中应用集群节点的日志文件解析数据,进行业务特征串响应时间分析;s32,对业务特征串响应时间分析结果做转化,调整各级告警临界值。

所述步骤s4包括步骤:s41,保存以请求串、业务特征串为单位的节点编号、日期、请求时间、响应时间以及状态的详细记录,同时保存规定间隔时间内的请求串以及业务特征串分析统计数据至判定规则库;s42,保存各节点各告警级别临界值至判定规则库。

步骤s5中所述的告警分为三个级别:提醒级别、预警级别以及警告级别;每个所述级别的提示内容包含:请求数量、不成功响应数量、响应延迟时间、响应延迟时间、节点范围五个方面的信息。

基于基于日志的web应用系统集群运行状态监测系统,包括:

日志监测模块:用于完成对请求代理节点和应用集群节点的日志文件监测;从请求代理日志中,读取并解析各请求串的请求时间、响应时间、响应状态等数据,交给请求响应分析模块;从应用集群节点的日志文件中,读取和解析稳定的业务特征串记录,交给时间关联分析模块;所述请求响应分析模块接收到日志监测模块发送的代理节点日志解析数据后,进行用户请求响应状态分析和请求响应时间分析,并结合判定规则,判断当前节点运行状态,如果为不良状态则将发送指令至分级告警模块;所述请求响应分析模块对请求响应串分析结果进行转化,并调整各级告警临界值,将新的规则记录保存到判定规则库;所述时间关联分析模块接收到所述日志监测模块发送的各个应用集群节点日志解析数据后,进行业务特征串响应时间分析;并根据规则判定库中的判定规则,判断当前节点运行状态,如果为不良状态则发送指令至分级告警模块;所述时间关联分析模块对业务特征串响应时间分析结果做转化,并调整各级告警临界值,将新的规则记录保存到判定规则库;所述判定规则库分别保存以请求串、业务特征串为单位的节点编号、日期、请求时间、响应时间以及状态的详细记录,同时保存规定间隔时间内的请求串、业务特征串分析统计数据,以及所述时间关联分析模块和所述请求响应分析模块设定的各节点各告警级别临界值;所述分级告警模块用于对运行状态进行分级告警。

本发明的有益效果有:

1、获得有效集群状态判定规则。通过持续监测web应用集群用户请求的响应情况,本发明利用状态分析模型和时间分析模型对监测数据进行计算分析,发现和识别历史运行规律,并将其转化为集群运行状态的判定规则,即可用于未来的集群运行状态分析判断。

2、可即时预警集群运行不良状态。本发明在分析学习集群运行状态规律基础上,可将总结的规律应用在集群运行状态判定中,在类似的负载条件下,可以更快发现集群运行是否健康,对不良运行状态给出不同级别告警,提醒运行维护人员采取措施。

3、可呈现集群不良状态分布和发展情况。当集群运行状态不良后,即时获得集群各个节点运行状态,以及运行状态不良状况发展的轨迹,对协助运行维护人员采取应对措施具有重要帮助,本发明实现的系统可以呈现集群中的状态不良节点及其发展情况。

附图说明

图1为总体结构图;

图2为日志检测流程图;

图3为请求响应分析流程图;

图4为时间关联分析流程图。

具体实施方式

为了更好的了解本发明的技术方案,下面结合附图对本发明作进一步说明。

一、系统结构组成

如系统结构图所示,本发明提供了一种实时监测和分析web应用集群运行状态的一种方法,并可对不良运行状态预警。图中顶部虚线框内的web应用集群系统为被监测对象,下半部分虚线框内为本发明的系统模块组成。实现对web应用集群节点日志的监测、分析、识别、状态判定、规律转化、分级告警等功能。具体组成模块说明如下:

(1)日志监测模块

日志监测模块主要完成对请求代理节点和应用集群节点的日志文件监测。从请求代理日志中,读取并解析各请求串的请求时间、响应时间、响应状态等数据,交给请求响应分析模块;从应用集群节点的日志文件中,读取和解析稳定的业务特征串记录,交给时间关联分析模块。

(2)请求响应分析模块

请求响应分析模块主要接收日志监测模块发送的代理节点日志解析数据,进行用户请求响应状态分析和请求响应时间分析,结合判定规则,判断当前节点运行状态,如果为不良状态则告警。请求响应分析模块对请求响应串分析结果进行转化,调整各级告警临界值,将新的规则记录保存到判定规则库。

(3)时间关联分析模块

时间关联分析模块主要接收日志监测模块发送的各个应用集群节点日志解析数据,进行业务特征串响应时间分析。业务特征串响应时间分析需要结合请求响应分析模块的请求响应时间分析结果,进行相关性分析。并根据规则判定库中的判定规则,判断当前节点运行状态,如果为不良状态则告警。时间关联分析模块对业务特征串响应时间分析结果做转化,调整各级告警临界值,将新的规则记录保存到判定规则库。

(4)判定规则库

判定规则库保存集群中各个节点运行状态规则,判定规则分别保存以请求串、业务特征串为单位的节点编号、日期、请求时间、响应时间、状态等详细记录,同时保存每间隔5分钟的请求串、业务特征串分析统计数据,以及时间关联分析模块和请求响应分析模块设定的各节点各告警级别临界值。各节点各告警级别临界值需要人工根据集群运行情况调整设置。

(5)分级告警模块

区别于正常状态,对web应用集群运行状态告警划分为三个级别:提醒级别、预警级别、警告级别,每个级别提示内容包含:请求数量、不成功响应数量、响应延迟时间、响应延迟时间、节点范围五个方面的信息,具体告警规则描述如下:

①提醒级别

请求数量:在短时间(5分钟内)内有冲高的趋势,冲高幅度不超过提醒临界值,之后恢复正常;

不成功响应数量:在短时间(5分钟内)内有增加的趋势,增加幅度不超过提醒临界值,之后恢复正常;

响应延迟时间:在短时间(5分钟内)内有增长的趋势,增长幅度不超过提醒临界值,之后恢复正常;

响应延迟数量:在短时间(5分钟内)内有增加的趋势,增加幅度不超过提醒临界值,之后恢复正常;

节点范围:在短时间(5分钟内)内,发现上述情况节点不固定,总数量少量增加,增加幅度不超过提醒临界值,之后恢复正常;

②预警级别

请求数量:在连续3个5分钟内有持续冲高的趋势,冲高幅度不超过预警临界值;

不成功响应数量:在连续3个5分钟内有持续增加的趋势,增加幅度不超过预警临界值;

响应延迟时间:在连续3个5分钟内有增长的趋势,增长幅度不超过预警临界值;

响应延迟数量:在连续3个5分钟内有增加的趋势,增加幅度不超过预警临界值,之后恢复正常;

节点范围:在连续3个5分钟内,出现上述情况节点数量持续增加,增加幅度不超过预警临界值;

③警告级别

请求数量:在连续3个以上5分钟有持续冲高的趋势,冲高幅度不超过预警临界值;或者在短时间(5分钟内)内数量增加幅度超过告警临界值。

不成功响应数量:在连续3个以上5分钟内有持续增加的趋势,增加幅度不超过预警临界值;或者在短时间(5分钟内)内数量增加幅度超过告警临界值。

响应延迟时间:在连续3个以上5分钟内有增长的趋势,增长幅度不超过预警临界值;或者在短时间(5分钟内)内延迟时间幅度超过告警临界值。

响应延迟数量:在连续3个以上5分钟内有增加的趋势,增加幅度不超过预警临界值,之后恢复正常;或者在短时间(5分钟内)内有数量增加幅度超过告警临界值。

节点范围:在连续3个以上5分钟内,出现上述情况节点数量持续增加,增加幅度不超过预警临界值;或者在短时间(5分钟内)内数量增加幅度超过告警临界值。

以上临界值的产生由请求响应分析模块和时间关联分析模块,根据集群节点历史运行数据产生。

二、系统处理流程

结合总体结构图和系统处理流程图,本发明的流程步骤分为三个大部分,日志监测流程从web应用集群实时采集数据,经过初步的解析处理后,交给请求响应分析流程和时间关联分析流程进行分析处理,如果判定为不良状态(响应失败状态和延迟状态),则做告警处理,并对当前运行状态与历史运行状态进行分析学习,转化为判定规则存入判定规则库。具体流程阐述如下:

1、日志监测流程

日志监测模块主要完成对请求代理节点和应用集群节点的日志文件监测。从请求代理日志中,读取并解析各请求串的请求时间、响应时间、响应状态等数据,交给请求响应分析模块;从应用集群节点的日志文件中,读取和解析稳定的业务特征串记录,交给时间关联分析模块。详细步骤描述如下:

步骤(1)日志监测模块从web应用集群的请求代理节点、应用节点日志文件,以增量形式读取数据,继续下一个步骤。

步骤(2)从增量数据中识别请求特征串或者业务特征串(识别方法采用大数据分词技术和文本聚类分析技术完成,已在我公司历史专利申请范围内,不做为本发明申请的专利要求范围,不详细描述),通过查询判定规则库,判断是否为新特征串,如果是,则增加到判定规则库,否则继续下一个步骤。

步骤(3)依据数据来源,如果来自代理节点日志,判断特征串为用户请求串,继续步骤(4),否则为业务特征串,继续步骤(9)。

步骤(4)识别用户请求串的请求时间,代表了用户请求时间点,用于后续流程的状态判定和学习分析,继续下一个步骤。

步骤(5)识别用户请求串的响应时间,代表了用户请求从接受到返回结果的时间段,用于后续流程的状态判定和学习分析,继续下一个步骤。

步骤(6)识别用户请求串的响应码,代表了用户请求处理结果(成功、失败、超时等),用于后续流程的状态判定和学习分析,继续下一个步骤。

步骤(7)将该条用户请求串对应的节点信息、请求时间、响应时间、响应码组织为一条记录,保存到请求串列表,循环步骤(2)至步骤(7),继续处理完本次增量读取的数据,形成完整的请求串数据列表,继续下一步骤。

步骤(8)将请求串数据列表提交给请求响应分析流程处理。

步骤(9)识别业务特征串的记录时间,代表业务处理过程中某个确定执行顺序位置的执行时间点,用于时间关联分析流程时间延迟判定和学习分析,继续下一个步骤。

步骤(10)将业务特征串、记录时间、节点信息保存到业务特征串列表,循环步骤(2)至(3)、(9)至(10),继续处理完本次增量读取的数据,形成完整的业务特征串数据列表,继续下一个步骤。

步骤(11)将业务特征串数据列表提交给时间关联分析流程处理。

2、请求响应分析流程

请求响应分析模块主要主要完成两项工作,一是根据判定规则,通过分析计算判断当前节点状态是否为不良状态,二是通过分析计算学习,修正当前时段判定规则。分析计算和学习的数据来自于日志监测模块发送的请求串数据列表,为平衡计算量和反映被监测集群状态精确度,本发明将每5分钟划分为一个时段(在系统实现中,配置到参数表,做为可调整参数值),进行数据计算分析和判定规则的学习、更新。详细步骤描述如下:

步骤(1)循环从请求串数据列表读取一条请求串记录,继续下一个步骤。

步骤(2)从判定规则库根据请求串查询当前时段、该节点、该请求串对应的判定规则记录,继续下一个步骤。

步骤(3)从当前请求串记录获取响应状态码,继续下一个步骤。

步骤(3)判断状态码是否为成功标识(在系统实现中,对不同业务系统集群配置有状态码对照表,在此不对状态码编码做描述),如果判断为成功,则执行步骤(7),否则继续下一个步骤。

步骤(5)累计本节点不成功的请求响应数量,继续下一个步骤。

步骤(6)更新当前5分钟不良节点记录,继续下一个步骤。

步骤(7)根据判定规则中当前时段的参照响应时间,计算响应延迟时间,公示:响应延迟时间=当前状态响应时间-参照响应时间,继续下一个步骤。

步骤(8)判断是否响应延迟。如果值为负值,则没有响应延迟,在步骤(12)规整统计数时会对参照响应时间进行调整,继续执行步骤(10),如果值为正值,则为响应延迟,继续下一个步骤。

步骤(9)累计延迟节点数量、当前请求串延迟数量、当前请求延迟时长、当前节点延迟时长,继续下一步骤。

步骤(10)累计本节点的请求数量,继续下一个步骤。

步骤(11)循环读取下一条请求串记录,执行步骤(2)至步骤(11),如果所有记录执行完毕,则继续下面步骤。

步骤(12)规整计算结果,将计算分析的状态结果和延迟结果,梳理为可按照节点、请求串、当前时段查找的记录列表,继续下一个步骤。

步骤(13)结合当前节点当前5分钟时段的判定规则,判定节点运行状态,包括5个方面计算分析:

1)、当前请求数量:按节点计算分析,汇总当前节点所有请求串的请求数量,用σ公式求和得到累计请求数量,再按如下公式计算。

提醒级别:累计请求数量–提醒临界值>0

预警级别:累计请求数量–预警临界值>0,且连续5分钟时段提醒数>2

警告级别:累计请求数量–警告临界值>0,且连续5分钟时段预警数>3

2)、不成功响应数量:按节点计算分析,汇总当前节点所有请求串的不成功响应数量,用σ公式求和得到累计不成功响应数量,再按如下公式计算。

提醒级别:累计不成功响应数量–提醒临界值>0

预警级别:累计不成功响应数量–预警临界值>0,且连续5分钟时段提醒数>2

警告级别:累计不成功响应数量–警告临界值>0,且连续5分钟时段预警数>3

3)、响应延迟数量:按节点计算分析,汇总当前节点所有请求串的响应延迟数量,用σ公式求和得到累计响应延迟数量,再按如下公式计算。

提醒级别:累计响应延迟数量–提醒临界值>0

预警级别:累计响应延迟数量–预警临界值>0,且连续5分钟时段提醒数>2

警告级别:累计响应延迟数量–警告临界值>0,且连续5分钟时段预警数>3

4)、响应延迟时间:按节点、按请求串计算分析。

先按照如下公式求得每个节点、每个请求串的平均响应延迟时间:

再按照如下公式求得自前一个5分钟到当前5分钟延迟时间增长趋势,即延迟斜率:

提醒级别:当前延迟斜率–提醒临界值>0

预警级别:当前延迟斜率–预警临界值>0,且连续5分钟时段提醒数>2

警告级别:当前延迟斜率–警告临界值>0,且连续5分钟时段预警数>3

5)、节点范围变化:按业务系统集群计算分析,计算不良节点范围变化,体现集群不良状态扩展蔓延趋势。

提醒级别:当前状态不良节点数量–提醒临界值>0

预警级别:当前状态不良节点数量–预警临界值>0,且连续5分钟时段提醒数>2

警告级别:当前状态不良节点数量–警告临界值>0,且连续5分钟时段预警数>3

整理计算分析结果后,继续执行下一个步骤。

步骤(14)按照上述公式计算分析,判断节点运行状态是否为不良,不良则进行告警提醒处理,继续执行下一个步骤。

步骤(15)将上述计算分析结果、当前节点5分钟请求记录,作为新的5分钟判定规则更新到规则库,请求响应分析流程结束。

3、时间关联分析流程

与请求响应分析模块类似,时间关联分析模块也完成两项工作,一是根据判定规则,通过分析计算判断当前节点状态是否为不良状态,二是通过分析计算学习,修正当前时段判定规则。分析计算和学习的数据来自于日志监测模块发送的业务特征串数据列表。详细步骤描述如下:

步骤(1)循环从业务特征串数据列表读取一条业务特征串记录,继续下一个步骤。

步骤(2)从判定规则库根据业务特征串查询当前时段、该节点、该业务特征串对应的判定规则记录,以及该时段内所有请求串判定规则记录,继续下一个步骤。

步骤(3)根据该业务特征串对应的判定规则记录,获得本节点相关的请求串列表,并按照请求串字段逐一与该时段内所有请求串判定规则记录进行匹配,匹配不成功时,从该业务特征串的相关请求串列表删除。对匹配成功的所有请求串,按如下公式计算业务特征串的平均关联时间:

继续下一个步骤。

步骤(4)根据业务特征串判定规则中的参照平均关联时间,按公式(当前平均关联时间–参照平均关联时间>0)计算是否延迟,判断是否响应延迟。如果值为负值,则没有延迟,继续执行步骤(6),如果值为正值,则为响应延迟,继续执行下一个步骤。

步骤(5)累计延迟节点数量、当前业务特征串延迟数量、当前业务特征延迟时长、当前节点延迟时长,继续下一步骤。

步骤(6)循环读取下一条记录,执行步骤(2)至步骤(5),如果所有记录执行完毕,则继续下面步骤。

步骤(7)规整计算结果,将计算分析的延迟结果,梳理为可按照节点、业务特征串、当前时段查找的记录列表,继续下一个步骤。

步骤(8)结合当前节点、当前5分钟时段的判定规则,判定节点运行状态,包括平均关联时间延迟数量(参照响应延迟数量)、平均关联时间延迟趋势(参照响应延迟时间)、节点范围变化三个方面计算分析:

1)、平均关联时间延迟数量:按节点计算分析,汇总当前节点所有业务特征串的平均关联时间延迟数量,用σ公式求和得到平均关联时间延迟数量,再按如下公式计算。

提醒级别:平均关联时间延迟数量–提醒临界值>0

预警级别:平均关联时间延迟数量–预警临界值>0,且连续5分钟时段提醒数>2

警告级别:平均关联时间延迟数量–警告临界值>0,且连续5分钟时段预警数>3

2)、平均关联时间延迟趋势:按节点、按业务特征串计算分析。

先按照如下公式求得每个节点、每个业务特征串的5分钟平均关联时间延迟时长:

i—为步骤(1)至步骤(6)处理获得的所有判定为延迟的业务特征串记录数

再按照如下公式求得自前一个5分钟到当前5分钟延迟时间增长趋势,即延迟斜率:

提醒级别:当前延迟斜率–提醒临界值>0

预警级别:当前延迟斜率–预警临界值>0,且连续5分钟时段提醒数>2

警告级别:当前延迟斜率–警告临界值>0,且连续5分钟时段预警数>3

3)、节点范围变化:按业务系统集群计算分析,计算不良节点范围变化,体现集群不良状态扩展蔓延趋势。

提醒级别:当前状态不良节点数量–提醒临界值>0

预警级别:当前状态不良节点数量–预警临界值>0,且连续5分钟时段提醒数>2

警告级别:当前状态不良节点数量–警告临界值>0,且连续5分钟时段预警数>3

整理计算分析结果后,继续执行下一个步骤。

步骤(9)按照上述公式计算分析,判断节点运行状态是否为不良,不良则进行告警提醒处理,继续执行下一个步骤。

步骤(10)将上述计算分析结果、当前节点5分钟业务特征串记录,作为新的5分钟判定规则更新到规则库,时间关联分析流程结束。

至此,本发明的全部处理流程步骤说明结束。

获取请求串的请求时间、响应时间以及响应状态的数据;

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

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