專利名稱:一種防止告警隊列溢出的處理方法和系統的制作方法
技術領域:
本發明涉及網絡維護領域,具體涉及一種防止告警隊列溢出的處理方法和系統。
背景技術:
運行管理維護(OperationAdministration and Maintenance, 0AM)是根據網絡運營的需要,將網絡的管理工作分為三類運行(Operation)、管理(Administration)和維護(Maintenance)。隨著網絡業務的發展,對計算機網絡的維護也變得至關重要。計算機網絡服務發生故障是常見的,由于受到資源的限制,存放告警隊列的緩存大小是有限制的,而讀取告警的頻率也是固定的。但告警的上報通常具有突發性和集中性的特點,若沒有及時讀取告警隊列中的告警信息,則源源不斷的告警信息會超出告警隊列的承受范圍,導致告警隊列中的告警信息的溢出。另外,告警信息的產生需要在需要保護的兩端設備上配置檢測周期,以多協議標簽交換(Mult1-Protocol Label Switching, MPLS)網絡為例,檢測周期為發送周期的3. 5倍,即如果在發送周期的3. 5倍時間內未能接收到返回的檢測報文,則認為鏈路出現了連續性丟失(Loss of Connection, L0C)故障,產生LOC故障告警。假設設備A在第一個檢測周期內沒有收到設備B返回的檢測報文,則會產生LOC故障告警,一直到第N個檢測周期接收到設備B返回的檢測報文,這時會產生LOC恢復告警,如此反復,交替出現大量重復的LOC故障告警信息和LOC恢復告警信息,則產生了告警震蕩,在此期間,主處理器(MasterProcessor, MP)連續處理告警隊列中的告警信息,且這些告警信息中大多為重復的告警信息,使得MP的使用率居高不下,浪費了大量的MP資源,從而對設備的運行以及網絡的穩定性造成很大的影響。
發明內容
有鑒于此,本發明提供一種防止告警隊列溢出的處理方法和系統,確保告警隊列中的告警信息不會溢出,降低MP的利用率,保證網絡的正常運行。為達到上述目的,本發明的技術方案是這樣實現的本發明提供了一種防止告警隊列溢出的處理方法,設置預飽和值;該方法包括將接收到的告警信息寫入告警隊列;獲取所述告警隊列中的告警信息的數量;判斷所述告警隊列中告警信息的數量是否大于預飽和值,若判斷的結果為是,則停止告警信息寫入所述告警隊列,清空所述告警隊列中的告警信息;否則,繼續保持當前處理進程。上述方案中,當告警隊列中告警信息的數量大于預飽和值時,該方法還包括停止產生告警信息,并保存最新的告警信息。上述方案中,該方法還包括當前告警隊列中告警信息的數量為空值時,將所述保存的最新的告警信息寫入告警隊列,開始告警信息寫入告警隊列,并繼續產生告警信息。上述方案中,所述繼續保持當前處理進程為將接收到的告警信息寫入告警隊列,從所述告警隊列中讀取告警信息進行告警信息處理并刪除讀取過的告警信息,并判斷所述告警隊列中告警信息的數量是否大于預飽和值。本發明還提供了一種防止告警隊列溢出的處理系統,該系統包括存儲模塊、告警信息數量檢測模塊、第一監控模塊、告警處理模塊和檢測模塊;其中,所述存儲模塊,用于將接收到的告警信息以告警隊列形式存儲;所述告警信息數量檢測模塊,用于獲取所述存儲模塊中的告警信息的數量;所述第一監控模塊,用于判斷從所述告警信息數量檢測模塊獲取的告警信息的數量是否大于預飽和值,并在判斷結果為是時通知告警處理模塊;所述告警處理模塊,用于第一監控模塊發來當前告警信息的數量大于預飽和值的通知消息時,向檢測模塊發送停止告警信息寫入存儲模塊的通知消息,并清空存儲模塊中的告警信息;否則,繼續保持當前處理進程;所述檢測模塊,用于產生告警信息并將告警信息寫入存儲模塊;在接收到所述告警處理模塊發送的停止告警信息寫入存儲模塊的通知消息時,停止告警信息寫入存儲模塊。上述方案中,所述告警處理模塊,還用于所述第一監控模塊發來當前告警信息的數量大于預飽和值的通知消息時,向所述檢測模塊發送停止產生告警信息的消息;相應的,所述檢測模塊,用于在接收到所述告警處理模塊發送的停止產生告警信息的消息時,停止產生告警信息,并保存最新的告警信息。上述方案中,該處理系統還包括第二監控模塊,用于判斷從所述告警信息數量檢測模塊獲取的告警信息的數量是否為空值,并在判斷結果為是時通知所述告警處理模塊;相應的,所述告警處理模塊,還用于所述第二監控模塊發來當前告警信息的數量為空值的通知消息時,向所述檢測模塊發送開始告警信息寫入存儲模塊的通知消息和繼續產生告警信息的消息;相應的,所述檢測模塊,還用于在接收到所述告警處理模塊發送的所述開始告警信息寫入存儲模塊的通知消息時,將保存的最新的告警信息寫入存儲模塊;在接收到所述告警處理模塊發送的所述繼續產生告警信息的消息時,繼續產生告警信息,并將存儲的最新的告警信息寫入存儲模塊。上述方案中,所述告警處理模塊,還用于從所述存儲模塊中讀取告警信息進行告警信息處理,并刪除讀取過的告警信息。本發明提供的防止告警隊列溢出的處理方法和系統,通過設置預飽和值,將告警隊列中的告警信息的數量與預飽和值比較,若告警隊列中告警信息的數量大于預飽和值,則停止告警信息寫入告警隊列,清空告警隊列中的告警信息,確保告警隊列中的告警信息不會溢出,降低MP的利用率,保證網絡的正常運行。
圖1為本發明中防止告警隊列溢出的處理方法流程示意圖;圖2為本發明中防止告警隊列溢出的處理系統組成結構示意圖3為本發明實施例提供的告警隊列溢出的處理方法流程示意圖。
具體實施例方式下面結合附圖及具體實施例對本發明再作進一步詳細的說明。圖1為本發明中防止告警隊列溢出的處理方法流程示意圖,如圖1所示,包括以下步驟步驟101 步驟102 :將接收到的告警信息寫入告警隊列;獲取告警隊列中的告警信息的數量;這里,所述告警信息由檢測模塊在一定周期內沒有收到返回的報文而產生,所述檢測模塊將產生的告警信息按一定的頻率寫入告警隊列。步驟103 :判斷告警隊列中告警信息的數量是否大于預飽和值,若判斷的結果為是,執行步驟104 ;否則,執行步驟105 ;這里,所述預飽和值為預先設置的數值,當告警隊列中的告警信息的數量為預飽和值時,可以認為當前告警隊列已進入預飽和狀態,若告警隊列中的告警信息的數量再增力口,則當前告警隊列中的告警信息有溢出的危險。步驟104 :停止告警信息寫入告警隊列,清空告警隊列中的告警信息;
這里,該方法還包括停止產生告警信息,并保存最新的告警信息;在當前告警隊列中告警信息的數量為空值時,將保存的最新的告警信息寫入告警隊列,開始告警信息寫入告警隊列,并繼續產生告警信息。步驟105 :繼續保持當前處理進程;這里,所述繼續保持當前處理進程為將接收到的告警信息寫入告警隊列,從所述告警隊列中讀取告警信息進行告警信息處理并刪除讀取過的告警信息,并判斷所述告警隊列中告警信息的數量是否大于預飽和值。圖2為本發明中防止告警隊列溢出的處理系統組成結構示意圖,如圖2所示,處理系統包括存儲模塊21、告警信息數量檢測模塊22、第一監控模塊23、告警處理模塊24和檢測模塊25;其中,所述存儲模塊21,用于將接收到的告警信息以告警隊列形式存儲;所述告警信息數量檢測模塊22,用于獲取所述存儲模塊21中的告警信息的數量;所述第一監控模塊23,用于判斷從所述告警信息數量檢測模塊22獲取的告警信息的數量是否大于預飽和值,并在判斷結果為是時通知告警處理模塊24 ;所述告警處理模塊24,用于第一監控模塊23發來當前告警信息的數量大于預飽和值的通知消息時,向檢測模塊25發送停止告警信息寫入存儲模塊21的通知消息,并清空告警隊列中的告警信息;否則,繼續保持當前處理進程;所述檢測模塊25,用于產生告警信息并將告警信息寫入存儲模塊21 ;在接收到所述告警處理模塊24發送的停止告警信息寫入存儲模塊的通知消息時,停止告警信息寫入存儲模塊21。進一步的,所述告警處理模塊24,還用于所述第一監控模塊23發來當前告警信息的數量大于預飽和值的通知消息時,向所述檢測模塊25發送停止產生告警信息的消息;相應的,所述檢測模塊25,用于在接收到所述告警處理模塊24發送的停止產生告警信息的消息時,停止產生告警信息,并保存最新的告警信息。進一步的,該處理系統還包括第二監控模塊26,用于判斷從所述告警信息數量檢測模塊22獲取的告警信息的數量是否為空值,并在判斷結果為是時通知所述告警處理模塊24 ;
相應的,所述告警處理模塊24,還用于所述第二監控模塊26發來當前告警信息的數量為空值的通知消息時,向所述檢測模塊25發送開始告警信息寫入存儲模塊的通知消息和繼續產生告警信息的消息;相應的,所述檢測模塊25,還用于在接收到所述告警處理模塊24發送的所述開始告警信息寫入存儲模塊的通知消息時,將保存的最新的告警信息寫入存儲模塊21 ;在接收到所述告警處理模塊24發送的所述繼續產生告警信息的消息時,繼續產生告警信息,并將存儲的最新的告警信息寫入存儲模塊21。進一步的,所述告警處理模塊24,還用于從所述存儲模塊21中讀取告警信息進行告警信息處理,并刪除讀取過的告警信息。圖3為本發明實施例提供的告警隊列溢出的處理方法流程示意圖,如圖3所示,包括以下步驟步驟301 步驟302 :將接收到的告警信息寫入告警隊列,獲取告警隊列中的告警信息的數量;這里,所述告警信息由檢測模塊在一定周期內沒有收到返回的報文而產生,所述檢測模塊將產生的告警信息按一定的頻率寫入告警隊列。步驟303 :判斷告警隊列中告警信息的數量是否大于預飽和值,若判斷的結果為是,執行步驟305 ;否則,執行步驟304 ;這里,所述預飽和值為預先設置的數值,當告警隊列中的告警信息的數量為預飽和值時,可以認為當前告警隊列已進入預飽和狀態,若告警隊列中的告警信息的數量再增力口,則當前告警隊列中的告警信息有溢出的危險;其中,所述預飽和值可以取所述告警隊列中能承載的最大告警信息數量的80%。步驟304 :繼續保持當前處理進程;這里,所述繼續保持當前處理進程為將接收到的告警信息寫入告警隊列,從告警隊列中讀取告警信息進行告警信息處理并刪除讀取過的告警信息,并且,判斷告警隊列中告警信息的數量是否大于預飽和值。步驟305 :停止告警信息寫入告警隊列,清空告警隊列中的告警信息;步驟306 :通知檢測模塊停止產生告警信息,并保存最新的告警信息;步驟307 步驟308:在告警隊列中告警信息的數量為空值時,將保存的最新的告警信息寫入告警隊列,開始告警信息寫入告警隊列,并通知檢測模塊繼續產生告警信息。以上所述,僅為本發明的較佳實施例而已,并非用于限定本發明的保護范圍。凡在本發明的精神和范圍之內所作的任何修改、等同替換和改進等,均包含在本發明的保護范圍之內。
權利要求
1.一種防止告警隊列溢出的處理方法,其特征在于,設置預飽和值;該方法包括將接收到的告警信息寫入告警隊列;獲取所述告警隊列中的告警信息的數量;判斷所述告警隊列中告警信息的數量是否大于預飽和值,若判斷的結果為是,則停止告警信息寫入所述告警隊列,清空所述告警隊列中的告警信息;否則,繼續保持當前處理進程。
2.根據權利要求1所述的方法,其特征在于,當告警隊列中告警信息的數量大于預飽和值時,該方法還包括停止產生告警信息,并保存最新的告警信息。
3.根據權利要求1或2所述的方法,其特征在于,該方法還包括當前告警隊列中告警信息的數量為空值時,將所述保存的最新的告警信息寫入告警隊列,開始告警信息寫入告警隊列,并繼續產生告警信息。
4.根據權利要求1所述的方法,其特征在于,所述繼續保持當前處理進程為將接收到的告警信息寫入告警隊列,從所述告警隊列中讀取告警信息進行告警信息處理并刪除讀取過的告警信息,并判斷所述告警隊列中告警信息的數量是否大于預飽和值。
5.一種防止告警隊列溢出的處理系統,其特征在于,該系統包括存儲模塊、告警信息數量檢測模塊、第一監控模塊、告警處理模塊和檢測模塊;其中,所述存儲模塊,用于將接收到的告警信息以告警隊列形式存儲;所述告警信息數量檢測模塊,用于獲取所述存儲模塊中的告警信息的數量;所述第一監控模塊,用于判斷從所述告警信息數量檢測模塊獲取的告警信息的數量是否大于預飽和值,并在判斷結果為是時通知告警處理模塊;所述告警處理模塊,用于第一監控模塊發來當前告警信息的數量大于預飽和值的通知消息時,向檢測模塊發送停止告警信息寫入存儲模塊的通知消息,并清空存儲模塊中的告警信息;否則,繼續保持當前處理進程;所述檢測模塊,用于產生告警信息并將告警信息寫入存儲模塊;在接收到所述告警處理模塊發送的停止告警信息寫入存儲模塊的通知消息時,停止告警信息寫入存儲模塊。
6.根據權利要求5所述的處理系統,其特征在于,所述告警處理模塊,還用于所述第一監控模塊發來當前告警信息的數量大于預飽和值的通知消息時,向所述檢測模塊發送停止產生告警信息的消息;相應的,所述檢測模塊,用于在接收到所述告警處理模塊發送的停止產生告警信息的消息時,停止產生告警信息,并保存最新的告警信息。
7.根據權利要求5所述的處理系統,其特征在于,該處理系統還包括第二監控模塊,用于判斷從所述告警信息數量檢測模塊獲取的告警信息的數量是否為空值,并在判斷結果為是時通知所述告警處理模塊;相應的,所述告警處理模塊,還用于所述第二監控模塊發來當前告警信息的數量為空值的通知消息時,向所述檢測模塊發送開始告警信息寫入存儲模塊的通知消息和繼續產生告警信息的消息;相應的,所述檢測模塊,還用于在接收到所述告警處理模塊發送的所述開始告警信息寫入存儲模塊的通知消息時,將保存的最新的告警信息寫入存儲模塊;在接收到所述告警處理模塊發送的所述繼續產生告警信息的消息時,繼續產生告警信息,并將存儲的最新的告警信息寫入存儲模塊。
8.根據權利要求5所述的處理系統,其特征在于,所述告警處理模塊,還用于從所述存儲模塊中讀取告警信息進行告警信息處理,并刪除讀取過的告警信息。
全文摘要
本發明公開了一種防止告警隊列溢出的處理方法,設置預飽和值;該方法包括將接收到的告警信息寫入告警隊列;獲取告警隊列中的告警信息的數量;判斷告警隊列中告警信息的數量是否大于預飽和值,若判斷的結果為是,則停止告警信息寫入告警隊列,清空告警隊列中的告警信息;否則,繼續保持當前處理進程。本發明還同時公開了一種防止告警隊列溢出的處理系統,采用本發明的防止告警隊列溢出的處理方法和系統,確保告警隊列中的告警信息不會溢出,降低MP的利用率,保證網絡的正常運行。
文檔編號H04L12/26GK103036723SQ201210543788
公開日2013年4月10日 申請日期2012年12月14日 優先權日2012年12月14日
發明者李能禾 申請人:中興通訊股份有限公司