专利名称:确定异常的相似分数的制作方法
确定异常的相似分数背景技术
当请信息科技(IT)专家解决计算机系统的问题时,这些专家常常不知其他系统 早先发生过的相关问题。IT专家常常被迫在不知道其他系统的相似问题的情况下去解决问题。
分配;
为了本发明的示意性实施例的详细描述,现在将对附图进行参考图1示出了依据各实施例的一种系统;图2示出了依据各实施例的第一异常的示例;图3示出了依据各实施例的第二异常的示例;图4进一步阐释了依据各实施例的第一和第二异常;图5示出了依据各实施例的第一和第二异常的另一描绘;图6示出了依据各实施例的一种方法;图7和8阐释了依据各实施例的来自一个异常的配置项(Cl)与另一异常的Cl的图9示出了依据各实施例的图6的方法的进一步细节;图10-13阐释了将此处描述的方法应用于图4的示例;以及 图14示出了依据各实施例的图6的方法的进一步细节。
具体实施方式
以下讨论涉及本发明的各实施例。虽然这些实施例中的一个或多个可以是优选 的,但是所公开的实施例不应解释为,或者以其他方式用作,限制包括权利要求的本公开的 范围。另外,本领域技术人员应理解,以下说明具有广泛的应用,并且任何实施例的讨论仅 用作该实施例的示例,并非意在暗示包括权利要求的本公开的范围被局限于该实施例。
图1示出了包括一个或多个服务器20的网络的实施例,所述一个或多个服务器20 被耦合在一起并经由网络链路25耦合于数据库40和异常确定单元50。每个服务器20可 包括耦合于存储器24的一个或多个处理器22、一个或多个端口 23、以及硬盘驱动器26。存 储器24和硬盘驱动器26共同或单独地构成计算机可读存储介质,软件可存储于其上且被 处理器22执行。存储器24还存储可被处理器22执行的一个或多个应用。
服务器20和数据库40包括“配置项”(Cl)。通常,Cl包括硬件组件或软件组 件,其性能在某种程度上可以被监视。例如,每个服务器20包括处理器22。各处理器度量 (metric)可被监视,例如处理器利用率,在本公开中指定为“CPU”(中央处理单元)(即,处 理器当前正在经历的全容量的百分比)。作为与服务器相关联的被监视度量的额外示例, 服务器的存储器24的使用可被监视(例如,被使用的存储器容量的百分比),并且在此称 为“MEM”。服务器的另一被监视的度量被称为“PING”,其是接收对消息的响应所需的时间。 “PORT”是另一个服务器度量,其指的是从特定服务器20上的特定端口接收响应所需的时间。被称为“PF”(页面错误)的度量指的是,例如,服务器存储器访问页面错误中的结果的 频率。数据库,诸如数据库40,也可具有被监视的度量。例如,度量QUERY指的是在数据库 上运行特定查询所需的时间。web (网络)服务器可具有被监视的REQUEST度量。REQUEST 度量指的是web服务器上运行的特定数据库实例所处理的请求的数量。不同的和/或额外 的度量也可以被监视。例如,应用28可以像端口 23—样被监视。通常,每个度量与一个Cl 相关联。
仍然参考图1,一个或多个监视器30被提供以监视诸如以上所列的各种度量。在 至少一些实施例中,监视器30包括可由处理器22执行的代码。在其他实施例中,监视器可 包括硬件逻辑电路。在一些实施例中,监视器30被实施为处理器22上执行的一段集中的 代码,而在其他实施例中,每个被监视的度量具有其自己的监视器(可执行软件或硬件), 该监视器与用作监视其他度量的监视器相分离。监视器可以集中或分布于整个网络中。
每个被监视的度量为了异常行为而被监视。监视器30可配置特定阈值。当相关 联的度量超出阈值时,该度量被视为异常。例如,CPU度量可配置为85%。一旦处理器利用 率超过了容量的85%,那么CPU度量就视为异常。作为另一示例,QUERY度量可配置为500 毫秒。花费时间超过500毫秒的对数据库40的查询请求被视为异常。
每个监视器30具有相关联的名称。例如,监视HOSTl的处理器利用率的监视器30 可称作“H0ST1的CPU利用率”。每个监视器30具有标识被监视的度量的类型和为之监视 度量的特定Cl的名称。
图1中的异常确定单元50在至少一些实施例中包括计算机,并且依此,包括耦合 于计算机可读存储介质(CRSM) 54的处理器52。CRSM 54可包括易失性存储器(例如,随机 存取存储器)、非易失性存储器(例如,硬盘驱动器、只读存储器,等等)、或者它们的组合。 CRSM 54包括可由处理器52执行的软件56。CRSM 54还包括历史异常数据58。历史异常 数据58包括一个或多个网络的的异常度量信息连同这些网络的拓扑结构。
图2阐释了特定网络的此类历史异常数据58的示例,该网络的至少一个被监视度 量视为异常。图2的表示描绘了在该特定网络中被监视的各Cl连同这些Cl的相互依赖 关系(interdependence),以及与每个这种Cl相关联的被监视的度量。图2中描绘的特定 网络称作“异常I”。在异常I的示例中,用较大圆圈标示了 4个Cl——DBl (I个数据库) 和3个服务器(HOST1、H0ST2、和H0ST3)。将DBl连接至Ij HOSTl和H0ST2的每一个的链接 (link) 70和72指示了 DBl依赖于HOSTl和H0ST2中的每一个,也即,数据库DBl运行于 HOSTl或H0ST2任一上。DBl不运行于H0ST3上,因此没有将DBl连接到H0ST3的链接。
连接到每个Cl的较小的圆圈标示了与每个这样的经历过异常行为的Cl相关联 的度量。在图1的示例中,每个Cl——DB1、H0ST1、H0ST2、H0ST3——具有被视为异常的至 少一个被监视度量。DBl具有标为QUERY的异常度量,这意味着对DBl的一个或多个查询 请求的完成超出了相关联的时间阈值。HOSTl具有三个异常度量——CPU、MEM和PING。与 HOSTl相关联的处理器和存储器使用超出了所定义的阈值。HOSTl的PING异常度量指示 接收对HOST I的消息的响应所花费的时间比阈值时间量长。H0ST2仅具有两个异常度量(PF 和PING),并且H0ST3也具有两个异常度量(CPU和PORT)。对于每个Cl而言还可以有额外 度量被监视,但图1示出的度量是已经被视为异常的度量。剩余附图中的较大的Cl圆圈和 较小的度量圆圈的含义具有类似的含义。图2和本公开的剩余附图中示出的度量仅仅是那些已经被视为异常的被监视度量。其他度量可以被监视,但不是异常。
图3阐释了另一个存储在异常确定单元50的历史异常数据55中并且包括四个 Cl (命名为DB2、H0ST4、H0ST5和HS)的网络表示。图3中描绘的网络被标为“异常2”。Cl 名称IISl (因特网信息服务)指的是web服务器。DB2通过链接82而链接到H0ST4,意味 着DB2运行于H0ST4上。如链接84所指示的,IISl链接到H0ST5并且因此依赖于H0ST5。 DB2具有一个异常QUERY度量。H0ST4具有两个异常度量——CPU和MEM。H0ST5具有一个 异常度量PF。IISl具有一个异常度量——REQUESTS。
图4并排示出了异常I和异常2。每个网络包括一个数据库和多个服务器(异常 I的三个服务器H0ST1-3,和异常2的两个服务器H0ST4-5)。异常2还包括异常I中没有的 IISlCI。图4还示出了各Cl的已经被确定为异常的度量。
图5是列出Cl的异常I和异常2的另一描绘。对于每个Cl,任何连接到该Cl的 相邻Cl也连同任何相关联的异常度量一起示出。
图6阐释了方法实施例,其中计算两个异常的相似分数,诸如异常I和异常2。为 之计算相似分数的异常表示网络、Cl之间的依赖关系的其拓扑结构、以及与Cl相关联的异 常度量。因此,相似分数提供了两个网络的异常行为的相似度的数值指示。为之计算相似 分数的异常可对应于不同网络,或者可以是相同网络在不同时间点的快照。
图6中描绘的动作可由网络中的异常确定服务器50或其他计算机的处理器52上 执行的软件56来执行。图6和此处描述的其他方法实施例的动作可依照所示的次序、或者 以不同的次序来执行。进一步地,此处描述的方法实施例中,两个或多个动作可被并行而非 串行地执行。
在102处,监视器和相关联Cl被提取。该提取动作包括,至少在一些实施例中,移 除对监视器和Cl的特定实例的参考。例如,为“H0ST1的CPU利用率”提取监视器消除了对 “H0ST1”的参考而只留下“CPU利用率”。作为额外示例,提取Cl “H0ST4”包括将Cl重命名 为“HOST”而不参考HOST的特定实例。监视器和相关联Cl基于监视器类型(CPU利用率、 存储器使用等)和Cl类型(HOST、DB、IIS等)而被提取。
在104处,方法包括在2个异常之间匹配共同类型的Cl,从而将来自一个异常的一 个或多个Cl分配给来自其他异常的特定Cl。在106处,基于两个异常的异常度量和互连的 Cl的拓扑结构以及两个异常之间的Cl的分配,来计算相似分数。
在动作104处,如以上解释的,确定如何将来自一个异常的一个或多个Cl匹配到 其他异常中的Cl。图7-13进一步阐释了该确定。图7示出了对于异常I中的DB1,在异常 2中仅有一个Cl与其具有相同类型(数据库)。因此,异常I中的DBl与异常2中的DB2 匹配。图7还阐释了异常I中的IISl在异常I中没有相同类型的Cl。
图8描绘了待匹配的剩余Cl——异常I的H0ST1、H0ST2和H0ST3,以及异常2的 H0ST4和H0ST5。动作104确定了如何将异常I的三个HOST与异常2的两个HOST相匹配。 一个异常的每个Cl仅能与另一异常的单个Cl匹配。因此,异常I的两个HOST将与异常2 的两个HOST匹配,而异常I的第三个HOST将不会与异常2中的HOST匹配。
图9提供了如何能够实现异常之间的Cl的匹配的附加细节。在122处,在两个异 常之间的共同Cl类型内的每对Cl (例如,来自每个异常的一个Cl)之间计算分数函数。例 如,为异常I中的H0ST1和异常2中的H0ST4计算分数函数,并且为H0ST1和H0ST5计算另一分数函数。类似地,为H0ST2/4和H0ST2/5的Cl对的每一对、且为H0ST3/4和H0ST3/5 的Cl对计算分数函数。
依据至少一个实施例,使用以下分数函数 4TotalElements\^ TotalElementsl
其中CIl是来自一个异常的Cl,且CI2是来自另一个异常的相同类型的Cl,为其计算了分数函数。CommonMetrics表示CIl和CI2之间共同的共同异常度量类型的数量。在 HOSTl和H0ST4的示例中,两个主机都有共同的CPU和MEM度量(参见例如附图4),并且因此该Cl对的CommonMetrics值是2。Metricffeight是对关于链接到CIl和CI2的其他Cl 的度量给出的权重。例如,MetricWeight为2意味着度量类型的匹配的重要性是相邻Cl类型的匹配的两倍。CommonNeighbors是CIl和CI2之间的共同Cl类型的邻居的数量。例如, HOST I和H0ST4均具有一个相连接的Cl,并且每个这样的相邻Cl具有类型DB (链接到HOST I 的DBl和链接到H0ST4的DB2)。因此,HOSTl和H0ST2之间的CommonNeighbors的值是I。 如果CIl和CI2是相同的Cl实例(例如,二者都是H0ST1)的话,SameInstanceIndicator 是I,否则为O。
TotalElementsl 和 TotalElements2 由以下公式给出
TotalElementsl = TotalMetricsl*Metricffeight+TotalNei·ghborsl+SameInsta ncelndicator
TotalElements2 = TotalMetricsl*Metricffeight+TotalNeighbors2+SameInsta ncelndicator
其中TotalMetricsl是CIl的度量的总数量。对于H0ST1,HOSTl共有三种度量(CPU、MEM 和 PING)。因此,对于 H0ST1,TotalMetricsl 的值是 3。TotalMetrics2 是 CI2的度量的总数量。对于H0ST4,H0ST2共有两种度量(CPU和MEM)。因此,对于H0ST4, TotalMetrics2的值是2。TotalNeighborsl是直接链接到CIl的Cl的总数。HOST I,例如,仅链接到一个其他 Cl (DBl),因此,HOSTl 的 TotalNeighborsl 是 I。TotalNeighbors2 是直接链接到CI2的Cl的总数。H0ST4,例如,仅链接到一个其他Cl (DB2),因此,H0ST4的 TotalNeighbors2 是 I。
图10示出了四对Cl的分数函数计算。可以看出,HOSTl和H0ST4的分数以及H0ST2 和H0ST5的分数是所列出的那些分数中最高的,分别为O. 85和O. 52。
在图9中的124处,每个分数函数乘以(-1)以将分数函数转换成成本函数。在 126处,组合优化函数被应用于成本函数,从而以最低的总计(aggregated)成本函数(或者最高的总计分数函数)对异常之间的Cl进行匹配。该优化函数以这样的方式将来自一个异常的Cl分配到其他异常中的Cl,S卩,所分配的Cl的成本函数的总和低于其他所有可能的分配。依据至少一个实施例,就这点而言,使用匈牙利算法。
一旦图10的示例的成本函数通过组合优化函数被处理,该优化函数就确定Cl将如何被匹配。在一个示例中,图11阐释了异常I的HOSTl应当匹配至异常2的H0ST4,并且异常I的H0ST2应当匹配至异常2的H0ST5,从而剩下异常I的H0ST3与异常2的Cl不匹配。图12阐释了异常I和2的所有Cl,并且标识了以上讨论的匹配。HOST如以上所论述的那样匹配,并且数据库DBl和DB2相匹配。IISl和H0ST3仍然未匹配。图13示出了异常、它们的拓扑结构和Cl之间的匹配的另一描绘。图13中的虚线示出了一个异常中的一给定Cl与另一个异常中的相同类型的另一 Cl相匹配。在图13的示例中,匹配的Cl的分数函数的值在虚线上的括号中示出。
简单参考图6,按照动作106,一旦各Cl相匹配,就为两个异常计算相似分数。图14 提供了依据至少一个实施例的关于如何计算相似分数的进一步细节。在152处,异常I中的Cl的数量被确定(NumOfCIl)。在图13的示例中,异常I具有四个Cl (DB1、H0ST1、H0ST2 和H0ST3),并且因此NumOfCIl是4。在154处,异常2中的Cl的数量被确定(NumOfCI2)。 在图13的示例中,异常2具有四个CI(DB2、H0ST4、H0ST5和IIS1),并且因此Num0fCI2是 4。
在156处,依据Cl的匹配,确定在两个异常之间匹配的链接的数量 (MatchingLinksCount)。在图13的示例中,仅链接180、182把在两个异常中具有匹配对应物(counterpart)的两个Cl链接起来,因此MatchingLinksCount的值是I。存在这样一对匹配的链接,因此MatchingLinksCount的值为I,以反映该一对。
在158处,确定了异常I中连接到一个Cl的链接的数量(NumOfLinksl),其中该 Cl已经与异常2中的一个Cl相匹配。在图13的示例中,两个链接180和184连接到了已经匹配的Cl,因此NumOfLinksl的值为2。
类似地,在160处,确定了异常2中连接到一 个Cl的链接的数量(Num0fLinks2), 该Cl已经与异常I中的一个Cl相匹配。在图13的示例中,两个链接182和186连接到了已经匹配的Cl,因此Num0fLinks2的值为2。
在162处,该方法包括,计算所分配的Cl的所有分数函数的总和,然后将 MatchLinksCount的值加到该总和上。在图13的示例中,如上所述,在虚线上的括号内示出了匹配的Cl的分数函数的值,其指示了相匹配的Cl。因此,分数函数1、0. 85和O. 52被总和在一起,并且MatchLinksCount的值,1,被加到该总和上。在164处,来自动作162的结果被除以[(NumOfCI s 1+Num0f Links I) * (NumOfCI s2+Num0fLinks2)]的平方根。以下等式阐释了此处所示的示例中的动作162和164的计算1 + 0.85 + 0.52 + 1 _ n “
^[(4+ 2) *(4+ 2)] ~ .
因此,这里描述的异常I和异常2的示例的相似分数为O. 56。还参照图14,阐释了上述的数学操作。
采用这里描述的实施例,可对两个异常(即,两个正经历异常行为的网络)计算相似分数。此外,可对多对异常行为网络计算相似分数。例如,可针对一个异常相对多个其他异常来计算相似分数。对应于最高相似分数的网络对表明那些特定异常最为相似。
关于哪对异常最相似的确定能够以多种方式使用。例如,一 IT专家可使异常确定服务器50,基于相似分数,确定历史异常数据58中的哪个异常与该专家正在分析的有问题的网络最相似。一旦专家、就此而言的其他人,确定了哪个历史异常最相似,专家就可确定该历史异常是如何被解决的。该解决方案可有助于解决正在分析的网络的问题。
上述讨论旨在阐述本发明各实施例的原理。对于本领域技术人员来说,一旦完全领会到以上公开的内容,很多变化和修改就变得显而易见。以下权利要求意在被解释为包括所有的这样的变化和修改。
权利要求
1.一种系统,包括 存储软件的计算机可读存储介质;以及 处理器,访问所述计算机可读存储介质并执行软件; 其中,当执行软件时,处理器基于Cl的类型在至少第一异常和第二异常中提取配置项(Cl),基于成本函数在第一和第二异常之间匹配共同类型的Cl,以及至少部分地基于匹配的Cl的成本函数和基于第一和第二异常的拓扑结构,为第一和第二异常计算相似分数。
2.如权利要求1的系统,其中处理器通过计算第一和第二异常之间的每对共同类型的Cl之间的分数函数,基于成本函数将共同类型的Cl进行匹配。
3.如权利要求2的系统,其中每个Cl具有一个或多个被监视的度量,每个度量为一种类型,并且至少一些Cl互相依赖,以及其中处理器计算给定Cl对的分数函数,包括基于以下中的一个或多个来计算分数函数 第一和第二异常之间共同的度量类型的数量; 度量权重值; 依赖于为之计算分数函数的给定Cl对的共同的Cl类型的数量; 第一异常的度量的数量;以及 第二异常的度量的数量。
4.如权利要求2的系统,其中处理器对所计算的分数函数应用优化函数。
5.如权利要求2的系统,处理器通过将每对Cl的分数函数加起来而计算相似分数。
6.如权利要求2的系统,其中处理器通过基于分数函数、异常之间相匹配的Cl相互依赖关系的数量、每个异常中的Cl数量、和每个异常中的Cl之间的依赖关系的数量计算相似分数,来计算该相似分数,其中在每个异常中,这些Cl中的至少一个已经与另一异常中的Cl相匹配。
7.一种包括软件的计算机可读存储介质(CRSM),所述软件在由处理器执行时使得该处理器 将第一异常行为网络的配置项(Cl)分配给第二异常行为网络的Cl,所述分配至少基于一对共同类型的Cl的共同度量的数量;以及 基于匹配的Cl,并至少基于根据Cl的分配而匹配的Cl相互依赖关系的数量,确定第一和第二异常行为网络的相似分数。
8.如权利要求7的CRSM,其中该软件使得该处理器还通过计算第一异常行为网络中的每个Cl相对于第二异常行为网络中每个Cl的成本函数,在第一和第二异常行为网络之间分配Cl。
9.如权利要求8的CRSM,其中该软件使得处理器还基于应用于所述成本函数的组合优化函数,在第一和第二异常行为网络之间分配Cl。
10.如权利要求8的CRSM,其中该软件使得处理器还基于成本函数来确定该相似分数。
11.如权利要求7的CRSM,其中该软件使得处理器还基于第一和第二异常行为网络之间共同的邻Cl类型的数量,在第一和第二异常行为网络之间分配Cl。
12.如权利要求7的CRSM,其中该软件使得处理器对于每个异常行为网络,还基于Cl之间的依赖关系的数量,确定该相似分数,其中至少一个这种Cl已经被分配给另一异常行为网络中的Cl。
13.一种计算第一和第二异常之间的相似分数的方法,每个异常包括一个或多个配置项(Cl),一个或多个异常度量与至少一些Cl相关联,并且至少一个Cl通过一链接而依赖于另一 Cl,该方法包括 为第一异常、为第一异常中给定类型的每个Cl和第二异常中相同类型的Cl,计算对应于所述Cl的分数函数,所述分数函数基于以下至少一个与为之计算分数函数的所述Cl相关联的共同异常度量的数量、依赖于为之计算分数函数的给定Cl对的共同Cl类型的数量、以及与为之计算分数函数的每个Cl相关联的异常度量的数量; 确定第一异常的Cl和第二异常的Cl之间的分配;以及 基于所计算的分数函数,以及基于以下中至少一个,计算第一和第二异常的相似分数异常之间匹配的链接的数量、每个异常中的Cl的数量、以及每个异常中的Cl之间的链接的数量,其中每个异常中至少有一个这种Cl已经被分配给另一异常中的Cl。
14.如权利要求13的方法,其中,计算分数函数包括,基于以下中至少一个来计算分数函数与为之计算分数函数的所述Cl相关联的共同异常度量的数量、依赖于为之计算分数函数的给定Cl对的共同Cl类型的数量、以及与为之计算分数函数的每个Cl相关联的异常度量的数量。
15.如权利要求13的方法,其中,计算相似分数包括,基于以下中至少每一个来计算相似分数所计算的分数函数的总和以及匹配的链接的数量、每个异常中的Cl的数量、以及每个异常中的Cl之间的链接的数量,其中每个异常中至少一个这种Cl已经被分配给另一异常中的Cl。
全文摘要
一种方法和系统,包括,基于配置项(CI)的类型在至少第一异常和第二异常中提取CI。进一步地,基于成本函数在第一和第二异常之间匹配共同类型的CI。另外,至少部分地基于匹配的CI的成本函数,和基于第一和第二异常的拓扑结构,为第一和第二异常计算相似分数。
文档编号G06F17/30GK103003811SQ201080067329
公开日2013年3月27日 申请日期2010年6月9日 优先权日2010年6月9日
发明者R·伯恩斯坦, I·科亨, C·卡哈纳 申请人:惠普发展公司,有限责任合伙企业