1.一种网络故障定位方法,其特征在于,包括以下步骤:
S1,建立传播模型:利用静态贝叶斯网络进行建模,然后通过加入时间因素扩展静态贝叶斯模型得到动态贝叶斯网络模型;
S2,处理时间片信息:首先对当前时间片进行判断,如果是初始时间片,则进入步骤t t-1
S3,否则判断当前症状集合So 是否和上一个时间片的症状集合信息So 相同,t表示时*t-1
间片,若相同,则使用上一个时间片定位的故障节点H ,作为当前时间片定位的故障节点*t
H ,并进入步骤S6,否则将上一个时间片定位的故障节点并入当前时间片的疑似节点集合中,再进入步骤S3,其中,当一个端到端的网络服务失败时,该服务所经过路径上的所有节点都被认为是疑似节点,被并入到疑似节点集合中;
S3,过滤噪声:过滤疑似节点集合中由噪声引起的节点;
S4,确定假设集合:将步骤S3处理之后疑似节点集合中的所有故障节点排列组合,得到包括单点故障和多点故障在内的所有节点集的集合,将每一个节点集所能解释的症状集合与当前接收到的症状集合进行比较,若前者完全包含后者,则保留该节点集,否则将t t t
该节点集移除,最终得到多个能够解释当前症状的假设故障节点集Hi ={Fi =1,Fj =t
1......Fk =1},F表示故障节点,上标均表示时间片,下标均表示节点编号;
t t
S5,计算信度:计算每一个假设故障节点集的信度B(Hi,So),然后从中选择信度最大*t
的假设故障节点集作为最终的定位结果H ;
S6,先验概率更新:对于当前时间片中的每一个故障节点,计算其后验概率,利用后验概率和传播概率,更新当前故障节点的先验概率,将更新后的先验概率作为该故障节点下一个时间片的先验概率。
2.如权利要求1所述的网络故障定位方法,其特征在于,所述步骤S3具体包括:
S31,对于每一个疑似节点计算其观测率,其中,观测率表示一个故障节点所能解释的所有症状中,观测到的症状所占的比率;
S32,将每一个疑似节点的观测率与预设门限进行比较,如果该值小于预设门限,则将该疑似节点从疑似节点集合中移除。
3.一种网络故障定位装置,其特征在于,包括:
建模单元,用于利用静态贝叶斯网络进行建模,然后通过加入时间因素扩展静态贝叶斯模型得到动态贝叶斯网络模型;
处理时间片信息单元,用于对当前时间片进行判断,如果是初始时间片,则利用过滤t
噪声单元进行噪声过滤,否则判断当前症状集合So 是否和上一个时间片的症状集合信息t-1 *t-1
So 相同,t表示时间片,若相同,则使用上一个时间片定位的故障节点H ,作为当前时间*t
片定位的故障节点H ,并利用先验概率更新单元进行先验概率更新,否则将上一个时间片定位的故障节点并入当前时间片的疑似节点集合中,再利用过滤噪声单元进行噪声过滤,其中,当一个端到端的网络服务失败时,该服务所经过路径上的所有节点都被认为是疑似节点,被并入到疑似节点集合中;
过滤噪声单元,用于过滤疑似节点集合中由噪声引起的节点;
确定假设集合单元,用于将过滤噪声单元处理之后疑似节点集合中的所有故障节点排列组合,得到包括单点故障和多点故障在内的所有节点集的集合,将每一个节点集所能解释的症状集合与当前接收到的症状集合进行比较,若前者完全包含后者,则保留该节点集,t t
否则将该节点集移除,最终得到多个能够解释当前症状的假设故障节点集Hi ={Fi =1,t t
Fj =1......Fk =1},F表示故障节点,上标均表示时间片,下标均表示节点编号;
t t
计算信度单元,用于计算每一个假设故障节点集的信度B(Hi,So),然后从中选择信度*t
最大的假设故障节点集作为最终的定位结果H ;
先验概率更新单元,用于对于当前时间片中的每一个故障节点,计算其后验概率,利用后验概率和传播概率,更新当前故障节点的先验概率,将更新后的先验概率作为该故障节点下一个时间片的先验概率。
一种网络故障定位方法和装置 \n技术领域\n[0001] 本发明涉及计算机网络领域,尤其涉及一种网络故障定位方法和装置。 背景技术\n[0002] 现有的故障定位技术主要有确定性推理技术和不确定性推理技术。确定性推理技术是指故障的发生必然会导致某些症状的发生,主要有基于规则的、基于模型的等;而不确定性推理技术是指故障的发生以一定的概率导致某些症状的发生,目前比较流行的是基于贝叶斯网络的故障定位技术,包括基于静态贝叶斯网络的故障定位技术和基于动态贝叶斯网络的故障定位技术。 \n[0003] 基于静态贝叶斯网络的故障定位技术主要有:变量消元算法、团树传播算法、迭代信度传播算法等,以及这些算法的变种,例如IHU算法、Shrink算法、ITFD算法等,这些算法都有一个共同的假设作为前提,即在故障定位的过程中,被管系统是不变的,即诊断过程中各个节点的状态不会发生变化,利用当前观测周期内观测到的所有症状,对当前时间段系统中各个节点状态进行诊断,这种方法没有考虑在观测周期内或是诊断过程中某个节点的状态发生变化的情况。而在大量业务部署的复杂网络中,由于路由变化,访问量变化,链路拥塞或解除等原因,节点的状态都以一定的概率发生动态的变化。在网络规模比较大时,分布在被管网络中的站点或代理的观测周期不可能过于密集,因此在同一个观测周期内观测到的节点状态可能出现不一致的情况,这就使得静态贝叶斯方法诊断错误率升高,诊断效率降低。 \n[0004] 为了解决静态贝叶斯网络进行故障定位时出现的问题,现有技术中通常采用动态贝叶斯网络。动态贝叶斯网络将系统表示成从起始时间到终止时间的一系列快照,每一个快照都包括一个完整的贝叶斯网 络,表示系统在该时间的状态,前后两个快照之间相关的节点添加因果联系,表示在不同时间片的节点状态传播关系。基于动态贝叶斯网络的推理是处理动态不确定性问题的重要方法,在动态系统故障定位中发挥着重要的作用。其中,精确推理算法有forwards-backwards算法、frontier算法、The interface算法等,但这些算法由于精确推理算法复杂度高,不能满足大规模的动态贝叶斯网络推理的需要。 [0005] 由此可以看出,上述现有技术存在以下缺陷: \n[0006] (1)不能解决网络中节点状态和特性随时间动态变化的问题。基于静态贝叶斯网络的故障定位系统虽然取得了较好的诊断效率,但是他们都是以被管系统节点状态和特性不会随时间片动态变化为前提的。在大量业务部署的复杂网络中,由于路由变化,访问量变化,链路拥塞或解除等原因,节点的状态和特性都是以一定的概率发生动态的变化,这给基于静态贝叶斯网络的故障定位提出了新的挑战。 \n[0007] (2)网络中的噪声对现有的算法影响较大。现有的基于动态贝叶斯网络的故障定位技术中并没有考虑噪声对算法的影响。而在实际网络中,网络环境复杂,产生告警丢失或虚假告警是在所难免的,当网络规模较大的时候,虚假症状的个数会明显增多,因此一种好的噪声处理机制,对提高故障定位准确度意义重大。 \n[0008] (3)现有的基于动态贝叶斯网络的故障定位技术算法复杂度较高,而在实际网络节点规模比较大的情况下,故障定位的时间比较长,因此已经失去故障定位的意义。 发明内容\n[0009] 本发明的目的是针对现有技术中存在的缺陷和不足,提出了一种网络故障定位的方案,其针对网络的动态性采用基于动态贝叶斯网络的模型,加入了时间片信息,并且利用时间片之间的传播概率信息,对每个节点动态地更新其先验概率,利用先验概率参与信度计算,同时,本发明的方案还实现了对虚假告警的过滤。 \n[0010] 为达到上述目的,本发明提供了一种网络故障定位方法,包括以下步骤: [0011] S1,建立传播模型:利用静态贝叶斯网络进行建模,然后通过加入时间因素扩展静态贝叶斯模型得到动态贝叶斯网络模型; \n[0012] S2,处理时间片信息:首先对当前时间片进行判断,如果是初始时间片,则进入步t t-1\n骤S3,否则判断当前症状集合So 是否和上一个时间片的症状集合信息So 相同,t表示t-1\n时间片,若相同,则使用上一个时间片定位的故障节点H* ,作为当前时间片定位的故障节t\n点H*,并进入步骤S6,否则将上一个时间片定位的故障节点并入当前时间片的疑似节点集合中,再进入步骤S3,其中,当一个端到端的网络服务失败时,该服务所经过路径上的所有节点都被认为是疑似节点,被并入到疑似节点集合中; \n[0013] S3,过滤噪声:过滤疑似节点集合中由噪声引起的节点; \n[0014] S4,确定假设集合:将步骤S3处理之后疑似节点集合中的所有故障节点排列组合,得到包括单点故障和多点故障在内的所有节点集的集合,将每一个节点集所能解释的症状与当前接收到的症状集合进行比较,若前者完全包含后者,则保留该节点集,否则将该t t t\n节点集移除,最终得到多个能够解释当前症状的假设故障节点集Hi ={Fi =1,Fj =1……t\nFk =1},F表示故障节点,上标均表示时间片,下标均表示节点编号; \n[0015] S5,计算信度:计算每一个假设故障节点集的信度B(Hit,Sot),然后从中选择信度*t\n最大的假设故障节点集作为最终的定位结果H ; \n[0016] S6,先验概率更新:对于当前时间片中的每一个故障节点,计算其后验概率,利用后验概率和传播概率,更新当前故障节点的先验概率,将更新后的先验概率作为该故障节点下一个时间片的先验概率。 \n[0017] 其中,所述步骤S3具体包括: \n[0018] S31,对于每一个疑似节点计算其观测率,其中,观测率表示一 个故障节点所能解释的所有症状中,观测到的症状所占的比率; \n[0019] S32,对每一个疑似节点的观测率与预设门限进行比较,如果该值小于预设门限,则将该疑似节点从疑似节点集合中移除。 \n[0020] 本发明还提供了一种网络故障定位装置,包括: \n[0021] 建模单元,用于利用静态贝叶斯网络进行建模,然后通过加入时间因素扩展静态贝叶斯模型得到动态贝叶斯网络模型; \n[0022] 处理时间片信息单元,用于对当前时间片进行判断,如果是初始时间片,则利用过t\n滤噪声单元进行噪声过滤,否则判断当前症状集合So 是否和上一个时间片的症状集合信t-1 t-1\n息So 相同,t表示时间片,若相同,则使用上一个时间片定位的故障节点H* ,作为当前t\n时间片定位的故障节点H*,并利用先验概率更新单元进行先验概率更新,否则将上一个时间片定位的故障节点并入当前时间片的疑似节点集合中,再利用过滤噪声单元进行噪声过滤,其中,当一个端到端的网络服务失败时,该服务所经过路径上的所有节点都被认为是疑似节点,被并入到疑似节点集合中; \n[0023] 过滤噪声单元,用于过滤疑似节点集合中由噪声引起的节点; \n[0024] 确定假设集合单元,用于将过滤噪声单元处理之后疑似节点集合中的所有故障节点排列组合,得到包括单点故障和多点故障在内的所有节点集的集合,将每一个节点集所能解释的症状与当前接收到的症状集合进行比较,若前者完全包含后者,则保留该节点集,t t\n否则将该节点集移除,最终得到多个能够解释当前症状的假设故障节点集Hi ={Fi =1,t t\nFj =1……Fk =1},F表示故障节点,上标均表示时间片,下标均表示节点编号; [0025] 计算信度单元,用于计算每一个假设故障节点集的信度B(Hit,Sot),然后从中选择*t\n信度最大的假设故障节点集作为最终的定位结果H ; \n[0026] 先验概率更新单元,用于对于当前时间片中的每一个故障节点, 计算其后验概率,利用后验概率和传播概率,更新当前故障节点的先验概率,将更新后的先验概率作为该故障节点下一个时间片的先验概率。 \n[0027] 上述技术方案具有如下优点:1)通过对告警信息进行预处理节约了计算资源。2)通过对虚假告警进行过滤,在提高算法准确度的同时也降低了算法复杂度,提高了定位速度及抗噪声能力。对于大量业务部署的复杂网络(例如500个节点以上),仍然可以在小于\n300ms的时间内定位出根故障,运维人员可以根据诊断结果快速做出反应,保证系统的正常运行。即使网络规模(例如500个节点以上)比较大,而且网络存在较大噪声的情况下,诊断准确度依然在80%以上。3)加入了时间片信息,并且利用时间片之间的传播概率信息,对每个节点动态地更新其先验概率(即发生故障的概率),利用先验概率参与信度计算,大大提高了准确度。 \n附图说明\n[0028] 图1是本发明实施例的方法流程图; \n[0029] 图2是本发明实施例的方法中确定假设集合的方法流程图; \n[0030] 图3是本发明实施例的方法中所使用的拓扑结构图; \n[0031] 图4是本发明实施例的方法中所建立的静态贝叶斯网络模型; \n[0032] 图5是本发明实施例的方法中所建立的动态贝叶斯网络模型。 \n具体实施方式\n[0033] 下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。 \n[0034] 图1是依据本发明实施例的的方法流程图,如图1所示,本发明实施例的方法包括如下步骤: \n[0035] 101,建立传播模型:对网络所有可能的故障和症状之间的对应关系利用静态贝叶斯网络进行建模,然后通过加入时间因素扩展静态贝叶斯模型得到动态贝叶斯网络模型。\nt\n在贝叶斯网络模型中有两类节 点,分别为故障节点Fi(上标表示时间片,下标表示节点编t\n号)和症状节点Si(上标表示时间片,下标表示节点编号)。为每一个故障节点指定一个先t t t-1\n验概率P(Fi)和一个传播概率P(Fi|Fi ),先验概率表示该故障节点初始发生故障的概率,传播概率表示该故障节点状态随时间发生变化的概率。为每一个症状节点指定一个条件概t t\n率表P(Si|Fi),表示与此症状有关联关系的故障节点导致该症状节点出现症状的概率。 [0036] 102~106,处理时间片信息:假设当前时间片接收到的症状集合为Sot。首先对当前时间片进行判断,如果是初始时间片,则直接进入107进行处理。否则判断当前症状集合t t-1\n信息So 是否和上一个时间片的症状集合信息So 相同,若相同,说明系统中各个节点的状t t-1\n态并没有发生变化,则直接使用上一个时间片定位的故障节点结果H* =H* ,并进入步骤\n110进行处理。否则将上一个时间片中诊断的故障节点并入当前时间片的疑似节点集合中 进入噪声过滤步骤。 \n[0037] 107,过滤噪声:当一个端到端的网络服务失败时,该服务所经过路径上的所有节点,都被认为是疑似节点Fsus。在疑似节点集合Fsus中,如果与某个节点相关联的症状节点有多个,则说明如果该疑似节点发生故障,它将会导致多个症状的发生。通过分析接收到的症状,如果某个疑似节点所能解释的只有很少一部分症状,没有达到一定的门限值,则认为此疑似节点是由于噪声产生的,并不是疑似节点集合中的一员,需要将其过滤。为了过滤掉这些由于噪声引起的虚假信息,本发明提出通过观测率RatioFi来设置过滤门限进行过滤。 [0038] 观测率表示某个故障节点所能解释的所有症状中,观测到的症状(即输入症状)所占的比率,其计算方法为 \n[0039] \nt\n[0040] 其中,S表示节点Fi 能够解释的所有症状集合,S0表示当前时间片接收到的症状集合。 \nt\n[0041] 举例来说,若与Fi 相关联的症状一共有5个,假设条件概率都相同,而收到的症状t\n中Fi 只能解释一个,则此时RatioFi=0.2。 \n[0042] 对于每一个疑似节点计算其RatioFi值,如果小于某个设置的门限,则认为是由于噪声引起的,将其过滤掉,即从疑似节点集合中移除。假设门限设置为0.5,上述的0.2t t\n<0.5,则认为此时Fi 是由噪声引起的,Fi 将从疑似节点集合中过滤掉。 \n[0043] 根据过滤后的疑似节点集合,保留与之相关的症状,构成一个简化后的新模型。 [0044] 108,确定假设集合:针对简化后的模型,将所有的故障节点排列组合,得到包括单点故障和多点故障在内的所有可能节点集的集合。将每一个可能节点集所能解释的症状与当前接收到的症状集合进行比较,如果完全包含当前症状集合,则保留该节点集,否则将该t t t\n节点集移除,最终得到多个能够解释当前症状的假设故障节点集Hi ={Fi =1,Fj =1……t\nFk =1}。该步骤如图2所示。 \nt t\n[0045] 109,计算信度:计算每一个假设节点集的信度B(Hi,So),计算方法为: [0046] \n[0047] 其中,Sot表示观测到的症状集合,pa(Sjt)表示能够解释Sjt的故障集合,Ft表示故t\n障节点的集合,S 表示症状节点的集合。 \n[0048] 从中,选择信度最大的假设集合作为最终定位结果H*t。 \n[0049] 110,计算后验概率更新节点概率:对于当前时间片中的每一个故障节点,计算其后验概率,后验概率的计算方法为: \n[0050] \n[0051] 利用后验概率和传播概率,更新当前故障节点的概率,其计算方法为: [0052] \n[0053] 将其作为下一个时间片的先验概率。进入下一个时间片继续处理。 \n[0054] 本发明还提供了一种网络故障定位装置,包括:建模单元;处理时间片信息单元;\n过滤噪声单元;确定假设集合单元;计算信度单元;先验概率更新单元。各单元之间的关系与上述步骤相对应。 \n[0055] 下面以一个实际IP网络的部分拓扑结构为例来进一步说明本发明的故障定位方法。该拓扑结构中任意两个主机之间存在着端到端的服务,我们用S加上任意两个主机编号来表示此服务发生故障时表现出来的症状信息,例如SAB。L1-L7代表网络中的链路信息,即可能发生故障的点,称之为故障节点,在本发明实施例的方法的模型中用F表示,上层服务的好坏依赖于这些故障节点。网络中存在一个告警采集机,实时监控和采集网络中存在的告警信息。此拓扑结构如图3所示。 \n[0056] 本发明提出的网络故障定位方法的详细实施步骤如下: \n[0057] 1、建立传播模型,具体步骤包括: \n[0058] 1)根据贝叶斯网络建模方法,根据症状和故障之间的依赖关系,首先建立静态贝叶斯网络模型,如图4所示。 \n[0059] 2)然后加入时间信息,扩展静态贝叶斯网络得到动态贝叶斯网 络模型如图5所示。 \n[0060] 3)指定先验概率、传播概率和条件概率表。通过分析告警库中的告警数据,得到各故障节点的先验概率P(Fi),分别是:(0.002,0.003,0.008,0.001,0.002,0.006,0.0005),t t+1 t t+1\n故障节点的传播概率为:P(Fi =1|Fi =0)=P(Fi =1|Fi =0)=0.01。 \n[0061] 故障传播模型中每个症状节点的条件概率表(表示与此症状有关联关系的故障节点导致该症状节点出现相应症状的概率)如下表1所示: \n[0062] 表1 \n[0063] \n[0064] 2、处理时间片信息,其步骤包括: \n[0065] (1)在第一个时间片,假设接收到的症状为SAD,SBC,诊断步骤如下: [0066] 判断是否是第一个时间片(即判断t是否等于1),经判断是第一个时间片,则直接\n1 1\n进入噪声过滤,经过一系列处理后得到最终定位结果{F2,F4},然后计算每一个节点的后\n1 1 1 1\n验概率Postprior(F2|Pa(F2))=0.00272,Postprior(F4|Pa(F4))=0.0009;更新发生\n2 2\n故障节点的下一个时间片的先验概率:P(F2)=0.0126, P(F4)=0.0108。第一个时间片诊断结束。 \n[0067] (2)在第二个时间片,假设接收到的症状信息为SAD、SAE、SBC,诊断步骤如下: [0068] ①时间信息处理:判断是否为第一个时间片,如果不是第一个时间片,判断收到的症状信息是否与上一个时间片的症状信息相同,如果相同,则直接输出上一个时间片的定位结果,并更新发生故障节点的先验概率。本实施例中经过判断,当前时间片与上一个时间片的症状信息不同,则进入②; \n[0069] ②过滤噪声:经过分析症状信息,得到所有可能的疑似节点为F1,F2,F3,F4,F5,F6,F7。对每一个疑似节点,计算其观测率,分别为:1.0,1.0,0.5,1.0,0.5,1.0,0.66。假设设置门限为0.8,这个门限在不同的网络环境中值不同,可以根据具体的噪声情况进行调节。则经过噪声过滤后疑似节点集合为{F1,F2,F4,F6}; \n[0070] ③确定假设集合:首先分析单故障集合时的情况,分别是{F1}、{F2}、{F4}和{F6}。\n{F1}所能解释的症状为SAD,SAE,不能解释完所有症状,不能作为最终假设集合;{F2}所能解释的症状为SBC,不能解释完所有症状,不能作为最终假设集合;{F4}所能解释的症状为SAD,不能解释完所有症状,不能作为最终假设集合;{F6}所能解释的症状为SAD,SAE,SBC,能够解释完所有的症状,所以单故障的情况下我们得到一个假设集合{F6}。此时将故障F6从故障集合中移除输出。 \n[0071] 然后分析两个故障同时发生的情况,将故障集合中剩余的故障两两组合,即{F1,F2},{F1,F4}和{F2,F4}。{F1,F2}所能解释的症状是SAD,SAE,SBC,可以解释完所有的症状,作为一个最终的假设集合;{F1,F4}所能解释的症状是SAD,不能解释完所有症状,不能作为最终假设集合;{F2,F4}所能解释的症状为SAD,SBC,同样不能解释完所有的症状。因此在两个故障同时发生的情况下,得到最终假设 集合为{F1,F2},将F1,F2从故障集合中移除。此时故障集合中还剩一个故障,无法进行判断三个故障同时发生的情况,分析结束。 [0072] ④计算信度确定结果。此时我们得到两个最终的假设集合:{F6}和{F1,F2},计算这两个假设集合的信度分别为:B({F6}=0.005197;B({F1,F2})=0.0000046;选出信度较大的一个作为最终定位的节点集输出,即{F6}。 \n[0073] ⑤更新节点概率。计算最终定位的节点集中故障节点的后验概率为\nt-1\nPostprior(F6 )=0.00519;利用此后验概率和传播概率更新此节点在下一个时间片的先t\n验概率P(F6)=0.015;随着故障发生的次数增多,发生故障的概率会动态增大,这样更有利于下一个时间片的准确定位。 \n[0074] (3)进入下一个时间片,后续时间片和第二个时间片的故障定位过程类似。 [0075] 以上过程展示了基于动态贝叶斯网络的故障定位的全过程。此方法可以应用到大型网络中,以进行快速、准确的故障定位。 \n[0076] 以上所述仅是本发明的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
法律信息
- 2011-04-27
- 2010-09-15
实质审查的生效
IPC(主分类): H04L 12/26
专利申请号: 200910243782.0
申请日: 2009.12.24
- 2010-07-21
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2006-10-25
|
2006-02-20
| | |
2
| | 暂无 |
1996-08-21
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |