一種大容量分組傳送系統(tǒng)下的高性能告警處理系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信及計(jì)算機(jī)領(lǐng)域,具體屬于一種大容量分組傳送系統(tǒng)下的高性能告警處理系統(tǒng)及方法。
【背景技術(shù)】
[0002]在大容量分組傳送系統(tǒng)中,都會存在管理大容量的通信設(shè)備,每個通信設(shè)備都存在復(fù)雜的模塊,其組成的傳輸網(wǎng)絡(luò)也會非常巨大及復(fù)雜,在極端情況下其會產(chǎn)生大規(guī)模的告警。這種場景的特點(diǎn)是告警數(shù)量大,來自大量網(wǎng)元設(shè)備的告警并發(fā)程度大,也就是說在某個極小的時間段內(nèi)將上報極大數(shù)量的告警。這種情況下要求系統(tǒng)能夠在一個極短的時間段內(nèi)處理大量的并發(fā)告警,保證實(shí)時性、正確性和告警不丟失的可靠性。這就要設(shè)計(jì)一個高吞吐量的處理系統(tǒng),系統(tǒng)即要想辦法降低并發(fā)帶來的處理復(fù)雜度,又要在保證計(jì)算穩(wěn)定告警不丟失的情況下高效的處理及分析告警數(shù)據(jù),才能解決上述問題。
[0003]大容量分組傳送系統(tǒng)是一個由多個分組傳輸網(wǎng)元構(gòu)成的網(wǎng)絡(luò)傳輸系統(tǒng)。在極端情況下,如大規(guī)模網(wǎng)絡(luò)升級,傳輸系統(tǒng)改造擴(kuò)容等,會在一個極短的時間段內(nèi)產(chǎn)生數(shù)量和規(guī)模巨大的告警風(fēng)暴,那么將對上層系統(tǒng)帶來如下問題。第一,如何設(shè)計(jì)一個高吞吐量的系統(tǒng)來處理極短時間內(nèi)上報的大量告警,保證告警的實(shí)時性。第二,保證告警不丟失的可靠性,告警處理的正確性,這需要降低告警并發(fā)帶來的處理上的復(fù)雜度。綜上所述,需要設(shè)計(jì)一個高吞吐量的化繁為簡的告警處理系統(tǒng)。
[0004]與本發(fā)明相關(guān)的現(xiàn)有技術(shù)的第一種方法所采用的實(shí)現(xiàn)方式是在極短時間內(nèi)上報的大量告警的時候,通過對告警分流將告警分發(fā)到不同的處理器上并行處理,以增加并行處理器來解決極短時間內(nèi)上報的大量告警的處理問題。
[0005]如果采用上述第一種處理方式就會存在以下問題。首先,告警的上報存在時序性,由于并行處理所以要很好的處理時序關(guān)系,那么必然需要增加復(fù)雜的處理邏輯,其復(fù)雜性必然導(dǎo)致處理困難。其次,每個并行單元如果考慮告警的時序性,那么必然需要一個調(diào)度程序勢必導(dǎo)致多余的開銷,其并行帶來的快速處理能力必然收斂在某個范圍,也就是說隨著通信網(wǎng)絡(luò)規(guī)模的持續(xù)擴(kuò)大極端的告警規(guī)模變大,這種并行處理方案最終受限。最后,并行必然帶來程序的復(fù)雜度提高,最終系統(tǒng)難于維護(hù)。
[0006]與本發(fā)明相關(guān)的現(xiàn)有技術(shù)第二種方法是依次按照告警接收次序,逐批處理告警,其可以保障告警處理的正確性,可靠性。
[0007]如果采用上述第二種處理方式就會存在以下問題。首先,其在在極端情況下,如大規(guī)模網(wǎng)絡(luò)升級,傳輸系統(tǒng)改造擴(kuò)容等,會在一個極短的時間段內(nèi)產(chǎn)生數(shù)量和規(guī)模巨大的告警風(fēng)暴。在這種極端場景下會因?yàn)槊看翁幚淼臅r間都是一個固定開銷,那么由于其依次處理,處理時間的逐步累加必然導(dǎo)致無法在一個短暫的時間范圍內(nèi)處理完,并在短時間內(nèi)上報的所有告警,最終導(dǎo)致告警積壓在告警通道內(nèi),使得告警通道溢出等異常狀態(tài)發(fā)生。其次,假設(shè)告警通道永遠(yuǎn)不會溢出等異常,其較長的處理時間也無法保證告警的實(shí)時性。最后,采用這種方式用戶由于無法及時獲取告警信息,會極大的降低用戶體驗(yàn)。
【發(fā)明內(nèi)容】
[0008]本發(fā)明要解決的技術(shù)問題是:提供一種大容量分組傳送系統(tǒng)下的高性能告警處理系統(tǒng)及方法,解決現(xiàn)有技術(shù)無法很好應(yīng)對在極短的時間段內(nèi)產(chǎn)生數(shù)量和規(guī)模巨大的告警風(fēng)暴的場景。
[0009]本發(fā)明為解決上述技術(shù)問題所采取的技術(shù)方案為:一種大容量分組傳送系統(tǒng)下的高性能告警處理系統(tǒng),其特征在于:它包括
當(dāng)前告警處理模塊,用于對從多個告警源并發(fā)接收到的告警進(jìn)行分類、處理,并發(fā)出處理結(jié)果通知;當(dāng)前告警處理模塊包括告警分類器、告警移除器、操作隊(duì)列管理器和告警處理器;告警分類器用于將接收到的告警分為新增告警和清除告警兩類;操作隊(duì)列管理器用于將分好的新增告警和清除告警分別放入新增隊(duì)列和重置隊(duì)列2個FIFO操作隊(duì)列,并在有可能發(fā)生重復(fù)告警的場景下過濾重復(fù)告警;告警處理器用于在達(dá)到集約條件時將新增隊(duì)列和重置隊(duì)列中的告警批量取出進(jìn)行批量處理,所取出的告警必須滿足所有新增告警的發(fā)生時間早于清除告警,處理事務(wù)成功提交后發(fā)出批量清除通知,將待刪除的告警放入清除隊(duì)列;告警移除器用于根據(jù)歷史告警處理模塊的刪除指令刪除操作隊(duì)列中相應(yīng)的一批告警;
歷史告警處理模塊,用于接收批量清除通知,按預(yù)設(shè)的上限將清除隊(duì)列中的告警迀移到歷史告警中,發(fā)出刪除指令給告警移除器;
告警關(guān)聯(lián)分析模塊,用于接收批量清除通知,從清除隊(duì)列中獲取需要分析的告警,根據(jù)預(yù)設(shè)值按照一定的并發(fā)量,并行分析告警,將分析結(jié)果依次寫入告警關(guān)聯(lián)結(jié)果數(shù)據(jù)庫。
[0010]按上述系統(tǒng),所述的操作隊(duì)列管理器過濾重復(fù)告警的方法具體為:通過告警的關(guān)鍵信息生成hash值,每個hash值跟隨一組告警特征;收到一個新的告警時,首先比較hash值,如果現(xiàn)有告警中沒有相同的,則將該新的告警生成的hash值及其告警特征存儲到用于比較的告警hash集合中;如果現(xiàn)有告警中有相同的hash值,則對比hash值后跟隨的一組告警特征是否有重復(fù),如果沒有則存儲,有則排除掉這條新的告警。
[0011 ]按上述系統(tǒng),所述的告警關(guān)聯(lián)分析模塊在分析告警時,如果出現(xiàn)震蕩告警,則針對同一個告警源發(fā)出的同一種告警,則只分析一條;所述的震蕩告警為在極短的時間內(nèi)同一個告警源不斷有新增和清除告警。
[0012]按上述系統(tǒng),所述的告警處理器中的集約條件為:新增隊(duì)列、重置隊(duì)列和清除隊(duì)列中任意一個操作隊(duì)列的時間達(dá)到集約周期或隊(duì)列大小達(dá)到閾值。
[0013]—種大容量分組傳送系統(tǒng)下的高性能告警處理方法,其特征在于:它包括以下步驟:
51、從多個告警源并發(fā)接收告警,將接收到的告警分為新增告警和清除告警兩類;
52、將分好的新增告警和清除告警分別放入新增隊(duì)列和重置隊(duì)列2個FIFO操作隊(duì)列,并在有重復(fù)告警源時過濾重復(fù)告警;
53、在達(dá)到集約條件時將新增隊(duì)列和重置隊(duì)列中的告警批量取出進(jìn)行批量處理,所取出的告警必須滿足所有新增告警的發(fā)生時間早于清除告警,處理事務(wù)成功提交后發(fā)出批量清除通知,將待刪除的告警放入清除隊(duì)列;
54、接收批量清除通知,按預(yù)設(shè)的上限將清除隊(duì)列中的告警迀移到歷史告警中,刪除操作隊(duì)列中相應(yīng)的一批告警; S5、接收批量清除通知,從清除隊(duì)列中獲取需要分析的告警,根據(jù)預(yù)設(shè)值按照一定的并發(fā)量,并行分析告警,將分析結(jié)果依次寫入告警關(guān)聯(lián)結(jié)果數(shù)據(jù)庫。
[0014]按上述方法,所述的S2過濾重復(fù)告警的具體方法為:通過告警的關(guān)鍵信息生成hash值,每個hash值跟隨一組告警特征;收到一個新的告警時,首先比較hash值,如果現(xiàn)有告警中沒有相同的,則將該新的告警生成的hash值及其告警特征存儲到用于比較的告警hash集合中;如果現(xiàn)有告警中有相同的hash值,則對比hash值后跟隨的一組告警特征是否有重復(fù),如果沒有則存儲,有則排除掉這條新的告警。
[0015]按上述方法,所述的S5在分析告警時,如果出現(xiàn)震蕩告警,則針對同一個告警源發(fā)出的同一種告警,則只分析一條;所述的震蕩告警為在極短的時間內(nèi)同一個告警源不斷有新增和清除告警。
[0016]按上述方法,所述的S3中的集約條件為:新增隊(duì)列、重置隊(duì)列和清除隊(duì)列中任意一個操作隊(duì)列的時間達(dá)到集約周期或隊(duì)列大小達(dá)到閾值。
[0017]按上述方法,所述的S3判斷所取出的告警必須滿足所有新增告警的發(fā)生時間早于清除告警的具體方法如下:首先從新增隊(duì)列中取出告警,然后找到其中發(fā)生時間與當(dāng)前時間最近的告警,然后依次從重置隊(duì)列中獲取要清除的告警,要清除的告警發(fā)生時間均晚于新增告警。
[0018]本發(fā)明的有益效果為:通過本發(fā)明可以在保證告警的實(shí)時性的條件下同時保證告警的時序性、正確性和可靠性。在極端場景下本發(fā)明通過并發(fā)接收獲取大量告警,并以高效的FIFO操作隊(duì)列作為告警的處理存儲,并發(fā)的大量告警往隊(duì)尾寫,而告警處理在隊(duì)首進(jìn)行,從而獲得了高并發(fā)條件下的吞吐量保證了實(shí)時性;通過對當(dāng)前告警的操作進(jìn)行分類設(shè)計(jì)優(yōu)先級,由于是按隊(duì)列操作,新增隊(duì)列中的告警發(fā)生時間早于重置隊(duì)列,而新增隊(duì)列和重置隊(duì)列中的告警處理成功后才能放入清除隊(duì)列進(jìn)行操作,