专利名称:基于主动探针的服务故障诊断系统及其方法
技术领域:
本发明涉及服务故障管理领域,特别涉及一种基于主动探针的服 务故障诊断系统及其方法。
背景技术:
故障诊断需要根据故障监测得到的症状,使用一定的算法来得出 故障假设。故障监测技术可以分为被动和主动两种。被动监测技术使 用大量监测设施监听已存服务会话, 一般基于服务用户端监测或者网 络数据包收集并进行请求一响应重构,发现异常则发出告警通知管理 系统。主动监测技术从特定点向服务发送探针获取应用级性能, 一个 探针可以监测一个或者多个系统组件的性能,根据多个探针的返回值 可以判断出被监测组件的状况。
当前大多故障诊断是基于被动监测技术的,能够实时监测用户感 知的服务性能,但是开销较大,基于主动监测技术的故障诊断能够减 小监测开销,同样得到较好的诊断性能。
现有技术中如在The International Journal of Intelligence Control and Systems第2巻第2号2005年"Proactive Probing and Probing on
Demand in Service Fault Localization" —文,该文献第107页-113
页所公开的,基于主动探针对服务端系统组件状况进行监测,发现异 常则利用确定性故障——探针依赖模型进一步选取探针,直到诊断出 故障源为止,针对不确定性,采用简单的再次发送探针的方式进行确 认,这种处理不确定性的方式过于简单。另外该文献并没有考虑传输 网络对用户所感知的服务性能造成的影响。
现有技术中还有在IEEE Transactions on Neural Networks (special issue on Adaptive Learning Systems in Communication Networks)第16巻第5号2005年9月"Adaptive Diagnosis in Distributed Systems" —文,该文献第1088页——1109页所公开的,基于主动探 针对分布式系统进行监测诊断。假设故障^针依赖关系为近确定 性,选择探针时采用确定性模型,诊断故障时采用概率推理技术,这
种方式在选取探针时可能会选择过少探针,监测不到需要的症状。
发明内容
本发明的目的是针对上述现有技术中存在的问题提供一种基于 主动探针的服务故障诊断方法,使用主动探针有效监测网络中的服务 性能,保证在各个接入网内使用服务的性能;当监测发现异常时,根 据监测到的症状快速准确地定位出故障根源。
本发明解决上述技术问题是通过以下技术方案来实现的 一种基于主动探针的服务故障诊断系统,所述故障诊断系统包 括探针、管理主机、接口模块、管理/信息呈现模块、故障检测模 块、故障诊断模块、依赖模型存储器、有效探针信息存储器、告警/ 故障信息存储器,所述探针部署在探针站上;所述管理主机和探针站 通过接口模块与管理/信息呈现模块、故障检测模块、故障诊断模块 相连;所述管理/信息呈现模块、故障检测模块、故障诊断模块和所
述依赖模型存储器、有效探针信息存储器以及告警/故障信息存储器 分别相连。
所述探针站可以位于用户主机上也可以位于其他专用监测主机上。
一种基于主动探针的服务故障诊断系统的诊断方法,包括以下步
骤
(1) 选取故障监测阶段所需的探针;
(2) 将步骤(1)所选探针部署在对应探针站上,周期性地监测 服务性能;
(3) 当监测到步骤(2)中发送的探针异常时,启动所述故障诊 断模块,进一步选取探针观察服务性能;
(4) 根据步骤(2)和(3)中监测到的症状,得出故障假设。 所述步骤(1)中为可能故障设置检测率门限值。
所述步骤(1)中基于不确定性故障——探针依赖模型选择监测 探针集合的贪婪算法。
所述步骤(3)中选择可能故障对应的探针子集的差集作为诊断 探针,进一步观察服务性能。
本发明基于主动探针的服务故障诊断系统及其方法具有以下优
点
本发明为可能发生的故障设置故障检测率门限,根据前述的故障 ——探针不确定性依赖模型和检测率门限建立监测探针集。这些探针 从用户位于的接入网向服务发送应用层探针监测服务性能,以定义的 检测率门限值发现异常。当监测探针集发现服务性能异常时,可以自 动快速地选取诊断探针集来进一步观察服务状态,根据之前的观察结 果推理得出故障假设。
本发明相对基于客户端测量获取服务性能的服务故障诊断来说, 可以减小监测开销并防止由于性能测量对客户端可能带来的过度干 扰。相对基于网络数据包搜集并重构请求-响应来获取服务性能方式 的服务故障诊断来说,可以减小性能收集的难度及监测开销。相对于 使用确定性模型的主动探针方式,本申请基于不确定性模型选取探 针,考虑了故障探针依赖强度,从而带来更精确的故障检测率,为可 能故障加上了可设置的检测率门限值,有效保证了对每个故障的检测 率,使用文中所述的算法选取探针,以较小的探针开销保证了服务性 能异常的发现,而且获得了很好的诊断性能。
图1是实现本发明的故障诊断系统示意图。
图2是实现本发明的总流程图。
图3是本发明中选取故障监测探针的处理流程图。
图4是本发明故障诊断阶段的流程图。
具体实施例方式
下面结合附图对本发明作进一步详细的说明,在附图中图l是 实现本发明的故障诊断系统示意图。该系统在探针站上部署探针,观 察探针状态,并进行故障检测和诊断。故障管理系统包括探针,管理 主机,接口模块,管理/信息呈现模块,故障检测模块,故障诊断模 块,依赖模型存储器,有效探针信息存储器,告警/故障信息存储器。
探针为部署在用户主机或者专用测试主机上的服务会话,当运行 时可以监测到其所在位置获得的服务性能,并可以向接口模块报告性 能参数。管理主机通过接口模块可以访问需要的数据,控制管理系统 的运行。接口模块负责将内部的控制信息或者数据发送到管理主机和 探针,以及将来自外部的控制信息和数据发送到相应的内部模块,管
理/信息呈现模块向管理主机呈现管理界面;按照来自管理主机的指 令管理系统;将来自外部的数据写入对应数据库,故障检测模块选取 并部署故障监测探针,在出现异常时启动故障诊断模块,故障诊断模 块选取诊断探针,根据探针结构推理得出故障根源,依赖模型存储当 前探针-故障依赖模型,有效探针信息存储当前可用的探针信息,告 警/故障信息存储所有的告警和故障记录。
图2是实现本发明的总流程图,图3是本发明中选取故障监测探 针的处理流程图。首先选取故障监测阶段所需的探针,其具体细节展 示在图3中,选取完成之后就将探针部署在网络中,周期性地监测服 务性能。当监测到探针异常时,开始进行故障诊断,根据前一阶段的 症状,进一步选取探针,得出故障假设。
图3是本发明中选取故障监测探针的处理流程图,包括如下几
步
将所有"e,"的故障对应的探针加入监测探针集合,从F中将这 些故障删除,表示他们已经被监测(步骤101);
由于步骤101已经加入了部分监测探针,这些探针可能会导致其 他部分探针满足检测率门限,因此需要将这些故障从F中删除(步骤
102);
从F中选取一个对应最小D^的故障力(步骤103);
比较该故障对应的探针中,是否存在多个会导致相同最大M的
探针(步骤104);
从中选择对应最大roQ的探针(步骤105); 选择对应最大^的探针(步骤106); 将这个探针加入监测探针集合(步骤107);
判断103步骤选择的故障是否己经满足检测率门限要求(步骤
108);
从F中删除已经满足检测率门限要求的探针(步骤109); 判断是否需要监测的故障都已经以足够的检测率进行监测(步骤 110);
得出监测探针集合,将其部署到网络中,周期性地监测服务性能 (步骤lll)。
图4展示了故障诊断阶段的流程图。
根据监测阶段发现的症状,得出可能一个大的可能故障集合(201
步骤);
根据可能故障集合,使用之前所述的探针选取方法,进一步获取 系统状态(202步骤);
由故障监测和故障诊断阶段发现的探针结果,推理得出故障假设 (203步骤)。推理算法的主要思想是将之前探测得到的所有探针结
果逐个输入算法,使用信度更新的方式在各节点之间传递A和;r消息。
输入结束后,逐个选择w①最大的故障节点加入故障假设,并进行信 度更新。直到所有观察到的症状均可被故障假设解释为止; 验证故障假设,故障恢复(204步骤)。
本发明在用户所处的接入网内布置探针站,探针站可以位于用户 主机上,也可以位于其他专用监测主机上。从探针站可以向需要监测 的服务发送探针,从而监测到该接入网内使用该服务的性能状况。一 个探针应当会经过一个路径到达服务,从而探针可以反映服务和路径 的状况。 一个大规模网络内,可能存在多个服务和多个接入网,对应 的可以发送多个探针。过多的监测探针会带来较大的开销,我们需要 减小这个开销,并保证故障诊断性能。
本方案采用二分贝叶斯网络模型表示故障的先验概率以及故障 和探针之间的因果概率。这些概率可以通过分析历史记录和故障注入 的方式获得。故障集合为iM/i,…,/J, ,=1表示发生故障,乂=0 表示未发生故障;探针集合为/^(A,…,/U ,乃=1表示发生监测到 异常,P,O表示未监测到异常;P(/)为故障/发生的先验概率;尸(pl/)
为故障/发生时,探针p检测到异常的条件概率;0 74/)为与故障/ 存在因果关系的探针集合;Pw(p)为与探针p存在因果关系的故障集 合。
本发明分为两个阶段故障监测和故障诊断。在故障监测阶段, 周期性发送一个预先选取的探针集合,达到监测服务性能的目的。该 监测探针集合应当满足当任一故障发生时,有较高检测率使至少一个 探针发现异常。也就是说,对每个可能故障,该监测探针集合均存在
一个较高的检测率,其值r的大小可由用户来定义。若当前监测探针
集合为户必,对故障/的检测率函数定义为
雕n [i-尸(禍)]
为了在可接受开销基础上获得高的检测率,本发明采用了一个贪 婪算法获取监测探针集合。假设当前已选定的监测探针集合户血,该 算法的思路是从尸-/^,将探针逐个加入P必中,直到尸必满足预设故 障检测率要求。对每个探针Ae尸—Aet ,我们计算加入该探针后,
满足监测率r的故障数目&"
1
o D )<r
将对应于最大一值的探针加入p^。如果多个探针有相同的最大 w,值,则选取对应最大检测率和的探针。检测率和定义为
乂=1
当所有探针都用来监测故障时,也就是说^et-P,每个故障都
达到最大检测率,定义为Dg产"2(尸,乂)。每个故障都有不同Dg,,
如果一个故障的比其他故障低的"g,那么c/^'w(乂)中的探针更可
能被选中。因此在每次选择探针时,我们选择最小Da的故障,从
CMd(,)中选择对应最大&6的探针。
如果一个故障乂的D0《71,那么即使所有探针都用于监测,也
不能满足门限r。为了保证检测率,c&wc/;)中所有探针都应当加入P^。
故障诊断阶段需要根据故障监测阶段得到的探针结果,进一步选 取探针获取系统信息,并使用诊断算法得出故障假设。
基于前一阶段得到的异常探针集合户w,我们可以得出一个可能
故障集合P^^"J^^ P""A),其中包含所有可能导致/^g的
故障。为了从这个可能故障集合中找出故障假设,需要进一步选取探 针进行观察。考虑只与一个可能故障有因果关系的探针,如果该探针
失败,那么必然是这个故障导致其失败;如果一个与多个故障有因果 关系的探针失败,则难于确定究竟是那个故障导致这个异常。为此, 本阶段选择只与尸^中一个可能故障有因果关系的探针来进一步观 察。也就是说,我们选择每个可能故障的孩子与其他可能故障孩子的 差 , 表 示 为
<formula>formula see original document page 9</formula>根据上述得到的所有探针结果,可以使用最大概率解释或者信度 更新的方式推理得出 一个故障假设。
权利要求
1、一种基于主动探针的服务故障诊断系统,所述故障诊断系统包括探针、管理主机、接口模块、管理/信息呈现模块、故障检测模块、故障诊断模块、依赖模型存储器、有效探针信息存储器、告警/故障信息存储器,所述探针放置在探针站上;所述管理主机和探针站通过接口模块与管理/信息呈现模块、故障检测模块、故障诊断模块相连;所述管理/信息呈现模块、故障检测模块、故障诊断模块和所述依赖模型存储器、有效探针信息存储器以及告警/故障信息存储器分别相连。
2、 根据权利要求l所述的一种基于主动探针的服务故障诊断系统,其特征是所述探针站位于用户主机上。
3、 根据权利要求l所述的一种基于主动探针的服务故障诊断系统,其特征 是所述探针站位于专用监测主机上。
4、 根据权利要求1-3之一所述的基于主动探针的服务故障诊断系统的诊断 方法,包括以下步骤(1) 选取故障监测阶段所需的探针;(2) 将步骤(1)所选探针部署在对应探针站上,周期性地监测服务性能;(3) 当监测到步骤(2)中发送的探针异常时,启动所述故障诊断模块, 进一步选取探针观察服务性能;(4) 根据步骤(2)和(3)中监测到的症状,得出故障假设。
5、 根据权利要求4所述的基于主动探针的服务故障诊断系统的诊断方法, 其特征是在所述步骤(1)中为可能故障设置检测率门限值。
6、 根据权利要求4所述的基于主动探针的服务故障诊断系统的诊断方法, 其特征是它还包括在所述步骤(1)中基于不确定性故障——探针依赖模型选择监测探针集合的贪婪算法。
7、 根据权利要求4所述的基于主动探针的服务故障诊断系统的诊断方法,其特征是它还包括在所述步骤(3)中选择可能故障对应的探针子集的差集作为诊断探针,进一步观察服务性能。
全文摘要
本发明公开了一种基于主动探针的服务故障诊断系统及其方法,使用主动探针有效监测网络中的服务性能,保证在各个接入网内使用服务的性能,当监测发现异常时,根据监测到的症状快速准确地定位出故障根源。本发明监测开销小,有良好的故障诊断性能,同时本发明基于不确定性模型选取探针,能够以较小的探针开销保证对每个故障的检测率,而且获得了很好的诊断性能。
文档编号H04L12/24GK101170447SQ20071018801
公开日2008年4月30日 申请日期2007年11月22日 优先权日2007年11月22日
发明者王文东, 程时端, 褚灵伟, 邹仕洪 申请人:北京邮电大学