本發(fā)明涉及集群監(jiān)控領域,特別涉及一種snmp-trap告警方法及裝置。
背景技術:
隨著現代社會科技的發(fā)展,互聯網已經滲透于人們生活的各方各面,人們每天產生的數據急劇增加。2014年僅我國就有高達20億元的大數據市場,并且一直以約60%速度增長。對大數據存儲和監(jiān)控離不開服務器集群,服務器集群的一個重要、必須的功能就是主動告警,比較常見的方式為snmp(simplenetworkmanagementprotocol,簡單網絡管理協(xié)議)的trap告警。
現有技術中,snmp-trap告警的方式往往根據snmp的原則,將一個資源定義為mib中的一個節(jié)點,如將每個告警(例如電量過低、磁盤將滿、風扇故障等)設計成mib中的一個節(jié)點。這樣的好處簡單易懂,snmp管理端收到一個trap告警時,從收到的oid就可以清楚的知道哪里出現了問題。然而,這種snmp-trap告警的方式在當需要增加新的告警時,往往需要重新設計mib庫,并且需要對新的告警重新編碼,對snmp-trap告警的擴展十分不利;并且,服務器集群是個很復雜的設備,必然存在很多種告警,使得設計出的mib文件往往很大,對使用方造成困擾和不便。因此,如何對mib進行設計,使snmp-trap告警可以更加便捷的擴展,且減小mib文件的容量,提高用戶體驗,是現今亟需解決的問題。
技術實現要素:
本發(fā)明的目的是提供一種snmp-trap告警方法及裝置,以通過將每個告警屬性設計成mib中的一個oid,使snmp-trap告警可以更加便捷的擴展,且減小mib文件的容量。
為解決上述技術問題,本發(fā)明提供一種snmp-trap告警方法,包括:
檢測獲取預設的部件或業(yè)務功能中存在的告警項;
獲取所述告警項對應的告警屬性;
根據mib中所述告警屬性各自對應的oid,將所述告警屬性打包成trap報文并發(fā)送到對應的接收端。
可選的,所述根據mib中所述告警屬性各自對應的oid,將所述告警屬性打包成trap報文并發(fā)送到對應的接收端之前,還包括:
將所述告警屬性打包成事件;
鎖住事件隊列,將所述事件放入所述事件隊列,并解鎖所述事件隊列。
可選的,所述根據mib中所述告警屬性各自對應的oid,將所述告警屬性打包成trap報文并發(fā)送到對應的接收端,包括:
從所述事件隊列獲取所述事件;
根據所述mib中所述告警屬性各自對應的oid,將所述事件中的所述告警屬性打包成所述trap報文并發(fā)送到所述接收端;
鎖住所述事件隊列,將所述事件從所述事件隊列中刪除,并解鎖所述事件隊列。
可選的,所述告警屬性包括:告警級別、告警對象id、告警對象名、對象類型、錯誤碼、錯誤描述、告警發(fā)生時間、告警對象序列號、集群id、集群名、節(jié)點名id、節(jié)點名和集群版本號中至少一項。
可選的,所述根據mib中所述告警屬性各自對應的oid,將所述告警屬性打包成trap報文并發(fā)送到對應的接收端之后,還包括:
所述接收端根據所述trap報文中的所述oid,向對應的位置發(fā)送對應的告警信息。
此外,本發(fā)明還提供了一種snmp-trap告警裝置,包括:
檢測模塊,用于檢測獲取預設的部件或業(yè)務功能中存在的告警項;
獲取模塊,用于獲取所述告警項對應的告警屬性;
發(fā)送模塊,用于根據mib中所述告警屬性各自對應的oid,將所述告警屬性打包成trap報文并發(fā)送到對應的接收端。
可選的,該裝置還包括:
打包模塊,用于將所述告警屬性打包成事件;
事件隊列模塊,用于鎖住事件隊列,將所述事件放入所述事件隊列,并解鎖所述事件隊列。
可選的,所述發(fā)送模塊,包括:
獲取子模塊,用于從所述事件隊列獲取所述事件;
發(fā)送子模塊,用于根據所述mib中所述告警屬性各自對應的oid,將所述事件中的所述告警屬性打包成所述trap報文并發(fā)送到所述接收端;
事件隊列子模塊,鎖住所述事件隊列,將所述事件從所述事件隊列中刪除,并解鎖所述事件隊列。
本發(fā)明所提供的一種snmp-trap告警方法,包括:檢測獲取預設的部件或業(yè)務功能中存在的告警項;獲取所述告警項對應的告警屬性;根據mib中所述告警屬性各自對應的oid,將所述告警屬性打包成trap報文并發(fā)送到對應的接收端;
可見,本發(fā)明通過獲取告警項對應的告警屬性,可以利用對應的告警屬性體現告警項的內容;通過根據mib中告警屬性各自對應的oid,將告警屬性打包成trap報文并發(fā)送到對應的接收端,可以利用預先設置的告警屬性對應的oid將對應的告警屬性打包成trap報文并發(fā)送到對應的接收端,使得接收端可以通過告警屬性獲取對應的告警項,從而使snmp-trap告警可以更加便捷的擴展,且減小了mib文件的容量。此外,本發(fā)明還提供了一種snmp-trap告警裝置,同樣具有上述有益效果。
附圖說明
為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例所提供的一種snmp-trap告警方法的流程圖;
圖2為本發(fā)明實施例所提供的一種snmp-trap告警方法的mib中的告警屬性示意圖;
圖3為本發(fā)明實施例所提供的一種snmp-trap告警裝置的結構圖。
具體實施方式
為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
請參考圖1,圖1為本發(fā)明實施例所提供的一種snmp-trap告警方法的流程圖。該方法可以包括:
步驟101:檢測獲取預設的部件或業(yè)務功能中存在的告警項。
其中,預設的部件或業(yè)務功能可以為用戶或設計人員預先設置的利用本實施例所提供的方法進行snmp-trap告警的位置。本實施例對此不做任何限制。
可以理解的是,對于本步驟中的告警項的具體檢測獲取方式,可以由設計人員根據實用場景和用戶需求自行設置,只要可以獲取預設的部件或業(yè)務功能中存在的告警項,本實施例對此不受任何限制。
步驟102:獲取告警項對應的告警屬性。
其中,告警屬性為mib中的oid對應的屬性,每個告警屬性可以各自對應一個oid。告警屬性可以包括告警級別(如嚴重、警告和消息級別)、告警對象id、告警對象名、對象類型、錯誤碼、錯誤描述、告警發(fā)生時間、告警對象序列號、集群id、集群名、節(jié)點名id、節(jié)點名和集群版本號;也可以上述內容中的一項或幾項;還可以包括其他內容。對于告警屬性的具體內容,也就是mib中的oid的屬性,可以由設計人員根據實用場景和用戶需求自行設置,本實施例對此不做任何限制。
具體的,告警屬性對應的oid在mib中的設置方式,可以如圖2所示,alarm可以為mib根節(jié)點(在mib文件中,它可以在“1.3.6.1.4.1”之下的某節(jié)點下),critical、warning和information分別為嚴重、警告和消息的三個告警級別。attributes為告警總屬性,objid、objname、objtype、errorcode、errorinfo、createdtime、objsn、clusterid、clustername、nodeid、nodename、clusterversion分別為attributes下的告警對象id、告警對象名、對象類型、錯誤碼、錯誤描述、告警發(fā)生時間、告警對象序列號、集群id、集群名、節(jié)點名id、節(jié)點名和集群版本號的表示告警對象id、告警對象名、對象類型、錯誤碼、錯誤描述、告警發(fā)生時間、告警對象序列號、集群id、集群名、節(jié)點名id、節(jié)點名和集群版本號的告警分屬性。本實施例對此不做任何限制。
可以理解的是,本步驟中獲取告警項對應的告警屬性的具體方式,可以為根據預先設置的該告警項與告警屬性的對應關系,獲取該告警項對應的告警屬性,如添加每個告警項時,預先設置該告警項與告警屬性的對應關系;也可以為對該告警項進行分析,獲取對應的告警屬性。只要可以獲取告警項對應的告警屬性,對于具體的獲取方式,可以由設計人員根據實用場景和用戶需求自行設置,本實施例對此不做任何限制。
步驟103:根據mib中告警屬性各自對應的oid,將告警屬性打包成trap報文并發(fā)送到對應的接收端。
其中,本步驟的目的是根據mib中告警屬性各自對應的oid,將告警項對應的告警屬性打包成trap報文并發(fā)送到對應的接收端,從而使接收端可以根據trap報文中oid的告警屬性獲取告警項,進行對應的告警操作。
可以理解的是,由于集群中的告警項的數量可能很多,為了避免告警項對應的告警屬性丟失,造成的漏告警情況,可以在本步驟之前,將獲取的告警項對應的告警屬性放入到隊列中。也就是說,本步驟之前可以包括:將告警屬性打包成事件;鎖住事件隊列,將事件放入事件隊列,并解鎖事件隊列的步驟。通過鎖住事件隊列,將告警屬性打包成的事件放入到事件隊列,并解鎖事件隊列,可以使每次對事件隊列添加事件的過程不受干擾,避免了同時添加事件可能造成的事件遺漏的情況。
對應的,本步驟可以為從事件隊列獲取事件;根據mib中告警屬性各自對應的oid,將事件中的告警屬性打包成trap報文并發(fā)送到接收端;鎖住事件隊列,將事件從事件隊列中刪除,并解鎖事件隊列的步驟。通過鎖住事件隊列,將處理后的事件從事件隊列中刪除,并解鎖事件隊列的步驟,可以保證將處理后的事件,也就是其告警屬性已打包成trap報文并發(fā)送到接收端的事件,從事件隊列中刪除的過程不受干擾。
需要說明的是,由于本實施例所提供的方法向接收端發(fā)送的trap報文為告警項對應的告警屬性的oid。因此,接收端可以根據對應的告警屬性的oid確定告警項,從而執(zhí)行對應的告警操作。也就是說,本實施例所提供的方法還可以包括:接收端根據trap報文中的oid,向對應的位置發(fā)送對應的告警信息的步驟。對于對應的位置的具體設置方式,可以為trap報文中的oid對應的告警項對應的位置,也可以為預先設置的一個用于顯示告警信息的位置,本實施例對此不做任何限制。對于告警信息的具體設置方式,可以為trap報文中的oid對應的告警項對應的告警信息,本實施例對此同樣不做任何限制。
可以理解的是,本實施所提供的方法從告警本身的屬性出發(fā),將每種告警項的所有告警屬性列出,并將每個告警屬性設計成mib中的一個oid,當需要告警時,將告警項的對應的告警屬性發(fā)送到接收端,由于全部告警項對應告警屬性的oid相對不變,需要增加新的告警時,只需確定新的告警項與原有的告警屬性的oid的對應關系或增加較少的告警屬性的oid及對應關系。
本實施例中,本發(fā)明實施例通過獲取告警項對應的告警屬性,可以利用對應的告警屬性體現告警項的內容;通過根據mib中告警屬性各自對應的oid,將告警屬性打包成trap報文并發(fā)送到對應的接收端,可以利用預先設置的告警屬性對應的oid將對應的告警屬性打包成trap報文并發(fā)送到對應的接收端,使得接收端可以通過告警屬性獲取對應的告警項,從而使snmp-trap告警可以更加便捷的擴展,且減小了mib文件的容量。
請參考圖3,圖3為本發(fā)明實施例所提供的一種snmp-trap告警裝置的結構圖。該裝置可以包括:
檢測模塊100,用于檢測獲取預設的部件或業(yè)務功能中存在的告警項;
獲取模塊200,用于獲取告警項對應的告警屬性;
發(fā)送模塊300,用于根據mib中告警屬性各自對應的oid,將告警屬性打包成trap報文并發(fā)送到對應的接收端。
可選的,該裝置還可以包括:
打包模塊,用于將告警屬性打包成事件;
事件隊列模塊,用于鎖住事件隊列,將事件放入事件隊列,并解鎖事件隊列。
可選的,發(fā)送模塊300,可以包括:
獲取子模塊,用于從事件隊列獲取事件;
發(fā)送子模塊,用于根據mib中告警屬性各自對應的oid,將事件中的告警屬性打包成trap報文并發(fā)送到接收端;
事件隊列子模塊,鎖住事件隊列,將事件從事件隊列中刪除,并解鎖事件隊列。
本實施例中,本發(fā)明實施例通過獲取模塊200獲取告警項對應的告警屬性,可以利用對應的告警屬性體現告警項的內容;通過發(fā)送模塊300根據mib中告警屬性各自對應的oid,將告警屬性打包成trap報文并發(fā)送到對應的接收端,可以利用預先設置的告警屬性對應的oid將對應的告警屬性打包成trap報文并發(fā)送到對應的接收端,使得接收端可以通過告警屬性獲取對應的告警項,從而使snmp-trap告警可以更加便捷的擴展,且減小了mib文件的容量。
說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
專業(yè)人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發(fā)明的范圍。
結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(ram)、內存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動磁盤、cd-rom、或技術領域內所公知的任意其它形式的存儲介質中。
以上對本發(fā)明所提供的snmp-trap告警方法及裝置進行了詳細介紹。本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權利要求的保護范圍內。