发明内容
为了解决现有技术中对系统进行监控和告警的问题,提出了一种监控和告警的方法和系统。
根据本发明的一个方面,提供了一种监控与告警的方法,所述方法包括:
步骤1,确定一个或多个运行模块的多个被监控的指标中的异常指标,并记录所确定的各异常指标的信息;
步骤2,基于一异常指标的信息确定与该异常指标相关联的指标,并基于该异常指标和所述相关联的指标,确定该异常指标出现的原因;
步骤3,基于所确定的异常指标出现的原因进行相应的告警。
其中,所述步骤2中确定一异常指标的相关联的指标至少包括下述方式之一:
方式一,提取该异常指标的信息中的出现时间,将出现在该出现时间前第一时间段至该出现时间后第二时间段之间的异常指标确定为与该异常指标相关联的指标;
方式二,提取该异常指标的信息中的所属运行模块和出现时间,将出现在该出现时间前第三时间段至该出现时间后第四时间段之间且属于该运行模块的其他异常指标和接近异常的指标确定为与该异常指标相关联的指标。
其中,所述步骤2中基于该异常指标和所述相关联的指标确定该异常指标出现的原因包括:
若采用所述方式一确定相关联的异常指标,基于该异常指标和相关联的指标的出现时间的先后,确定导致最先异常指标出现的原因为该异常指标出现的原因;
若采用所述方式二确定相关联的异常指标,分析该异常指标与相关联的指标之间的关系,如果该异常指标是由相关联的指标引起,则基于相关联的指标的出现时间的先后,确定导致最先相关联指标出现的原因为该异常指标出现的原因,如果该异常指标不是由相关联的指标引起,则基于该异常指标和相关联的指标的出现时间的先后,确定导致最先异常指标或接近异常的指标出现的原因为该异常指标出现的原因。
其中,所述步骤2中基于该异常指标和所述相关联的指标确定该异常指标出现的原因包括:在已存储的异常原因集合中查找与该异常指标和所述相关联的指标匹配的异常原因;
所述方法还包括在所述步骤2之后,所述步骤3之前执行:判断该异常指标、所述相关联的指标和该异常指标出现的原因是否存在于已存储的异常原因集合中,若没有,则将该异常指标、所述相关联的指标和该异常指标出现的原因存储到所述异常原因集合中。
其中,所述步骤1还包括:
所述步骤1还包括:
对一个或多个处理模块的多个被监控的指标进行监控,并获取各处理模块中每个被监控的指标的数值;
判断各被监控的指标的数值是否满足相应的第一条件,并将数值不满足相应的第一条件的被监控的指标确定为异常指标;
所述步骤2还包括:
若通过所述方式二确定一异常指标的相关联的指标,判断各被监控的指标的数值是否满足相应的第二条件,并将数值不满足相应的第二条件的被监控的指标确定为接近异常的指标。
其中,所述步骤3还包括:
基于该异常指标所属运行模块的使用记录,确定设定时间段内使用该异常指标所属运行模块的使用者,并向所述使用者进行告警。
根据本发明的另一方面,还提供了一种监控和告警的系统,所述系统包括:
异常指标确定模块,用于确定一个或多个运行模块的多个被监控的指标中的异常指标,并记录所确定的各异常指标的信息;
关联指标确定模块,用于基于一异常指标的信息确定与该异常指标相关联的指标;
异常原因确定模块,用于基于该异常指标和所述相关联的指标,确定该异常指标出现的原因;
告警模块,用于基于所确定的异常指标出现的原因进行相应的告警。
其中,所述关联指标确定模块还用于通过下述方式中至少一种确定一异常指标的相关联的指标:
方式一,提取该异常指标的信息中的出现时间,将出现在该出现时间前第一时间段至该出现时间后第二时间段之间的异常指标确定为与该异常指标相关联的指标;
方式二,提取该异常指标的信息中的所属运行模块和出现时间,将出现在该出现时间前第三时间段至该出现时间后第四时间段之间且属于该运行模块的其他异常指标和接近异常的指标确定为与该异常指标相关联的指标。
其中,异常原因确定模块还用于通过下述方式确定该异常指标出现的原因:
若采用所述方式一确定相关联的异常指标,基于该异常指标和相关联的指标的出现时间的先后,确定导致最先异常指标出现的原因为该异常指标出现的原因;
若采用所述方式二确定相关联的异常指标,分析该异常指标与相关联的指标之间的关系,如果该异常指标是由相关联的指标引起,则基于相关联的指标的出现时间的先后,确定导致最先相关联指标出现的原因为该异常指标出现的原因,如果该异常指标不是由相关联的指标引起,则基于该异常指标和相关联的指标的出现时间的先后,确定导致最先异常指标或接近异常的指标出现的原因为该异常指标出现的原因。
其中,异常原因确定模块还用于采用下述方式确定该异常指标出现的原因:在已存储的异常原因集合中查找与该异常指标和所述相关联的指标匹配的异常原因;
所述系统还包括:第一判断模块,用于判断该异常指标、所述相关联的指标和该异常指标出现的原因是否存在于已存储的异常原因集合中,若没有,则将该异常指标、所述相关联的指标和该异常指标出现的原因存储到所述异常原因集合中。
其中,异常指标确定模块还用于:
对一个或多个处理模块的多个被监控的指标进行监控,并获取各处理模块中每个被监控的指标的数值;
判断各被监控的指标的数值是否满足相应的第一条件,并将数值不满足相应的第一条件的被监控的指标确定为异常指标;
若通过所述方式二确定一异常指标的相关联的指标,判断各被监控的指标的数值是否满足相应的第二条件,并将数值不满足相应的第二条件的被监控的指标确定为接近异常的指标。
其中,所述告警模块还用于:
基于该异常指标所属运行模块的使用记录,确定设定时间段内使用该异常指标所属运行模块的使用者,并向所述使用者进行告警。
本发明的监控和告警方法和系统,通过对异常指标的相关联指标进行分析,以确定导致异常指标的原因,从而将多种异常指标组合起来进行分析。因此,本发明的方法和系统具有以下有益效果:
(1)生成综合的告警信息,而不再是独立的告警信息,综合告警信息使得接收方可以快速定位问题发生原因与影响范围;
(2)合并相关错误指标,从上层对监控数据进行聚合,减少运维人员的反复操作;比如机房故障,传统监控只针对单机进行告警,导致运维人员或监控系统独立操作每台服务器,十分耗时;
(3)告警信息汇聚处理后,减少系统间告警信息传输量,减少服务器负载压力;
(4)监控数据与逻辑判断分离后,使监控数据能从底层与上层两个不同维度进行处理,告警信息传递更快,问题影响时间更短;
(5)不同平台对告警信息关联自动处理,减少人工处理上存在的可能疏漏或延迟,提高服务稳定。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
本发明提供了一种监控与告警的方法,如图1所示,该方法包括:
步骤101,确定一个或多个运行模块的多个被监控的指标中的异常指标,并记录所确定的各异常指标的信息;
步骤102,基于一异常指标的信息确定与该异常指标相关联的指标,并基于该异常指标和所述相关联的指标,确定该异常指标出现的原因;
步骤103,基于所确定的异常指标出现的原因进行相应的告警。
这里,运行模块通常指网络模块、硬件模块、软件模块。其中,网络模块的指标包括时延、丢包率、端口联通状态等;硬件模块的指标包括内存、CPU使用率、CPU负载等;软件模块的指标包括响应时间、各服务软件运营状态、相关请求量、服务进程状态、响应状态码等。
步骤102中确定一异常指标的相关联的指标至少包括下述方式之一:方式一,提取该异常指标的信息中的出现时间,将出现在该出现时间前第一时间段至该出现时间后第二时间段之间的异常指标确定为与该异常指标相关联的指标;方式二,提取该异常指标的信息中的所属运行模块和出现时间,将出现在该出现时间前第三时间段至该出现时间后第四时间段之间且属于该运行模块的其他异常指标和接近异常的指标确定为与该异常指标相关联的指标。其中,第一时间段可以为15-30分钟的时间范围,第二时间段可以为5-10分钟的时间范围,第三时间段可以为5-10分钟的时间范围,第四时间段可以为5-10分钟的时间范围,各时间段的具体取值可以根据实际情况进行选择。
本发明中通过两种维度确定异常指标的相关联的指标:(1)异常指标的出现时间;(2)异常指标所属的运行模块。
首先,通过异常指标的出现时间来确定相关联的指标是因为通过研究发现,在同一时间段出现的异常指标之间通常都存在相互联系,例如因果联系或者都是由相同的原因导致。因此,可以基于异常指标在某一时间段内的关联的异常指标来进行异常原因分析。
其次,通过异常指标所属的运行模块来确定相关联的指标是因为通过研究发现,属于相同运行模块的异常指标之间通常都存在相互联系,例如因果联系或者都是由相同的原因导致。需要说明的是,基于运行模块确定异常指标的相关联的指标时,也需要在某一时间段内选择相关联的指标,这是因为如果各指标的时间跨度比较大,则通常不会存在导致彼此异常的相关联的关系。另外,在通过运行模块确定相关联的指标时,除了要考虑属于相同运行模块的异常指标,也需要考虑属于相同运行模块的接近异常的指标。因为,有些指标虽然没有达到异常,但是当接近异常时也可能导致其他指标的异常,为了能全面地分析导致异常的原因,也需要分析这些接近异常的指标。例如,在网络丢包率增加到3%以上时,每增加1%的丢包,将会减少12%的用户体验,同时增加17%的网络时延,最终影响用户访问速度。因此,当出现节点记录响应状态码为0增加时,系统会同步判断出现问题前第一时间段内网络丢包率、时延等异常数据的变化情况,最终提供准确的问题原因定位结果。硬件模块方面,当磁盘的读写性能出现下降或CPU使用率增加时,将会导致系统负载增加以及cache server软件出现响应速度下降的情况,并且会导致节点带宽利用率不足的情况,该系统能在问题出现前第三时间段内进行相关硬件模块监控数据检索,以定位问题根源并报警。
步骤102中基于该异常指标和所述相关联的指标确定该异常指标出现的原因包括:若采用所述方式一确定相关联的异常指标,基于该异常指标和相关联的指标的出现时间的先后,确定导致最先异常指标出现的原因为该异常指标出现的原因;若采用所述方式二确定相关联的异常指标,分析该异常指标与相关联的指标之间的关系,如果该异常指标是由相关联的指标引起,则基于相关联的指标的出现时间的先后,确定导致最先相关联指标出现的原因为该异常指标出现的原因,如果该异常指标不是由相关联的指标引起,则基于该异常指标和相关联的指标的出现时间的先后,确定导致最先异常指标或接近异常的指标出现的原因为该异常指标出现的原因。
如果基于异常指标的出现时间确定相关联的指标,则先后出现的多个异常指标可能由相同原因导致,导致最早异常指标出现的原因就为步骤101中确定的异常指标的出现原因。如果基于异常指标所属的运行模块确定相关联的指标,则需要具体分析该异常指标与确定的相关联指标之间的关系,一种情况是异常指标是由相关联的指标引起,一种情况是异常指标不是由相关联的指标引起。在这两种情况下,分别基于指标出现的时间先后,来确定异常指标出现的原因。
上述是基于异常指标的相关联指标进行原因分析的过程。为了简化分析,可以将每次分析得到的结果存储起来,以供后面出现异常指标后,直接进行匹配查找。即,步骤102中基于该异常指标和所述相关联的指标确定该异常指标出现的原因包括:在已存储的异常原因集合中查找与该异常指标和所述相关联的指标匹配的异常原因。在这种情况下,上述方法还包括在步骤102之后,步骤103之前执行:判断该异常指标、所述相关联的指标和该异常指标出现的原因是否存在于已存储的异常原因集合中,若没有,则将该异常指标、所述相关联的指标和该异常指标出现的原因存储到所述异常原因集合中。
这里的异常原因集合可以存储至系统中,其中包括异常指标、相关联的指标、以及导致该异常指标的原因的对应关系。当确定的异常指标、相关联的指标与异常原因集合的一条记录中的异常指标、相关联的指标匹配时,就可以将该记录中的导致异常的原因确定为导致该异常指标的原因。采用这种方式,不需要每次确定异常指标和相关联的指标后都继续异常原因的分析,可以只在异常原因集合中没有匹配的记录时,才进行异常原因的分析,从而简化监控和告警的过程。
步骤101还包括:对一个或多个处理模块的多个被监控的指标进行监控,并获取各处理模块中每个被监控的指标的数值;判断各被监控的指标的数值是否满足相应的第一条件,并将数值不满足相应的第一条件的被监控的指标确定为异常指标。并且,步骤102还包括:若通过所述方式二确定一异常指标的相关联的指标,判断各被监控的指标的数值是否满足相应的第二条件,并将数值不满足相应的第二条件的被监控的指标确定为接近异常的指标。其中,根据第一条件判断是否是异常指标是指,对于一些指标,当指标的数值大于相应的第一阈值时为异常指标,或者对于另一些指标,当指标的数值小于相应的第一阈值时为异常指标;根据第二条件判断是否是接近异常的指标是指,对于上述同样一些指标,当指标的数值大于相应的第二阈值且小于等于相应的第一阈值时为接近异常的指标,或者对于上述同样另一些指标,当指标的数值小于相应的第二阈值且大于等于相应的第一阈值时为接近异常的指标。步骤101中通过监控指标的数值来确定异常指标,步骤102中通过监控指标的数值来确定接近异常的指标,以确定异常指标的相关联的指标。下面以一指标的数值大于相应的第一阈值时为异常指标,且该指标的数值大于相应的第二阈值且小于等于相应的第一阈值时为接近异常的指标为例进行说明。确定异常指标的第一阈值通常大于确定相同指标是否接近异常的第二阈值。第一阈值和第二阈值根据不同的指标类型进行设定。例如,当节点网络丢包率介于1~3%的时候,通常并不会导致用户网络访问中断,但当丢包率超过3%时,CDN节点提供的加速服务将会大幅受到影响,甚至导致部分特定用户网络环境下的访问失败(比如移动基站本身信号较弱或用户所处网络环境本身较为不佳的情况下。)。当指标数值虽然小于第一阈值,但仍然有可能因为接近临界值或该指标存在波动的时候,同样会导致该指标为界定为异常指标。
步骤103还包括:基于该异常指标所属运行模块的使用记录,确定设定时间段内使用该异常指标所属运行模块的使用者,并向所述使用者进行告警。该步骤中,通过检索相关运行模块的使用记录,确定例如一个月内该运行模块的使用者,将上述确定的异常原因通知使用者进行告警,以便使用者及时采取处理措施。
另外,还可以将监控得到的异常指标存储到数据库中,以便后续分析需要时使用。
采用本发明的监控和告警的方法,不会只针对单独的异常指标进行处理,而是综合考虑与该异常指标相关联的指标,从而找到导致异常的根本原因。这是因为,导致一异常指标出现的原因可能是由于其他指标出现异常或接近异常引起的。例如,当某业务告警出现用户请求响应时间超时的时候,系统会对问题出现前设定时间段内的相关网络、硬件和软件模块数据进行检索,发现网络时延在这个时间段内有明显增加,但其他指标变化不明显,从而确定导致用户响应时间超时这一异常指标的原因是网络模块中的时延增加,根本原因是网络恶化。
以下描述根据本发明的监控和告警方法的具体实施例,该实施例中对网络模块、硬件模块、软件模块进行监控和告警。该实施例包括以下步骤:
步骤1,对各处理模块的多个被监控的指标进行监控,并获取各处理模块中每个被监控的指标的数值。
步骤2,判断各被监控的指标的数值是否大于相应的第一阈值,并将数值大于相应的第一阈值的被监控的指标确定为异常指标,并记录各异常指标的信息异常指标的信息包括出现时间、所属运行模块等。例如,在该步骤中确定网络模块的TCP重传比例指标为异常指标。
步骤3,确定上述异常指标的相关联的指标,通过其所属的运行模块来确定。在该运行模块中指标中,在TCP重传比例出现异常前5分钟至出现异常后5分钟出现的异常指标表现为网络时延大福增加、丢包率的小幅增加以及机器连接数增加。在该时间段内,没有发现接近异常的指标。因此,该异常指标的相关联的指标确定为网络时延以及丢包率。
步骤4,分析异常指标网络时延、丢包率以及TCP重传比例之间的关系,以确定导致异常出现的原因。通过分析发现异常指标丢包率最先出现,因此将导致丢包率上升的原因确定为导致TCP重传比上升的原因。具体分析如下:在异常时刻网络节点所在机房存在大量丢包,从不同省份监控机的ping丢包数据收集汇总情况来看,机房至不同省份均存在不同比例的丢包情况,最终将TCP重传比例告警原因定位为机房网络波动,导致TCP重传比上升超过告警阈值。
步骤5,检索该运行模块的使用记录,确定在最近一周内的使用者,向所确定的使用者发送告警信息,该告警信息包括异常原因,以便使用者可以据此进行相应的处理。
本发明还提供了一种监控和告警系统,如图2所示,该系统包括:所述系统包括:
异常指标确定模块201,用于确定一个或多个运行模块的多个被监控的指标中的异常指标,并记录所确定的各异常指标的信息;
关联指标确定模块202,用于基于一异常指标的信息确定与该异常指标相关联的指标;
异常原因确定模块203,用于基于该异常指标和所述相关联的指标,确定该异常指标出现的原因;
告警模块204,用于基于所确定的异常指标出现的原因进行相应的告警。
其中,所述关联指标确定模块还用于通过下述方式中至少一种确定一异常指标的相关联的指标:
方式一,提取该异常指标的信息中的出现时间,将出现在该出现时间前第一时间段至该出现时间后第二时间段之间的异常指标确定为与该异常指标相关联的指标;
方式二,提取该异常指标的信息中的所属运行模块和出现时间,将出现在该出现时间前第三时间段至该出现时间后第四时间段之间且属于该运行模块的其他异常指标和接近异常的指标确定为与该异常指标相关联的指标。
其中,异常原因确定模块还用于通过下述方式确定该异常指标出现的原因:
若采用所述方式一确定相关联的异常指标,基于该异常指标和相关联的指标的出现时间的先后,确定导致最先异常指标出现的原因为该异常指标出现的原因;
若采用所述方式二确定相关联的异常指标,分析该异常指标与相关联的指标之间的关系,如果该异常指标是由相关联的指标引起,则基于相关联的指标的出现时间的先后,确定导致最先相关联指标出现的原因为该异常指标出现的原因,如果该异常指标不是由相关联的指标引起,则基于该异常指标和相关联的指标的出现时间的先后,确定导致最先异常指标或接近异常的指标出现的原因为该异常指标出现的原因。
其中,异常原因确定模块还用于采用下述方式确定该异常指标出现的原因:在已存储的异常原因集合中查找与该异常指标和所述相关联的指标匹配的异常原因;
所述系统还包括:第一判断模块,用于判断该异常指标、所述相关联的指标和该异常指标出现的原因是否存在于已存储的异常原因集合中,若没有,则将该异常指标、所述相关联的指标和该异常指标出现的原因存储到所述异常原因集合中。
其中,异常指标确定模块还用于:
对一个或多个处理模块的多个被监控的指标进行监控,并获取各处理模块中每个被监控的指标的数值;
判断各被监控的指标的数值是否满足相应的第一条件,并将数值不满足相应的第一条件的被监控的指标确定为异常指标;
若通过所述方式二确定一异常指标的相关联的指标,判断各被监控的指标的数值是否满足相应的第二条件,并将数值不满足相应的第二条件的被监控的指标确定为接近异常的指标。
其中,所述告警模块还用于:
基于该异常指标所属运行模块的使用记录,确定设定时间段内使用该异常指标所属运行模块的使用者,并向所述使用者进行告警。
本发明的监控和告警方法和系统,通过对异常指标的相关联指标进行分析,以确定导致异常指标的原因,从而将多种异常指标组合起来进行分析。因此,本发明的方法和系统具有以下有益效果:
(1)生成综合的告警信息,而不再是独立的告警信息,综合告警信息使得接收方可以快速定位问题发生原因与影响范围;
(2)合并相关错误指标,从上层对监控数据进行聚合,减少运维人员的反复操作;比如机房故障,传统监控只针对单机进行告警,导致运维人员或监控系统独立操作每台服务器,十分耗时;
(3)告警信息汇聚处理后,减少系统间告警信息传输量,减少服务器负载压力;
(4)监控数据与逻辑判断分离后,使监控数据能从底层与上层两个不同维度进行处理,告警信息传递更快,问题影响时间更短;
(5)不同平台对告警信息关联自动处理,减少人工处理上存在的可能疏漏或延迟,提高服务稳定。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。