一種網絡管理系統中的告警信息入庫的處理方法
【專利摘要】本發明公開了一種網絡管理系統中的告警信息入庫的處理方法,包括如下步驟:S1、將被管理對象的當前告警信息通過hash方式映射到Bloomfilter數據結構;S2、網絡管理服務器收到一條Trap報文后,對報文進行解析,并對Bloomfilter進行存在性判定,如果判定該報文攜帶的告警信息為新告警,則將此告警信息通過hash算法映射到對應的Bloomfilter中進行記錄,并將該告警信息存入當前告警數據庫;如果判定該報文攜帶的告警信息已經存在,更新當前告警數據庫中的對應記錄。本發明對網管系統中告警信息入庫流程做出優化,減少了對數據庫的操作,提高了系統的運行速度。
【專利說明】一種網絡管理系統中的告警信息入庫的處理方法
【技術領域】
[0001]本發明涉及一種網絡管理系統中的告警信息入庫的處理方法,更具體涉及,一種基于Bloomfilter算法的網絡管理系統中的告警信息入庫的處理方法,屬于計算機數據處理【技術領域】。
【背景技術】
[0002]隨著社會信息化程度的增加,人們對于網絡運行安全可靠的要求越來越高,網絡管理系統作為保障網絡高效正常運行的應用系統,越來越受到人們的重視。網絡管理系統一般采用管理者-代理模型,如圖1所示,該模型主要包括數據庫1、管理者2、管理者代理3和被管理對象4,他們之間使用SNMP協議交換信息。
[0003]SNMP管理的實質是對管理信息進行相應的讀寫操作,SNMP協議定義了五種操作命令,分別是 GetRequest、GetNextRequest、SetRequest、GetResponse 和 Trap,而操作的對象是管理信息。為了實現統一管理,將管理信息的集合定義為管理信息庫,比如IETF定義的管理信息庫MIB-1I,以及各種私有MIB庫。MIB庫是一個樹形結構的信息庫,每個管理信息都是管理信息樹的一個節點,用唯一的對象標識碼(OID)來代表。
[0004]故障管理負責采集、分析和響應Trap報文中所攜帶的告警信息,是網絡管理最重要的功能。被管理對象會周期地檢查自身狀態,如果發現故障或異常,就通過Trap報文向網管服務器上報告警信息。如果該故障或異常長時間未恢復,就會造成告警信息的重復上報,被稱為重復告警。收到告警信息后,服務器會將告警信息存入當前告警數據庫中;當故障或異常恢復后,被管理對象會上報告警清除信息,服務器會將之前的告警信息由當前告警數據庫移動到歷史告警數據庫中,用于日后對告警歷史數據的查看以及被管理對象歷史性能的分析。在這個過程中,服務器收到告警信息后,需要查詢當前告警數據庫,判斷告警信息是新生成的還是重復告警。對于新生成的告警信息,服務器會將其存入當前告警數據庫;對于重復告警,服務器會對當前告警數據庫中的對應告警信息記錄進行更新,將其告警次數加1,并將其最近告警時間變更為最近一條告警信息的告警時間。
[0005]現有技術中,告警信息的入庫流程圖如圖2所示,上述流程中,服務器每收到一條告警信息,都需要查詢當前告警數據庫,確認這條告警信息是不是重復告警,以此確定要對數據庫進行插入操作還是更新操作。隨著網管系統中被管理對象數量增多,以及每個被管理對象管理信息的增多,這種處理方式給系統數據庫帶來很大存取壓力,成為系統響應時間的瓶頸,此問題亟待解決。
【發明內容】
[0006]本發明所要解決的技術問題是,克服現有技術的缺點,提供一種網絡管理系統中的告警信息入庫的處理方法,緩解系統數據庫存取壓力,加快響應時間。
[0007]為了解決以上技術問題,本發明提供一種網絡管理系統中的告警信息入庫的處理方法,包括網絡管理服務器和與網絡管理服務器雙向通信連接的被管理對象和當前告警數據庫,包括如下步驟:
[0008]S1、將被管理對象的當前告警信息通過hash方式映射到Bloomfilter數據結構,將被管理對象對應的標識ID和Bloomfilter配對后組成Map結構存儲到網絡管理服務器的內存中;
[0009]S2、網絡管理服務器收到一條Trap報文后,對報文進行解析,提取報文中攜帶的被管理對象ID和告警信息,通過被管理對象ID在內存中提取對應的記錄該被管理對象當前告警信息的Bloomfilter,對Bloomfilter進行存在性判定,如果判定該報文攜帶的告警信息為新告警,則將此告警信息通過hash算法映射到對應的Bloomfilter中進行記錄,并將該告警信息存入當前告警數據庫;如果判定該報文攜帶的告警信息已經存在,更新當前告警數據庫中的對應記錄。
[0010]本發明技術方案的進一步限定為,步驟SI中所述的Bloomfilter數據結構采用相同的長度和哈希函數的數量,確定長度和哈希函數數量的方法為:確定網絡管理系統中具有最多告警信息種類的被管理對象A,其告警信息種類的數量為n,網絡管理系統可容忍的判錯率為ε ,則Bloomfilter數據結構的長度m≥nlog2 (I/ ε ), BloomfiIter數據結構的哈希函數數量k=ln2.(m/n)。
[0011]進一步地,步驟SI中將被管理對象的告警信息存儲到內存中的方法為:系統啟動時,從數據庫中讀取所有被管理對象的ID,根據被管理對象的ID在當前告警數據庫中查詢其所有當前告警信息,并通過hash算法將告警信息映射到此ID對應的Bloomfilter中;遍歷所有讀取出的被管理對象,得到每個被管理對象ID和其Bloomfilter的對應關系列表,將此列表存儲到內存中。
[0012]進一步地,步驟S2中,對Bloomfilter進行存在性判定的方法為:通過hash方式對Trap報文中攜帶的告警信息進行處理,并將處理后的結果與此被管理對象對應的Bloomfilter中存儲的信息進行對比,如果存在,則此告警信息為重復告警,如果不存在,則
此告警信息為新告警。
[0013]進一步地,所述網絡管理系統還包括歷史告警數據庫,當網絡管理服務器接收到告警清除報文或者接收到告警清除指令后,會將對應告警信息從當前告警數據庫移動到歷史告警數據庫,同時,刪除此被管理對象對應的Bloomfilter中的此條信息。
[0014]進一步地,步驟S2中,如果判定該報文攜帶的告警信息已經存在,更新當前告警數據庫中的對應記錄后,如果網絡管理服務器接收到當前告警數據庫返回結果顯示“更新記錄條數為0”,則網絡管理服務器修正對Bloomfilter進行存在性判定的結果,判定該報文攜帶的告警信息為新告警,則將該告警信息存入當前告警數據庫,并將此告警信息通過hash算法映射到對應的Bloomfilter中進行記錄。
[0015]進一步地,步驟SI及S2中所述的Bloomfilter為計數型Bloomfilter。
[0016]本發明的有益效果是:本發明公開的一種網絡管理系統中的告警信息入庫的處理方法,對網管系統中告警信息入庫流程做出優化,將系統中被管理對象ID和記錄其當前告警數據的Bloomfilter數據結構存儲到內存中,減少了對數據庫的操作,提高了系統的運行速度;本發明方法告警信息入庫處理流程所需時間基本呈線性增長趨勢,模擬在當前告警數據庫中查詢50條記錄,此時需要的時間是53ms,而在系統內存中通過Bloomfilter狀態判定50條告警信息是否存在所需時間為8ms,因此,針對一條告警信息,改進的處理流程比原始處理流程用時少0.9ms O【專利附圖】
【附圖說明】
[0017]圖1為現有技術中網絡管理系統采用的管理者-代理模型;
[0018]圖2為現有技術中告警信息的入庫的流程圖;
[0019]圖3為本發明提供的網絡管理系統中的告警信息入庫的處理方法的流程圖;
[0020]圖4為實施例1提供的被管理對象的當前告警信息以Bloomfilter數據結構存儲的結構圖;
[0021]圖5為實施例1模擬的告警信息每分鐘到達I個?200個的情況兩種處理流程所需處理時間的曲線圖。
【具體實施方式】
[0022]實施例1
[0023]本實施例提供的一種網絡管理系統中的告警信息入庫的處理方法,其流程圖如圖3所示,包括網絡管理服務器和與網絡管理服務器雙向通信連接的被管理對象和當前告警數據庫,包括如下步驟:
[0024]S1、將被管理對象的當前告警信息通過hash方式映射到Bloomfilter數據結構,將被管理對象對應的標識ID和Bloomfilter配對后組成Map結構存儲到網絡管理服務器的內存中。
[0025]Bloomfilter是用于判定有限集合中某些元素是否存在的一種數據結構。對于網絡管理系統中的某個被管理對象,其所能上報的告警信息種類是有限的,由所使用的MIB庫決定。因此,可以設計Bloomfilter數據結構記錄此被管理對象已經發生的告警信息。通過這種方式,可以將系統中所有被管理對象的當前告警信息以Bloomfilter數據結構存儲。
[0026]在Bloomfilter類型選擇上,由于網管系統當前告警數據庫中的記錄是動態增刪的,為了保證Bloomfilter中所記錄的當前告警信息與當前告警數據庫中的信息一致,需要選擇具有增刪功能的Bloomfilter,本專利選取計數型Bloomfilter (CountingBloomfilter)記錄系統中的當前告警信息。
[0027]Bloomfilter的最小長度以及所需哈希函數的最佳數量,依賴于有限集合的大小以及所能接收的判錯率。在Bloomfilter長度和哈希函數數量的選擇上,有兩種可行方案:一種是對系統中所有被管理對象設定相同的Bloomfilter長度和相同數量的哈希函數,另一種是針對不同的被管理對象,根據其可能產生告警種類數量的不同,設定不同的Bloomfilter長度和不同數量的哈希函數。前一種方式實現簡單,只需要找出系統中具有最多告警種類的被管理對象,并以其告警種類作為標準,決定Bloomfilter長度和哈希函數的數量,但是這種方式的信息冗余度較高;第二種方式針對每一個被管理對象告警信息種類數量不同,設定不同的Bloomfilter長度和不同數量的哈希函數,這種方式可以最大限度地壓縮告警信息,但是需要對每一個被管理對象進行計算,過程繁瑣,且不利于Bloomfilter的統一存儲。基于以上考慮,本實施例采用第一種方式,對所有被管理對象的Bloomfilter采用相同長度及相同數量的哈希函數。[0028]所述的Bloomfilter數據結構采用相同的長度和哈希函數的數量,確定長度和哈希函數數量的方法為:確定網絡管理系統中具有最多告警信息種類的被管理對象A,其告警信息種類的數量為n,網絡管理系統可容忍的判錯率為ε,則Bloomfilter數據結構的長度m≥nlog2 (I/ ε ),Bloomfilter數據結構的哈希函數數量k=ln2.(m/n)。
[0029]本實施例中的操作方法為:假設在一個網絡管理系統中,被管理對象A具有最多的告警種類,其告警信息種類數量為n,系統可容忍的判錯率為ε,則Bloomfilter長度m必須滿足m≥nlog2 (I/ ε ),之后可以據此計算出最佳的哈希函數數量為k=ln2.(m/n),這樣就確定了 Bloomfilter結構。將每個被管理對象的所有當前告警信息通過hash方式映射到Bloomfilter之后,將此被管理對象的(ID,Bloomfilter)對組成Map結構存儲到內存中,示意圖如圖4所示。
[0030]S2、網絡管理服務器收到一條Trap報文后,對報文進行解析,提取報文中攜帶的被管理對象ID和告警信息,通過被管理對象ID在內存中提取對應的記錄該被管理對象當前告警信息的Bloomfilter,對Bloomfilter進行存在性判定,如果判定該報文攜帶的告警信息為新告警,則將此告警信息通過hash算法映射到對應的Bloomfilter中進行記錄,并將該告警信息存入當前告警數據庫;如果判定該報文攜帶的告警信息已經存在,更新當前告警數據庫中的對應記錄。
[0031]上述步驟的具體實現方式為:
[0032](I)網管系統初始化時同步當前告警信息到Bloomfilter中
[0033]系統啟動時,從數據庫中讀取所有被管理對象的ID,根據被管理對象的ID在當前告警數據庫中查詢其所有當前告警信息0ID,并通過hash算法將告警信息映射到此ID對應的Bloomfilter中;遍歷所有讀取出的被管理對象,得到每個被管理對象ID和其Bloomfilter的對應關系列表,將此列表存儲到內存中。
[0034]例如,本實施例中選取Bloomfilter長度為11,哈希函數數量為2,某個被管理對象A在數據庫中的ID為’ 01’,其所對應的當前告警信息有三條,告警OID分別為.1.3? 6.1.2.1.1.5.1、.1.3.6.1.2.1.1.6.1、.1.3.6.1.2.1.1.7.1,經過 hash 算法,第一條告警信息映射為[10000010000],第二條告警信息映射為[10001010000],第三條告警信息映射為[10001010010],由于其中第I位、第5位、第7位被多次映射為1,因此三個hash結果疊加后,最后得到此被管理對象對應的計數型Bloomfilter結果為[10001010010][30002030010],其中前一個數組代表Bloomfilter映射之后的結果,后一個數組代表某個位被置I幾次。這樣就得到被管理對象A對應的Bloomfilter,如表1所示。
[0035]表1:被管理對象A對應的Bloomfilter
[0036]
【權利要求】
1.一種網絡管理系統中的告警信息入庫的處理方法,包括網絡管理服務器和與網絡管理服務器雙向通信連接的被管理對象和當前告警數據庫,其特征在于,包括如下步驟: S1、將被管理對象的當前告警信息通過hash方式映射到Bloomfilter數據結構,將被管理對象對應的標識ID和Bloomfilter配對后組成Map結構存儲到網絡管理服務器的內存中; S2、網絡管理服務器收到一條Trap報文后,對報文進行解析,提取報文中攜帶的被管理對象ID和告警信息,通過被管理對象ID在內存中提取對應的記錄該被管理對象當前告警信息的Bloomfilter,對Bloomfilter進行存在性判定,如果判定該報文攜帶的告警信息為新告警,則將此告警信息通過hash算法映射到對應的Bloomfilter中進行記錄,并將該告警信息存入當前告警數據庫;如果判定該報文攜帶的告警信息已經存在,更新當前告警數據庫中的對應記錄。
2.根據權利要求1所述的一種網絡管理系統中的告警信息入庫的處理方法,其特征在于,步驟SI中所述的Bloomfilter數據結構采用相同的長度和哈希函數的數量,確定長度和哈希函數數量的方法為:確定網絡管理系統中具有最多告警信息種類的被管理對象A,其告警信息種類的數量為n,網絡管理系統可容忍的判錯率為ε,則Bloomfilter數據結構的長度m≥nlog2 (I/ ε ),Bloomfilter數據結構的哈希函數數量k=ln2.(m/n)。
3.根據權利要求1所述的一種網絡管理系統中的告警信息入庫的處理方法,其特征在于,步驟SI中將被管理對象的告警信息存儲到內存中的方法為:系統啟動時,從數據庫中讀取所有被管理對象的ID,根據被管理對象的ID在當前告警數據庫中查詢其所有當前告警信息,并通過hash算法將告警信息映射到此ID對應的Bloomfilter中;遍歷所有讀取出的被管理對象,得到每個被管理對象ID和其Bloomfilter的對應關系列表,將此列表存儲到內存中。
4.根據權利要求1所述的一種網絡管理系統中的告警信息入庫的處理方法,其特征在于,步驟S2中,對Bloomfilter進行存在性判定的方法為:通過hash方式對Trap報文中攜帶的告警信息進行處理,并將處理后的結果與此被管理對象對應的Bloomfilter中存儲的信息進行對比,如果存在,則此告警信息為重復告警,如果不存在,則此告警信息為新告警。
5.根據權利要求1所述的一種網絡管理系統中的告警信息入庫的處理方法,其特征在于,所述網絡管理系統還包括歷史告警數據庫,當網絡管理服務器接收到告警清除報文或者接收到告警清除指令后,會將對應告警信息從當前告警數據庫移動到歷史告警數據庫,同時,刪除此被管理對象對應的Bloomfilter中的此條信息。
6.根據權利要求1所述的一種網絡管理系統中的告警信息入庫的處理方法,其特征在于,步驟S2中,如果判定該報文攜帶的告警信息已經存在,更新當前告警數據庫中的對應記錄后,如果網絡管理服務器接收到當前告警數據庫返回結果顯示“更新記錄條數為0”,則網絡管理服務器修正對Bloomfilter進行存在性判定的結果,判定該報文攜帶的告警信息為新告警,則將該告警信息存入當前告警數據庫,并將此告警信息通過hash算法映射到對應的Bloomfilter中進行記錄。
7.根據權利要求1所述的一種網絡管理系統中的告警信息入庫的處理方法,其特征在于,步驟SI及S2中所述的Bloomfilter為計數型Bloomfilter。
【文檔編號】H04L12/24GK103595569SQ201310578377
【公開日】2014年2月19日 申請日期:2013年11月15日 優先權日:2013年11月15日
【發明者】班志遠 申請人:南京云川信息技術有限公司