本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及一種告警信息的處理方法、裝置和系統(tǒng)。
背景技術(shù):
集群,指的是將多個系統(tǒng)連接到一起,使多臺服務(wù)器能夠像一臺機器那樣工作或者看起來好像一臺機器的相關(guān)技術(shù)。通過集群技術(shù),可以提高系統(tǒng)的穩(wěn)定性和網(wǎng)絡(luò)中心的數(shù)據(jù)處理能力及服務(wù)能力。
集群中的應(yīng)用只在一臺服務(wù)器上運行,如果這個應(yīng)用出現(xiàn)故障,其它的某臺服務(wù)器會重新啟動這個應(yīng)用,接管位于共享磁盤柜上的數(shù)據(jù)區(qū),進而使應(yīng)用重新正常運轉(zhuǎn)。但是,由于整個應(yīng)用的切換過程中需要花費一定的時間,因此,會導(dǎo)致一定的延遲,影響整個集群系統(tǒng)的性能,所以,提前獲知設(shè)備故障或系統(tǒng)異常顯得極為重要。為此,現(xiàn)有技術(shù)提出了告警技術(shù),即當(dāng)設(shè)備發(fā)生故障或某些原因?qū)е录合到y(tǒng)發(fā)生不正常的工作狀態(tài)時,集群系統(tǒng)能夠根據(jù)不同類型的故障及不同模塊出現(xiàn)的故障產(chǎn)生告警信息,然后,基于這些告警信息進行告警分析,并將分析結(jié)果通知給用戶,以便用戶可以及時對故障或異常進行處理。
在對現(xiàn)有技術(shù)的研究和實踐過程中,本發(fā)明的發(fā)明人發(fā)現(xiàn),現(xiàn)有的很多告警,常常會因各種原因而產(chǎn)生延時,使得后續(xù)在告警分析時,無法及時獲取到完整的告警信息,最終導(dǎo)致分析不準確,從而無法及時發(fā)現(xiàn)故障或異常,影響系統(tǒng)的穩(wěn)定性和安全性。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種告警信息的處理方法、裝置和系統(tǒng),可以提高告警分析的完整性和準確性,從而使得可以及時發(fā)現(xiàn)故障或異常,有利于提高系統(tǒng)的穩(wěn)定性和安全性。
本發(fā)明實施例提供一種告警信息的處理方法,包括:
接收第一節(jié)點在第一時刻產(chǎn)生的告警信息;
確定所述告警信息為根源告警時,獲取包含第一節(jié)點的鏈路,得到第一鏈路集;
在所述第一鏈路集的鏈路中查找位置位于第一節(jié)點前,并在第一時刻的前后預(yù)設(shè)時間范圍內(nèi)產(chǎn)生過告警信息的節(jié)點,得到第二節(jié)點;
對所述第二節(jié)點進行告警根源分析,并將分析結(jié)果通知給用戶。
相應(yīng)的,本發(fā)明實施例還提供一種告警信息的處理裝置,包括:
接收單元,用于接收第一節(jié)點在第一時刻產(chǎn)生的告警信息,得到第一鏈路集;
獲取單元,用于確定所述告警信息為根源告警時,獲取包含第一節(jié)點的鏈路;
查找單元,用于在所述第一鏈路集的鏈路中查找位置位于第一節(jié)點前,并在第一時刻的前后預(yù)設(shè)時間范圍內(nèi)產(chǎn)生過告警信息的節(jié)點,得到第二節(jié)點;
處理單元,用于對所述第二節(jié)點進行告警根源分析,并將分析結(jié)果通知給用戶。
此外,本發(fā)明實施例還提供一種集群系統(tǒng),包括本發(fā)明實施例所提供的任一種告警信息的處理裝置。
本發(fā)明實施例采用接收第一節(jié)點在第一時刻產(chǎn)生的告警信息后,若確定該告警信息為根源告警,則獲取包含第一節(jié)點的鏈路,得到第一鏈路集,在該第一鏈路集的鏈路中查找位置位于第一節(jié)點前,并在第一時刻的前后預(yù)設(shè)時間范圍內(nèi)產(chǎn)生過告警信息的節(jié)點,得到第二節(jié)點,然后,對第二節(jié)點重新進行告警根源分析,并將分析結(jié)果通知給用戶,從而達到動態(tài)分析告警的根源的目的,彌補了因某些告警信息延時發(fā)出而導(dǎo)致的分析不準的問題,大大提高了告警分析的完整性和準確性,從而便于用戶可以及時發(fā)現(xiàn)故障或異常,有利于提高系統(tǒng)的穩(wěn)定性和安全性。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1a是本發(fā)明實施例提供的集群系統(tǒng)的場景示意圖;
圖1b是本發(fā)明實施例提供的告警信息的處理方法的流程圖;
圖2a是本發(fā)明實施例提供的告警信息的處理方法的另一流程圖;
圖2b是本發(fā)明實施例提供的告警信息的處理方法中的鏈路示意圖;
圖2c是本發(fā)明實施例提供的告警信息的處理方法中的過濾后的鏈路示意圖;
圖2d是本發(fā)明實施例提供的告警信息的處理方法中告警模塊和鏈路疊加后的鏈路示意圖;
圖2e是本發(fā)明實施例提供的告警信息的處理方法中進行告警根源分析的鏈路示意圖;
圖2f是本發(fā)明實施例提供的告警信息的處理方法中的一鏈路示意圖;
圖3是本發(fā)明實施例提供的告警信息的處理裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例提供一種告警信息的處理方法、裝置和系統(tǒng)。
參見圖1a,集群系統(tǒng)可以包括控制設(shè)備,該控制設(shè)備可以包括本發(fā)明實施例所提供的任一種告警信息的處理裝置,此外,該集群系統(tǒng)還可以包括多個節(jié) 點,比如,節(jié)點a、節(jié)點b、節(jié)點c,……節(jié)點n,等等,這些節(jié)點用于對該集群系統(tǒng)中的數(shù)據(jù)進行處理,以提供相應(yīng)的服務(wù),并且,可以在確定發(fā)生故障或異常時產(chǎn)生告警信息,并向控制設(shè)備發(fā)送該告警信息。而控制設(shè)備在接收到該告警信息后,可以對該告警信息進行判斷,若確定為根源告警,則獲取包含該告警節(jié)點(比如,如果節(jié)點a發(fā)送告警信息,則節(jié)點a為告警節(jié)點)的鏈路,在該鏈路中查找位置位于該告警節(jié)點前,并在該告警時間的前后預(yù)設(shè)時間范圍內(nèi),比如以該告警時間為基準,前8個時間窗口以及后4個時間窗口內(nèi),產(chǎn)生過告警信息的節(jié)點,然后,對這些節(jié)點重新進行告警根源分析,并將分析結(jié)果通知給用戶;否則,若確定該告警信息不是根源告警,則可以直接忽略。
以下將分別進行詳細說明。
實施例一、
本實施例將從告警信息的處理裝置的角度進行描述,該告警信息的處理裝置具體可以集成在集群系統(tǒng)的控制設(shè)備中,該控制設(shè)備具體可以為控制服務(wù)器或調(diào)控服務(wù)器等設(shè)備。
一種告警信息的處理方法,包括:接收第一節(jié)點在第一時刻產(chǎn)生的告警信息;確定該告警信息為根源告警時,獲取包含第一節(jié)點的鏈路,得到第一鏈路集;在該第一鏈路集的鏈路中查找位置位于第一節(jié)點前,并在第一時刻的前后預(yù)設(shè)時間范圍內(nèi)產(chǎn)生過告警信息的節(jié)點,得到第二節(jié)點;對該第二節(jié)點進行告警根源分析,并將分析結(jié)果通知給用戶。
如圖1b所示,該告警信息的處理方法的具體流程可以如下:
101、接收第一節(jié)點在第一時刻產(chǎn)生的告警信息。
需說明的是,由于可能會產(chǎn)生延遲,所以,第一節(jié)點產(chǎn)生告警信息的時間(即第一時刻)與發(fā)送該告警信息的時間有可能不同,比如,節(jié)點c0在12:00點產(chǎn)生的告警信息,可能在12:30點才發(fā)出。
102、確定該告警信息為根源告警時,獲取包含第一節(jié)點的鏈路(業(yè)務(wù)鏈 路),得到第一鏈路集。
其中,根源告警的內(nèi)容具體可以根據(jù)實際應(yīng)用的需求進行設(shè)置,比如,該根源告警可以包括節(jié)點發(fā)布變更、節(jié)點機器丟包、節(jié)點下程序崩潰、節(jié)點下機器死機和/或節(jié)點下專線擁塞等告警,即步驟“確定該告警信息為根源告警時,獲取包含第一節(jié)點的鏈路”具體可以為:
確定該告警信息指示節(jié)點發(fā)布變更、節(jié)點機器丟包、節(jié)點下程序崩潰、節(jié)點下機器死機和/或節(jié)點下專線擁塞時,獲取包含第一節(jié)點的鏈路,得到第一鏈路集。
例如,如果該告警信息是由節(jié)點c0發(fā)出的,則此時可以獲取包含節(jié)點c0的鏈路,然后,將這些包含節(jié)點c0的鏈路添加到第一鏈路集中,等等。
103、在該第一鏈路集的鏈路中查找位置位于第一節(jié)點前,并在第一時刻的前后預(yù)設(shè)時間范圍內(nèi)產(chǎn)生過告警信息的節(jié)點,得到第二節(jié)點。
其中,該時間范圍可以根據(jù)實際應(yīng)用的需求進行設(shè)置,比如,可以設(shè)置為在以第一時刻的時間窗為基準,在該基準的前八個時間窗內(nèi),以及后四個時間窗內(nèi),即步驟“在該鏈路中查找位置位于第一節(jié)點前,并在第一時刻的前后預(yù)設(shè)時間范圍內(nèi)產(chǎn)生過告警信息的節(jié)點,得到第二節(jié)點”具體可以如下:
在該第一鏈路集的鏈路中查找位置位于第一節(jié)點前的節(jié)點,得到候選節(jié)點,在該候選節(jié)點中查找在第一時刻的前八個時間窗內(nèi),以及后四個時間窗內(nèi)產(chǎn)生過告警信息的節(jié)點,得到第二節(jié)點。
其中,該時間窗口的大小可以根據(jù)實際應(yīng)用的需求進行設(shè)置。
例如,以第一節(jié)點為節(jié)點c0,且一個時間窗為5分鐘為例進行說明,如果節(jié)點c0產(chǎn)生告警信息的時間為12:00點,則此時,可以查找在這些鏈路(即第一鏈路集的鏈路)中,位置位于c0前的節(jié)點,得到候選節(jié)點,然后,在這些候選節(jié)點中查找11:20~12:20之間產(chǎn)生過告警信息的節(jié)點(即告警節(jié)點),比如,節(jié)點a、節(jié)點b和節(jié)點d,則此時,便可以確定第二節(jié)點為:節(jié)點a、節(jié)點b和節(jié)點d。
104、對該第二節(jié)點進行告警根源分析,并將分析結(jié)果通知給用戶,例如,可以如下:
(1)提取包含第二節(jié)點的鏈路,得到第二鏈路集。
比如,以第二節(jié)點為節(jié)點a為例,則此時,可以獲取包括節(jié)點a的鏈路,得到第二鏈路集。
(2)根據(jù)第二節(jié)點的調(diào)用關(guān)系對該第二鏈路集中的鏈路進行過濾,得到有效鏈路。
例如,還是以第二節(jié)點為節(jié)點a為例,則此時,可以根據(jù)節(jié)點a的主調(diào)關(guān)系、以及被調(diào)關(guān)系來進行過濾,比如節(jié)點a的下一跳被調(diào)有節(jié)點b0、節(jié)點b2和節(jié)點b4三個節(jié)點,那么,便可以從該第二鏈路集中提取出包括有“a—>b0”、“a—>b2”和“a—>b4”的鏈路,得到有效鏈路,而過濾掉其他不包括“a—>b0”、“a—>b2”和“a—>b4”的無效鏈路。
其中,主調(diào)指的是主動調(diào)用,比如主動調(diào)用別的節(jié)點;被調(diào)指的是被動調(diào)用,比如被別的節(jié)點調(diào)用。例如,如果a節(jié)點調(diào)用b節(jié)點,則a節(jié)點相對于b節(jié)點而言,則為主調(diào),b節(jié)點為被調(diào)。
(3)根據(jù)該有效鏈路對該第二節(jié)點進行告警根源分析,比如可以如下:
a、確定第二節(jié)點的告警時間,得到第二時刻;
b、從該有效鏈路中獲取在第二時刻的前后預(yù)設(shè)時間范圍內(nèi)產(chǎn)生過告警信息的節(jié)點,得到第三節(jié)點。
其中,該時間范圍可以根據(jù)實際應(yīng)用的需求進行設(shè)置,比如,可以以該第二時刻的時間窗口為基準,從該有效鏈路中確定該基準前八個時間窗內(nèi),以及后四個時間窗內(nèi)產(chǎn)生過告警信息的節(jié)點,得到第三節(jié)點。
其中,該時間窗口的大小可以根據(jù)實際應(yīng)用的需求進行設(shè)置。
可選的,為了便于對告警節(jié)點進行管理,可以設(shè)置一告警模塊接收池,用于對各個告警節(jié)點,以及各個告警節(jié)點所產(chǎn)生的告警信息進行管理,其中,該告警模塊接收池中可以包括多個告警模塊,每一告警模塊對應(yīng)一個告警節(jié)點。
例如,以該告警信息的處理裝置中設(shè)置有告警模塊接收池為例,則此時,步驟“從所述有效鏈路中獲取在第二時刻的前后預(yù)設(shè)時間范圍內(nèi)產(chǎn)生過告警信息的節(jié)點,得到第三節(jié)點”具體可以如下:
(a)從告警模塊接收池中獲取在第二時刻的前后預(yù)設(shè)時間范圍內(nèi)產(chǎn)生過告警信息的模塊,得到目標(biāo)告警模塊;
其中,該時間范圍可以根據(jù)實際應(yīng)用的需求進行設(shè)置,比如,可以設(shè)置為在以第二時刻的時間窗為基準,在該基準的前八個時間窗內(nèi),以及后四個時間窗內(nèi),即步驟“從告警模塊接收池中獲取在第二時刻的前后預(yù)設(shè)時間范圍內(nèi)產(chǎn)生過告警信息的模塊,得到目標(biāo)告警模塊”具體可以如下:
以該第二時刻的時間窗口為基準,從告警模塊接收池中獲取該基準前八個時間窗內(nèi),以及后四個時間窗內(nèi)產(chǎn)生過告警信息的模塊,得到目標(biāo)告警模塊。
其中,該時間窗口的大小可以根據(jù)實際應(yīng)用的需求進行設(shè)置。
例如,以第二時刻為12:00點,且一個時間窗為5分鐘為例進行說明,則此時,可以從告警模塊接收池中獲取11:20~12:20之間產(chǎn)生過告警信息的模塊,得到目標(biāo)告警模塊,比如,該目標(biāo)告警模塊的模塊標(biāo)識分別為:a和d2。
(b)將目標(biāo)告警模塊與該有效鏈路進行疊加,以確定在第二時刻的前后預(yù)設(shè)時間范圍內(nèi)產(chǎn)生過告警信息的節(jié)點,得到第三節(jié)點。
比如,疊加后,目標(biāo)告警模塊a所對應(yīng)的節(jié)點為節(jié)點a,目標(biāo)告警模塊d2所對應(yīng)的節(jié)點為節(jié)點d2,則此時,可以確定第三節(jié)點為:節(jié)點a和節(jié)點d2。
c、分析第三節(jié)點的告警內(nèi)容,以確定該告警內(nèi)容是否為根源告警,若為根源告警,則執(zhí)行步驟d,若不是根源告警,則執(zhí)行步驟e。
比如,可以分析第三節(jié)點的告警內(nèi)容,以確定該告警內(nèi)容是否包括節(jié)點發(fā)布變更、節(jié)點機器丟包、節(jié)點下程序崩潰、節(jié)點下機器死機和節(jié)點下專線擁塞中任意一種,若是,則確定該告警內(nèi)容為根源告警,若否,則確定該告警內(nèi)容不是根源告警。
d、確定為根源告警時,將該第三節(jié)點作為第一節(jié)點,并返回執(zhí)行獲取包 含第一節(jié)點的鏈路的步驟,即返回執(zhí)行步驟102,采用上述方式(即步驟102~104的方法)進行分析。
e、確定不是根源告警時,執(zhí)行將分析結(jié)果寫入庫表,并將分析結(jié)果通知給用戶的步驟,即執(zhí)行步驟104中的步驟(4),如下:
(4)將分析結(jié)果寫入庫表,并將分析結(jié)果通知給用戶。
由上可知,本實施例采用接收第一節(jié)點在第一時刻產(chǎn)生的告警信息后,若確定該告警信息為根源告警,則獲取包含第一節(jié)點的鏈路,得到第一鏈路集,在該第一鏈路集的鏈路中查找位置位于第一節(jié)點前,并在第一時刻的前后預(yù)設(shè)時間范圍內(nèi)產(chǎn)生過告警信息的節(jié)點,得到第二節(jié)點,然后,對第二節(jié)點重新進行告警根源分析,并將分析結(jié)果通知給用戶,從而達到動態(tài)分析告警的根源的目的,彌補了因某些告警信息延時發(fā)出而導(dǎo)致的分析不準的問題,大大提高了告警分析的完整性和準確性,從而便于用戶可以及時發(fā)現(xiàn)故障或異常,有利于提高系統(tǒng)的穩(wěn)定性和安全性。
實施例二、
根據(jù)實施例一所描述的方法,以下將舉例作進一步詳細說明。
在本實施例中,將以該告警信息的處理裝置具體集成在集群系統(tǒng)的控制設(shè)備中為例進行說明。
如圖2a所示,一種告警信息的處理方法,具體流程可以如下:
201、在第一時刻,控制設(shè)備接收節(jié)點a在第一時刻產(chǎn)生的告警信息。
比如,在12:00點時,控制設(shè)備接收節(jié)點a在12:00產(chǎn)生的告警信息。
202、控制設(shè)備根據(jù)該告警信息提取包含節(jié)點a的鏈路,得到第二鏈路集。
例如,參見圖2b,該第二鏈路集可以包括6條鏈路,如下:
鏈路1(link1):節(jié)點a->節(jié)點b0->節(jié)點c0->節(jié)點d0->節(jié)點e;
鏈路2(link2):節(jié)點a->節(jié)點b1->節(jié)點c1->節(jié)點d1->節(jié)點e1;
鏈路3(link3):節(jié)點a->節(jié)點b2->節(jié)點c2->節(jié)點d2->節(jié)點e2;
鏈路4(link4):節(jié)點a->節(jié)點b3->節(jié)點c3->節(jié)點d3->節(jié)點e3;
鏈路5(link5):節(jié)點a->節(jié)點b4->節(jié)點c4->節(jié)點d4->節(jié)點e4;
鏈路6(link6):節(jié)點a->節(jié)點b5->節(jié)點c5->節(jié)點d5->節(jié)點e5。
203、控制設(shè)備根據(jù)節(jié)點a的調(diào)用關(guān)系對該第二鏈路集中鏈路進行過濾,得到有效鏈路。
例如,可以根據(jù)節(jié)點a的主調(diào)關(guān)系、以及被調(diào)關(guān)系來進行過濾,比如節(jié)點a的下一跳被調(diào)有節(jié)點b0、節(jié)點b2和節(jié)點b4三個節(jié)點,那么,參見圖2c,便可以從該第二鏈路集中提取出相應(yīng)的鏈路,如下:
鏈路1(link1):節(jié)點a->節(jié)點b0->節(jié)點c0->節(jié)點d0->節(jié)點e;
鏈路3(link3):節(jié)點a->節(jié)點b2->節(jié)點c2->節(jié)點d2->節(jié)點e2;
鏈路5(link5):節(jié)點a->節(jié)點b4->節(jié)點c4->節(jié)點d4->節(jié)點e4。
204、控制設(shè)備以第一時刻,比如12:00點告警的時間窗口為基準,從有效鏈路中獲取該基準前八個時間窗內(nèi),以及后四個時間窗內(nèi)產(chǎn)生過告警信息的節(jié)點,得到相應(yīng)的告警節(jié)點,即第三節(jié)點。例如,可以如下:
(1)控制設(shè)備以第一時刻,比如12:00點告警的時間窗口為基準,從告警模塊接收池中獲取該基準前八個時間窗內(nèi),以及后四個時間窗內(nèi)產(chǎn)生過告警信息的模塊,得到目標(biāo)告警模塊。
其中,該時間窗口的大小可以根據(jù)實際應(yīng)用的需求進行設(shè)置,比如,以一個時間窗為5分鐘為例,則此時,可以從告警模塊接收池中獲取11:20~12:20點之間產(chǎn)生過告警信息的模塊,得到目標(biāo)告警模塊。
例如,其中,11:20~12:20點之間告警模塊接收池具體可以如表一所示:
表一:
比如,在這12個時間窗口內(nèi),告警模塊接收池中有a、b2、d2、b4和c4這5個模塊有告警,因此,可以得到目標(biāo)告警模塊:模塊a、模塊b2、模塊d2、模塊b4和模塊c4。
(2)控制設(shè)備將目標(biāo)告警模塊與該有效鏈路進行疊加,以確定相應(yīng)的告警節(jié)點(即第三節(jié)點)。
例如,以目標(biāo)告警模塊包括模塊a、模塊b2、模塊d2、模塊b4和模塊c4為例,則將目標(biāo)告警模塊與該有效鏈路進行疊加后,可以得到相應(yīng)的告警節(jié)點(即第三節(jié)點),具體為:節(jié)點a、節(jié)點b2、節(jié)點d2、節(jié)點b4和節(jié)點c4,可參見圖2d,其中,實線部分的節(jié)點即為告警節(jié)點,由于節(jié)點b2位于節(jié)點d2之前,節(jié)點b4位于節(jié)點c4之前,因此,除了可以對節(jié)點a、節(jié)點b2、節(jié)點d2、節(jié)點b4和節(jié)點c4均進行分析之外,也可以只對節(jié)點d2和節(jié)點c4進行分析(即執(zhí)行步驟205)。
205、控制設(shè)備分析這些告警節(jié)點(即第三節(jié)點)的告警內(nèi)容,以確定該告警內(nèi)容是否為根源告警,若為根源告警,則執(zhí)行步驟202,若不是根源告警,則執(zhí)行步驟206。
例如,可以分析這些告警節(jié)點(即第三節(jié)點)的告警內(nèi)容,以確定該告警內(nèi)容是否包括節(jié)點發(fā)布變更、節(jié)點機器丟包、節(jié)點下程序崩潰、節(jié)點下機器死機和節(jié)點下專線擁塞等告警中的任意一種,若是,則確定該告警內(nèi)容為根源告警,若否,則確定該告警內(nèi)容不是根源告警。
比如,參見圖2e,以告警節(jié)點c4和d2為例,由于告警節(jié)點c4為進程告警,而告警節(jié)點d2為自動化測試告警,都不屬于根源告警,所以,可以執(zhí)行步驟206。
206、由于不是根源告警,因此,控制設(shè)備將分析結(jié)果寫入庫表,并將分 析結(jié)果通知給用戶。
207、在第一時刻之后,比如在12:30分,控制設(shè)備接收到節(jié)點c0(即第一節(jié)點)發(fā)出的在第一時刻,即12:00產(chǎn)生的告警信息,確定該告警信息不是根源告警時,忽略該告警信息,確定該告警信息為根源告警時,獲取包含節(jié)點c0的鏈路,得到包含節(jié)點c0的鏈路,得到第一鏈路集,然后執(zhí)行步驟208。
例如,參見圖2f,該第一鏈路集可以包括6條鏈路,如下:
鏈路1(link1):節(jié)點a->節(jié)點b0->節(jié)點c0->節(jié)點d0->節(jié)點e;
鏈路2(link2):節(jié)點a1->節(jié)點b1->節(jié)點c0->節(jié)點d1->節(jié)點e1;
鏈路3(link3):節(jié)點a2->節(jié)點b8->節(jié)點c0->節(jié)點d2->節(jié)點e2;
鏈路4(link4):節(jié)點a3->節(jié)點b3->節(jié)點c0->節(jié)點d3->節(jié)點e3;
鏈路5(link5):節(jié)點a4->節(jié)點b4->節(jié)點c0->節(jié)點d4->節(jié)點e4;
鏈路6(link6):節(jié)點a5->節(jié)點b5->節(jié)點c0->節(jié)點d5->節(jié)點e5。
208、控制設(shè)備在步驟207所得到的第一鏈路集中的各條鏈路中進行查找,以確定位置位于節(jié)點c0之前的節(jié)點,得到候選節(jié)點,然后執(zhí)行步驟209。
209、控制設(shè)備從這些候選節(jié)點中,以12:00點(即節(jié)點c0產(chǎn)生告警的時間,即第一時刻)告警的時間窗口為基準,獲取該基準前八個時間窗內(nèi),以及后四個時間窗內(nèi)產(chǎn)生過告警信息的節(jié)點,得到相應(yīng)的告警節(jié)點(即第二節(jié)點),然后執(zhí)行步驟210。
其中,該時間窗口的大小可以根據(jù)實際應(yīng)用的需求進行設(shè)置,比如,以一個時間窗為5分鐘為例,則此時,可以獲取11:20~12:20點之間產(chǎn)生過告警信息的節(jié)點,比如可以包括:節(jié)點a、節(jié)點b8、節(jié)點a3、節(jié)點a4和節(jié)點a5,參見圖2f。
210、控制設(shè)備對這些告警節(jié)點,比如節(jié)點a、節(jié)點b8、節(jié)點a3、節(jié)點a4和節(jié)點a5重新進行告警根源分析,并將分析結(jié)果通知給用戶。
即對這些告警節(jié)點,比如節(jié)點a、節(jié)點b8、節(jié)點a3、節(jié)點a4和節(jié)點a5采用步驟202至206的方式,重新進行告警根源分析,將新的分析結(jié)果寫入庫表,并 將新的分析結(jié)果通知給用戶。
由上可知,本實施例采用接收告警節(jié)點產(chǎn)生的告警信息后,對該告警信息是否為根據(jù)告警進行判斷,若確定為根源告警,則獲取包含該告警節(jié)點的鏈路,得到第一鏈路集,在該第一鏈路集的鏈路中查找位置位于該告警節(jié)點前,并在該告警節(jié)點產(chǎn)生告警的時間的前后預(yù)設(shè)時間范圍內(nèi)產(chǎn)生過告警信息的節(jié)點,得到相應(yīng)的其他告警節(jié)點,然后,對這些其他告警節(jié)點重新進行告警根源分析,并將分析結(jié)果通知給用戶,從而達到動態(tài)分析告警的根源的目的,彌補了因某些告警信息延時發(fā)出而導(dǎo)致的分析不準的問題,大大提高了告警分析的完整性和準確性,從而便于用戶可以及時發(fā)現(xiàn)故障或異常,有利于提高系統(tǒng)的穩(wěn)定性和安全性。
實施例三、
為了更好地實施以上方法,本發(fā)明實施例還提供一種告警信息的處理裝置,如圖3所示,該告警信息的處理裝置包括接收單元301、獲取單元302、查找單元303和處理單元304,如下:
(1)接收單元301;
接收單元301,用于接收第一節(jié)點在第一時刻產(chǎn)生的告警信息。
需說明的是,由于可能會產(chǎn)生延遲,所以,第一節(jié)點產(chǎn)生告警信息的時間(即第一時刻)與發(fā)送該告警信息的時間有可能不同,比如,節(jié)點c0在12:00點產(chǎn)生的告警信息,可能在12:30點才發(fā)出。
(2)獲取單元302;
獲取單元302,用于確定該告警信息為根源告警時,獲取包含第一節(jié)點的鏈路,得到第一鏈路集。
其中,根源告警的內(nèi)容具體可以根據(jù)實際應(yīng)用的需求進行設(shè)置,比如,該根源告警可以包括節(jié)點發(fā)布變更、節(jié)點機器丟包、節(jié)點下程序崩潰、節(jié)點下機器死機和/或節(jié)點下專線擁塞等告警,即:
獲取單元302,具體可以用于確定該告警信息指示節(jié)點發(fā)布變更、節(jié)點機器丟包、節(jié)點下程序崩潰、節(jié)點下機器死機和/或節(jié)點下專線擁塞等時,獲取包含第一節(jié)點的鏈路,得到第一鏈路集。
(3)查找單元303;
查找單元303,用于在該第一鏈路集的鏈路中查找位置位于第一節(jié)點前,并在第一時刻的前后預(yù)設(shè)時間范圍內(nèi)產(chǎn)生過告警信息的節(jié)點,得到第二節(jié)點。
其中,該時間范圍可以根據(jù)實際應(yīng)用的需求進行設(shè)置,比如,可以設(shè)置為在以第一時刻的時間窗為基準,在該基準的前八個時間窗內(nèi),以及后四個時間窗內(nèi),即:
查找單元303,具體可以用于在該鏈路中查找位置位于第一節(jié)點前的節(jié)點,得到候選節(jié)點;在該候選節(jié)點中查找在第一時刻的前八個時間窗內(nèi),以及后四個時間窗內(nèi)產(chǎn)生過告警信息的節(jié)點,得到第二節(jié)點。
其中,該時間窗口的大小可以根據(jù)實際應(yīng)用的需求進行設(shè)置。
例如,以第一節(jié)點為節(jié)點c0,且一個時間窗為5分鐘為例進行說明,如果節(jié)點c0產(chǎn)生告警信息的時間為12:00點,則此時,可以查找在這些鏈路中,位置位于c0前的節(jié)點,得到候選節(jié)點,然后,在這些候選節(jié)點中查找11:20~12:20之間產(chǎn)生過告警信息的節(jié)點(即告警節(jié)點),比如,節(jié)點a、節(jié)點b和節(jié)點d,則此時,便可以確定第二節(jié)點為:節(jié)點a、節(jié)點b和節(jié)點d。
(4)處理單元304;
處理單元304,該第二節(jié)點進行告警根源分析,并將分析結(jié)果通知給用戶。
例如,處理單元304可以包括提取子單元、過濾子單元、分析子單元和通知子單元,如下:
提取子單元,用于提取包含第二節(jié)點的鏈路,得到第二鏈路集;
過濾子單元,用于根據(jù)第二節(jié)點的調(diào)用關(guān)系對該第二鏈路集中的鏈路進行過濾,得到有效鏈路;
分析子單元,用于根據(jù)該有效鏈路對該第二節(jié)點進行告警根源分析;
通知子單元,用于將分析結(jié)果寫入庫表,并將分析結(jié)果通知給用戶。
比如,其中,分析子單元,具體可以用于確定第二節(jié)點的告警時間,得到第二時刻;從該有效鏈路中獲取在第二時刻的前后預(yù)設(shè)時間范圍內(nèi)產(chǎn)生過告警信息的節(jié)點,得到第三節(jié)點,分析第三節(jié)點的告警內(nèi)容,以確定該告警內(nèi)容是否為根源告警;若為根源告警,則將該第三節(jié)點作為第一節(jié)點,并觸發(fā)獲取單元執(zhí)行獲取包含第一節(jié)點的鏈路的操作;若不是根源告警,則觸發(fā)通知子單元執(zhí)行將分析結(jié)果寫入庫表,并將分析結(jié)果通知給用戶的操作。
其中,該預(yù)設(shè)時間范圍可以根據(jù)實際應(yīng)用的需求進行設(shè)置,比如,可以設(shè)置為在以第二時刻的時間窗為基準,在該基準的前八個時間窗內(nèi),以及后四個時間窗內(nèi),等等,即:
分析子單元,具體可以用于以該第二時刻的時間窗口為基準,從該有效鏈路中獲取該基準前八個時間窗內(nèi),以及后四個時間窗內(nèi)產(chǎn)生過告警信息的節(jié)點,得到第三節(jié)點。
可選的,為了便于對告警節(jié)點進行管理,可以設(shè)置一告警模塊接收池,用于對各個告警節(jié)點,以及各個告警節(jié)點所產(chǎn)生的告警信息進行管理,其中,該告警模塊接收池中可以包括多個告警模塊,每一告警模塊對應(yīng)一個告警節(jié)點。
例如,以該告警信息的處理裝置中設(shè)置有告警模塊接收池為例,則此時:
分析子單元,具體可以用于從告警模塊接收池中獲取在第二時刻的前后預(yù)設(shè)時間范圍內(nèi)產(chǎn)生過告警信息的模塊,得到目標(biāo)告警模塊;將目標(biāo)告警模塊與該有效鏈路進行疊加,以確定在第二時刻的前后預(yù)設(shè)時間范圍內(nèi)產(chǎn)生過告警信息的節(jié)點,得到第三節(jié)點。
此外,需說明的是,根源告警也可以根據(jù)實際應(yīng)用的需求進行設(shè)置,比如,根源告警可以包括節(jié)點發(fā)布變更、節(jié)點機器丟包、節(jié)點下程序崩潰、節(jié)點下機器死機和節(jié)點下專線擁塞等,即:
分析子單元,具體可以用于分析第三節(jié)點的告警內(nèi)容,以確定該告警內(nèi)容是否包括節(jié)點發(fā)布變更、節(jié)點機器丟包、節(jié)點下程序崩潰、節(jié)點下機器死機和 節(jié)點下專線擁塞中任意一種;若是,則確定該告警內(nèi)容為根源告警;若否,則確定該告警內(nèi)容不是根源告警。
具體實施時,以上各個單元可以作為獨立的實體來實現(xiàn),也可以進行任意組合,作為同一或若干個實體來實現(xiàn),以上各個單元的具體實施可參見前面的方法實施例,在此不再贅述。
該告警信息的處理裝置具體可以集成在集群系統(tǒng)的控制設(shè)備中,該控制設(shè)備具體可以為控制服務(wù)器或調(diào)控服務(wù)器等設(shè)備。
由上可知,本實施例的告警信息的處理裝置在接收第一節(jié)點在第一時刻產(chǎn)生的告警信息后,若確定該告警信息為根源告警,則由獲取單元302獲取包含第一節(jié)點的鏈路,得到第一鏈路集,并由查找單元303在該第一鏈路集的鏈路中查找位置位于第一節(jié)點前,并在第一時刻的前后預(yù)設(shè)時間范圍內(nèi)產(chǎn)生過告警信息的節(jié)點,得到第二節(jié)點,然后,由處理單元304對第二節(jié)點重新進行告警根源分析,并將分析結(jié)果通知給用戶,從而達到動態(tài)分析告警的根源的目的,彌補了因某些告警信息延時發(fā)出而導(dǎo)致的分析不準的問題,大大提高了告警分析的完整性和準確性,從而便于用戶可以及時發(fā)現(xiàn)故障或異常,有利于提高系統(tǒng)的穩(wěn)定性和安全性。
實施例四、
相應(yīng)的,本發(fā)明實施例還提供一種集群系統(tǒng),可以包括本發(fā)明實施例所提供的任一種告警信息的處理裝置,具體可參見實施例三,例如,可以如下:
告警信息的處理裝置,用于接收第一節(jié)點在第一時刻產(chǎn)生的告警信息;確定該告警信息為根源告警時,獲取包含第一節(jié)點的鏈路,得到第一鏈路集;在該第一鏈路集的鏈路中查找位置位于第一節(jié)點前,并在第一時刻的前后預(yù)設(shè)時間范圍內(nèi)產(chǎn)生過告警信息的節(jié)點,得到第二節(jié)點;對該第二節(jié)點進行告警根源分析,并將分析結(jié)果通知給用戶。
其中,根源告警的內(nèi)容具體可以根據(jù)實際應(yīng)用的需求進行設(shè)置,比如,該 根源告警可以包括節(jié)點發(fā)布變更、節(jié)點機器丟包、節(jié)點下程序崩潰、節(jié)點下機器死機和/或節(jié)點下專線擁塞等告警。
而預(yù)設(shè)時間范圍也可以根據(jù)實際應(yīng)用的需求進行設(shè)置,比如,可以設(shè)置為在以第一時刻的時間窗為基準,在該基準的前八個時間窗內(nèi),以及后四個時間窗內(nèi),其中,時間窗內(nèi)的大小可以進行靈活設(shè)置,在此不再贅述。
該告警信息的處理裝置具體可以集成在集群系統(tǒng)的控制設(shè)備中,該控制設(shè)備具體可以為控制服務(wù)器或調(diào)控服務(wù)器等設(shè)備。
此外,該集群系統(tǒng)還可以包括其他的設(shè)備,比如可以包括多個服務(wù)器,這些服務(wù)器可以作為該集群系統(tǒng)的節(jié)點,其中,每一個服務(wù)器均可以執(zhí)行如下操作:
對該集群系統(tǒng)中的數(shù)據(jù)進行處理,以提供相應(yīng)的服務(wù),并且,可以在確定發(fā)生故障或異常時產(chǎn)生告警信息,并向告警信息的處理裝置(比如控制設(shè)備)發(fā)送該告警信息。
以上各個設(shè)備的具體實施可參見前面的方法實施例,在此不再贅述。
由于該集群系統(tǒng)可以包括本發(fā)明實施例所提供的任一種告警信息的處理裝置,因此,可以實現(xiàn)本發(fā)明實施例所提供的任一種告警信息的處理裝置所能實現(xiàn)的有益效果,詳見前面的實施例,在此不再贅述。
本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:只讀存儲器(rom,readonlymemory)、隨機存取記憶體(ram,randomaccessmemory)、磁盤或光盤等。
以上對本發(fā)明實施例所提供的一種告警信息的處理方法、裝置和系統(tǒng)進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應(yīng)用范圍上均會有 改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。