本發(fā)明涉及設(shè)備監(jiān)控領(lǐng)域,尤指一種監(jiān)控數(shù)據(jù)處理裝置及監(jiān)控數(shù)據(jù)處理方法。
背景技術(shù):
隨著大數(shù)據(jù)和云計算時代的到來,對待監(jiān)控設(shè)備進行監(jiān)控從而獲取的監(jiān)控數(shù)據(jù)常常需要被集中起來然后進行處理以發(fā)揮更高的性能,然而由于待監(jiān)設(shè)備的分散性和監(jiān)控數(shù)據(jù)的繁雜性,監(jiān)控數(shù)據(jù)的處理往往會遇到巨大的挑戰(zhàn)。
目前,業(yè)界采用的普遍方式是通過設(shè)置nagios的分布式監(jiān)控系統(tǒng)完成監(jiān)控數(shù)據(jù)的處理。具體來說,該系統(tǒng)分為主控節(jié)點和分布式節(jié)點兩部分,首先,各分布式節(jié)點需要配置設(shè)備信息、設(shè)備所屬組別信息、監(jiān)測器信息和聯(lián)系人信息等,主控節(jié)點中需要配置各分布式節(jié)點所配置的信息,各分布式節(jié)點通過nsca_client進程將監(jiān)控數(shù)據(jù)實時上報給主控節(jié)點,主控節(jié)點通過nsca進程接收各個分布式節(jié)點發(fā)送的監(jiān)控數(shù)據(jù)并處理監(jiān)控數(shù)據(jù)。
但是,這種分布式監(jiān)控系統(tǒng)也有其不足的地方,由于這種系統(tǒng)包括分布式節(jié)點和主控節(jié)點兩部分,監(jiān)控數(shù)據(jù)的采集由分布式節(jié)點承擔(dān),監(jiān)控數(shù)據(jù)的處理由主控節(jié)點承擔(dān),而監(jiān)控數(shù)據(jù)的處理需要以正確的解析為前提,因此主控節(jié)點需要同步各分布式節(jié)點配置的設(shè)備信息、設(shè)備所述組別信息、監(jiān)測器信息和聯(lián)系人信息以能夠解析分布式節(jié)點獲取的監(jiān)控數(shù)據(jù),然而在復(fù)雜的網(wǎng)絡(luò)環(huán)境中主控節(jié)點和分布式節(jié)點的同步操作需要耗費很多資源,因此,會造成開銷過大;同時,由于主控節(jié)點要處理所有分布式節(jié)點獲取的監(jiān)控數(shù)據(jù),主控節(jié)點的處理壓力過大,因此,監(jiān)控數(shù)據(jù)的處理過程十分緩慢。
技術(shù)實現(xiàn)要素:
為了解決上述技術(shù)問題,本發(fā)明提供了一種監(jiān)控數(shù)據(jù)處理裝置及監(jiān)控數(shù)據(jù)處理方法,能夠省去主控節(jié)點和分布式節(jié)點進行信息同步的操作,從而減少了開銷,并且能夠分散監(jiān)控數(shù)據(jù)的處理壓力,從而提高了監(jiān)控數(shù)據(jù)的處理速度。
為了達到本發(fā)明目的,本發(fā)明提供了一種監(jiān)控數(shù)據(jù)處理裝置,包括:
接收模塊,用于接收自身所屬節(jié)點中監(jiān)控器的監(jiān)控數(shù)據(jù);
存儲模塊,用于將所述監(jiān)控數(shù)據(jù)存儲于所述自身所屬節(jié)點的預(yù)設(shè)隊列中;
獲取模塊,用于從所述預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為待處理監(jiān)控數(shù)據(jù);
處理模塊,用于對所述待處理監(jiān)控數(shù)據(jù)進行處理。
還包括:
建立模塊,用于在所述自身所屬節(jié)點中采用生產(chǎn)者消費者模式建立預(yù)設(shè)隊列;
所述處理模塊,具體用于根據(jù)所述自身所屬節(jié)點中預(yù)先設(shè)置的監(jiān)控項閾值信息、狀態(tài)判斷標(biāo)準(zhǔn)信息、告警條件信息、通知條件信息和聯(lián)系人信息對所述待處理數(shù)據(jù)進行處理。
所述處理模塊,包括:
第一處理單元,用于采用多線程模式,在每個線程中根據(jù)所述監(jiān)控項閾值信息、所述狀態(tài)判斷標(biāo)準(zhǔn)信息和當(dāng)前線程處理的部分待處理監(jiān)控數(shù)據(jù)確定監(jiān)控項狀態(tài),并將所述監(jiān)控項狀態(tài)存儲于所有節(jié)點共有的預(yù)設(shè)數(shù)據(jù)庫中;
第二處理單元,用于根據(jù)所述監(jiān)控項狀態(tài)和所述告警條件信息判斷是否進行告警;
第三處理單元,用于若進行告警,生成告警記錄添加至所述預(yù)設(shè)數(shù)據(jù)庫中,并且根據(jù)所述通知條件信息判斷是否滿足通知條件;
通知單元,用于若滿足所述通知條件,根據(jù)所述聯(lián)系人信息通知聯(lián)系人出現(xiàn)告警。
還包括:
設(shè)置模塊,用于設(shè)置預(yù)設(shè)規(guī)則;其中,所述預(yù)設(shè)規(guī)則為所述預(yù)設(shè)隊列出現(xiàn)異常情況時如何處理所述預(yù)設(shè)隊列所存儲的數(shù)據(jù)的規(guī)則;
所述獲取模塊,具體用于根據(jù)所述預(yù)設(shè)規(guī)則從所述預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為所述待處理監(jiān)控數(shù)據(jù)。
所述預(yù)設(shè)規(guī)則包括:
當(dāng)所述預(yù)設(shè)隊列的長度m大于預(yù)設(shè)長度n時,丟棄排列在所述預(yù)設(shè)隊列隊頭的前s個監(jiān)控數(shù)據(jù),其中,s>m-n;
所述獲取模塊,具體用于根據(jù)所述預(yù)設(shè)規(guī)則,當(dāng)所述預(yù)設(shè)隊列的長度m大于預(yù)設(shè)長度n時,丟棄排列在所述預(yù)設(shè)隊列隊頭的前s個監(jiān)控數(shù)據(jù),再從所述預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為所述待處理監(jiān)控數(shù)據(jù)。
本發(fā)明還提供了一種監(jiān)控數(shù)據(jù)處理方法,包括:
接收目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點中監(jiān)控器的監(jiān)控數(shù)據(jù);其中,所述目標(biāo)監(jiān)控數(shù)據(jù)處理裝置為設(shè)置在每個節(jié)點上的監(jiān)控處理裝置中的任意一個;
將所述監(jiān)控數(shù)據(jù)存儲于所述目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點的預(yù)設(shè)隊列中;
從所述預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為待處理監(jiān)控數(shù)據(jù);
對所述待處理監(jiān)控數(shù)據(jù)進行處理。
所述接收目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點中監(jiān)控器的監(jiān)控數(shù)據(jù)之前,所述方法還包括:
在所述目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點中采用生產(chǎn)者消費者模式建立預(yù)設(shè)隊列;
所述對待處理監(jiān)控數(shù)據(jù)進行處理,包括:
根據(jù)所述目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點中預(yù)先設(shè)置的監(jiān)控項閾值信息、狀態(tài)判斷標(biāo)準(zhǔn)信息、告警條件信息、通知條件信息和聯(lián)系人信息對所述待處理監(jiān)控數(shù)據(jù)進行處理。
所述根據(jù)目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點中預(yù)先設(shè)置的監(jiān)控項閾值信息、狀態(tài)判斷標(biāo)準(zhǔn)信息、告警條件信息、通知條件信息和聯(lián)系人信息對待處理監(jiān)控數(shù)據(jù)進行處理,包括:
采用多線程模式,在每個線程中根據(jù)所述監(jiān)控項閾值信息、所述狀態(tài)判斷標(biāo)準(zhǔn)信息和當(dāng)前線程處理的部分待處理監(jiān)控數(shù)據(jù)確定監(jiān)控項狀態(tài),并將所述監(jiān)控項狀態(tài)存儲于所有節(jié)點共有的預(yù)設(shè)數(shù)據(jù)庫中;
根據(jù)所述監(jiān)控項狀態(tài)和所述告警條件信息判斷是否進行告警;
若進行告警,生成告警記錄添加至所述預(yù)設(shè)數(shù)據(jù)庫中,并且根據(jù)所述通知條件信息判斷是否滿足通知條件;
若滿足所述通知條件,根據(jù)所述聯(lián)系人信息通知聯(lián)系人出現(xiàn)告警。
所述從預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為待處理監(jiān)控數(shù)據(jù)之前,所述方法還包括:
設(shè)置預(yù)設(shè)規(guī)則;其中,所述預(yù)設(shè)規(guī)則為所述預(yù)設(shè)隊列出現(xiàn)異常情況時如何處理所述預(yù)設(shè)隊列中所存儲的數(shù)據(jù)的規(guī)則;
相應(yīng)的,所述從預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為待處理監(jiān)控數(shù)據(jù),包括:
根據(jù)所述預(yù)設(shè)規(guī)則從所述預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為所述待處理監(jiān)控數(shù)據(jù)。
所述預(yù)設(shè)規(guī)則包括:
當(dāng)所述預(yù)設(shè)隊列的長度m大于預(yù)設(shè)長度n時,丟棄排列在所述預(yù)設(shè)隊列隊頭的前s個監(jiān)控數(shù)據(jù),其中,s>m-n;
相應(yīng)的,所述根據(jù)預(yù)設(shè)規(guī)則從所述預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為待處理監(jiān)控數(shù)據(jù),包括:
根據(jù)所述預(yù)設(shè)規(guī)則,當(dāng)所述預(yù)設(shè)隊列的長度m大于預(yù)設(shè)長度n時,丟棄排列在所述預(yù)設(shè)隊列隊頭的前s個監(jiān)控數(shù)據(jù),再從所述預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為所述待處理監(jiān)控數(shù)據(jù)。
與現(xiàn)有技術(shù)相比,本發(fā)明提供的監(jiān)控數(shù)據(jù)處理裝置設(shè)置在每個節(jié)點上,至少包括接收模塊,用于接收自身所屬節(jié)點中監(jiān)控器的監(jiān)控數(shù)據(jù);存儲模塊,用于將監(jiān)控數(shù)據(jù)存儲于自身所屬節(jié)點的預(yù)設(shè)隊列中;獲取模塊,用于從預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為待處理監(jiān)控數(shù)據(jù);處理模塊,用于對待處理監(jiān)控數(shù)據(jù)進行處理。從本發(fā)明提供的技術(shù)方案可見,由于該裝置設(shè)置在每個節(jié)點上,使得每個節(jié)點都具備獲取監(jiān)控數(shù)據(jù)進而處理的能力,因此不同于nagios分布式系統(tǒng)中分布式節(jié)點負(fù)責(zé)監(jiān)控數(shù)據(jù)的獲取、主控節(jié)點負(fù)責(zé)監(jiān)控數(shù)據(jù)處理的模式,本發(fā)明提供的監(jiān)控數(shù)據(jù)處理裝置省去了nagios分布式系統(tǒng)由主控節(jié)點處理監(jiān)控數(shù)據(jù)帶來的主控節(jié)點需要同步和分布式節(jié)點信息的操作,從而減少了開銷;同時,由于該裝置使得每個節(jié)點都能獨立地對自身所述節(jié)點中監(jiān)控數(shù)據(jù)進行處理,從而分散了監(jiān)控數(shù)據(jù)的處理壓力,提高了監(jiān)控數(shù)據(jù)的處理速度。
本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
附圖說明
附圖用來提供對本發(fā)明技術(shù)方案的進一步理解,并且構(gòu)成說明書的一部分,與本申請的實施例一起用于解釋本發(fā)明的技術(shù)方案,并不構(gòu)成對本發(fā)明技術(shù)方案的限制。
圖1為本發(fā)明實施例提供的一種監(jiān)控數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;
圖2為本發(fā)明實施例提供的另一種監(jiān)控數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;
圖3為本發(fā)明實施例提供的又一種監(jiān)控數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實施例提供的又一種監(jiān)控數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實施例提供的一種監(jiān)控數(shù)據(jù)處理方法的流程示意圖;
圖6為本發(fā)明實施例提供的另一種監(jiān)控數(shù)據(jù)處理方法的流程示意圖;
圖7為本發(fā)明實施例提供的又一種監(jiān)控數(shù)據(jù)處理方法的流程示意圖;
圖8為本發(fā)明實施例提供的又一種監(jiān)控數(shù)據(jù)處理方法的流程示意圖;
圖9為本發(fā)明實施例提供的一種監(jiān)控系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實施例進行詳細說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
本發(fā)明實施例提供一種監(jiān)控數(shù)據(jù)處理裝置,該裝置設(shè)置在每個節(jié)點上,如圖1所示,該裝置1包括:
接收模塊11,用于接收自身所屬節(jié)點中監(jiān)控器的監(jiān)控數(shù)據(jù)。
具體的,監(jiān)控數(shù)據(jù)是監(jiān)控器根據(jù)待監(jiān)控設(shè)備信息監(jiān)控待監(jiān)控設(shè)備獲得的數(shù)據(jù),待監(jiān)控設(shè)備和監(jiān)控器的數(shù)量可以是一臺,也可以是多臺,本發(fā)明對此不作限制。待監(jiān)控設(shè)備信息包括待監(jiān)控設(shè)備的監(jiān)控參數(shù)信息和待監(jiān)控設(shè)備的組別信息,其中,假設(shè)選擇以簡單網(wǎng)絡(luò)管理協(xié)議(simplenetworkmanagementprotocol,snmp)對待監(jiān)控設(shè)備進行監(jiān)控,那么待監(jiān)控設(shè)備的監(jiān)控參數(shù)信息包括待監(jiān)控設(shè)備的網(wǎng)絡(luò)協(xié)議(internetprotocol,ip)地址、snmp的版本號以及snmp的團體名稱。監(jiān)控項信息包括所要進行監(jiān)控的項目和監(jiān)控的間隔時間,其中,監(jiān)控間隔時間是指一次監(jiān)控與相鄰一次監(jiān)控的時間間隔;所要進行監(jiān)控的項目可以是針對計算機的,也可以是針對計算機中的某個應(yīng)用的,當(dāng)所要進行監(jiān)控的項目是針對計算機時,所要進行監(jiān)控的項目可以包括cpu利用率、內(nèi)存利用率等,當(dāng)所要進行監(jiān)控的項目是針對計算機中的某個應(yīng)用時,例如數(shù)據(jù)庫,所要進行監(jiān)控的項目可以包括表空間利用率。
具體的,當(dāng)監(jiān)控器數(shù)量較大時,接收模塊11具體可以采用多線程模式接收監(jiān)控數(shù)據(jù)。
存儲模塊12,用于將監(jiān)控數(shù)據(jù)存儲于自身所屬節(jié)點的預(yù)設(shè)隊列中。
具體的,實際過程中監(jiān)控數(shù)據(jù)可能過于零碎,而要存儲在預(yù)設(shè)隊列中需要通過連接,但是預(yù)設(shè)隊列的連接數(shù)有限,不能在同一時間滿足監(jiān)控數(shù)據(jù)的存儲要求,因此可以將監(jiān)控數(shù)據(jù)先行整合,再通過連接存儲于預(yù)設(shè)隊列。
具體的,每個節(jié)點上都有一個預(yù)設(shè)隊列,用于存儲自身節(jié)點中監(jiān)控器的監(jiān)控數(shù)據(jù),由于隊列的特性是先進先出,因此將監(jiān)控數(shù)據(jù)存儲于預(yù)設(shè)隊列中,可以保證先存入的數(shù)據(jù)先被獲取,從而保持?jǐn)?shù)據(jù)的順序。
獲取模塊13,用于從預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為待處理監(jiān)控數(shù)據(jù)。
需要說明的是,待處理監(jiān)控數(shù)據(jù)可以是監(jiān)控數(shù)據(jù)的一部分,也可以是監(jiān)控數(shù)據(jù)的全部。
具體的,獲取待處理監(jiān)控數(shù)據(jù)的方式是阻塞方式,這樣一旦預(yù)設(shè)隊列出現(xiàn)空置,就會出現(xiàn)阻塞,從而停止數(shù)據(jù)的獲取。
處理模塊14,用于對待處理監(jiān)控數(shù)據(jù)進行處理。
本發(fā)明實施例所提供的監(jiān)控數(shù)據(jù)處理裝置,設(shè)置在每個節(jié)點上,該裝置包括用于接收自身所屬節(jié)點中監(jiān)控器的監(jiān)控數(shù)據(jù)的接收模塊;用于將監(jiān)控數(shù)據(jù)存儲于自身所屬節(jié)點的預(yù)設(shè)隊列中的存儲模塊;用于從預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為待處理監(jiān)控數(shù)據(jù)的獲取模塊;用于對待處理監(jiān)控數(shù)據(jù)進行處理的處理模塊。這樣,由于該裝置設(shè)置在每個節(jié)點上,使得每個節(jié)點都具備獲取監(jiān)控數(shù)據(jù)獲取進而處理的能力,因此不同于nagios分布式系統(tǒng)中分布式節(jié)點負(fù)責(zé)監(jiān)控數(shù)據(jù)的獲取、主控節(jié)點負(fù)責(zé)監(jiān)控數(shù)據(jù)處理的模式,本發(fā)明提供的監(jiān)控數(shù)據(jù)處理裝置省去了nagios分布式系統(tǒng)由主控節(jié)點處理監(jiān)控數(shù)據(jù)帶來的主控節(jié)點需要同步和分布式節(jié)點信息的操作,從而減少了開銷;同時,由于該裝置使得每個節(jié)點都能獨立地對自身所屬節(jié)點中的監(jiān)控數(shù)據(jù)進行處理,從而分散了監(jiān)控數(shù)據(jù)的處理壓力,提高了監(jiān)控數(shù)據(jù)的處理速度。
進一步,在圖1對應(yīng)的實施例的基礎(chǔ)上,本發(fā)明實施例提供另一種監(jiān)控數(shù)據(jù)處理裝置,如圖2所示,該裝置1還包括:
建立模塊15,用于在自身所屬節(jié)點中采用生產(chǎn)者消費者模式建立預(yù)設(shè)隊列。
具體的,預(yù)設(shè)隊列的建立模式有兩種,一種是發(fā)布訂閱模式,另一種是生產(chǎn)者消費者模式,其中,生產(chǎn)者消費者模式指的是通過一個容器來解決生產(chǎn)者和消費者的強耦合問題的模式,生產(chǎn)者和消費者彼此之間不直接通訊,而通過阻塞隊列來進行通訊,所以生產(chǎn)者生產(chǎn)完數(shù)據(jù)之后不用等待消費者處理,直接扔給阻塞隊列,消費者不找生產(chǎn)者要數(shù)據(jù),而是直接從阻塞隊列里取,阻塞隊列就相當(dāng)于一個緩沖區(qū),平衡了生產(chǎn)者和消費者的處理能力。
處理模塊14,具體用于根據(jù)自身所屬節(jié)點中預(yù)先設(shè)置的監(jiān)控項閾值信息、狀態(tài)判斷標(biāo)準(zhǔn)信息、告警條件信息、通知條件信息和聯(lián)系人信息對待處理數(shù)據(jù)進行處理。
進一步,在圖2對應(yīng)的實施例的基礎(chǔ)上,本發(fā)明實施例提供又一種監(jiān)控數(shù)據(jù)處理裝置,如圖3所示,處理模塊14包括:
第一處理單元141,用于采用多線程模式,在每個線程中根據(jù)監(jiān)控項閾值信息、狀態(tài)判斷標(biāo)準(zhǔn)信息和當(dāng)前線程處理的部分待處理監(jiān)控數(shù)據(jù)確定監(jiān)控項狀態(tài),并將監(jiān)控項狀態(tài)存儲于所述節(jié)點共有的預(yù)設(shè)數(shù)據(jù)庫中。
具體的,采用多線程模式指的是采用多線程模式處理待監(jiān)控數(shù)據(jù),這樣每個線程都承擔(dān)部分待處理數(shù)據(jù)的處理任務(wù)。
具體的,監(jiān)控項閾值信息是監(jiān)控項狀態(tài)正常和不正常的界限,例如,假設(shè)待監(jiān)控設(shè)備是計算機,監(jiān)控項是中央處理器(centralprocessingunit,cpu)占用率,監(jiān)控項閾值信息可以是cpu占用率為80%,當(dāng)待處理數(shù)據(jù)表明所監(jiān)控到cpu的占用率低于80%,說明cpu占用率正常,當(dāng)待處理數(shù)據(jù)表明所監(jiān)控到cpu的占用率超過80%,說明cpu占用率不正常。狀態(tài)判斷標(biāo)準(zhǔn)信息是判斷監(jiān)控項狀態(tài)的標(biāo)準(zhǔn),監(jiān)控項狀態(tài)包括正常狀態(tài)和不正常狀態(tài),其中,不正常狀態(tài)可以包括輕微不正常狀態(tài)、中度不正常狀態(tài)和嚴(yán)重不正常狀態(tài),確定監(jiān)控項狀態(tài)指的是確定監(jiān)控項狀態(tài)是這幾種狀態(tài)中的哪一種,假設(shè)狀態(tài)判斷標(biāo)準(zhǔn)信息為超過監(jiān)控項閾值5%以內(nèi)為輕微不正常狀態(tài),超過監(jiān)控項閾值5%~10%為中度不正常狀態(tài),超過監(jiān)控項閾值10%~15%為嚴(yán)重不正常狀態(tài),那么根據(jù)狀態(tài)判斷標(biāo)準(zhǔn)信息、監(jiān)控項閾值信息和表明cpu占用情況的數(shù)據(jù)就能確定cpu狀態(tài)是否正常,如果不正常,確定是輕微不正常狀態(tài)、中度不正常狀態(tài)和嚴(yán)重不正常狀態(tài)中的哪一種。
需要說明的是,多線程中的部分線程也可能出現(xiàn)掛掉的情況,當(dāng)多線程中超過預(yù)設(shè)個數(shù)的線程出現(xiàn)掛掉的情況時,需要重新啟動一定數(shù)量的線程,以避免線程個數(shù)過少時,每個線程承擔(dān)的數(shù)據(jù)處理任務(wù)過重。
第二處理單元142,用于根據(jù)監(jiān)控項狀態(tài)和告警條件信息判斷是否進行告警。
需要說明的是,每個節(jié)點都和預(yù)設(shè)數(shù)據(jù)庫建立了連接,當(dāng)確定了監(jiān)控項狀態(tài)后,都會訪問預(yù)設(shè)數(shù)據(jù)庫從而將監(jiān)控項狀態(tài)存儲在預(yù)設(shè)數(shù)據(jù)庫中。存儲監(jiān)控項狀態(tài)于預(yù)設(shè)數(shù)據(jù)庫中,并根據(jù)監(jiān)控項狀態(tài)和告警條件信息判斷是否進行告警也是由每個線程自行完成的。
具體的,告警條件信息是監(jiān)控項狀態(tài)能夠構(gòu)成告警的狀態(tài)信息,例如,假設(shè)監(jiān)控項狀態(tài)包括正常狀態(tài)、輕微不正常狀態(tài)、中度不正常狀態(tài)和嚴(yán)重不正常狀態(tài),告警條件信息可以是監(jiān)控項達到中度不正常狀態(tài)或嚴(yán)重不正常狀態(tài)。
第三處理單元143,用于若進行告警,生成告警記錄添加至預(yù)設(shè)數(shù)據(jù)庫中,并且根據(jù)通知條件信息判斷是否滿足通知條件。
還需要說明的是,若進行告警,生成告警記錄添加至預(yù)設(shè)數(shù)據(jù)庫中,并且根據(jù)通知條件信息判斷是否滿足通知條件也是由每個線程自行完成的。
具體的,通知條件信息是發(fā)生告警后能夠向聯(lián)系人發(fā)送通知的條件信息,通知條件信息可以包括聯(lián)系人的通知處于開啟狀態(tài)、聯(lián)系人處于工作時間等。
通知單元144,用于若滿足通知條件,根據(jù)聯(lián)系人信息通知聯(lián)系人出現(xiàn)告警。
需要說明的是,若滿足通知條件,根據(jù)聯(lián)系人信息通知聯(lián)系人出現(xiàn)告警也是由每個線程自行完成的。
具體的,通知的具體形式可以是短信的方式,還可以是郵件的方式,本發(fā)明對此不作限制。
具體的,若通知條件為聯(lián)系人的通知處于開啟狀態(tài),那么當(dāng)滿足該通知條件時,則根據(jù)聯(lián)系人信息通知聯(lián)系人出現(xiàn)告警。
本發(fā)明實施例所提供的監(jiān)控數(shù)據(jù)處理裝置,還包括采用多線程模式,在每個線程中根據(jù)自身所屬節(jié)點中預(yù)先設(shè)置的監(jiān)控項閾值信息、狀態(tài)判斷標(biāo)準(zhǔn)信息和當(dāng)前線程處理的部分待處理監(jiān)控數(shù)據(jù)確定監(jiān)控項狀態(tài),并將監(jiān)控項狀態(tài)存儲于預(yù)設(shè)數(shù)據(jù)庫中的第一處理單元;根據(jù)監(jiān)控項狀態(tài)和告警條件信息判斷是否進行告警的第二處理單元;用于若進行告警,生成告警記錄添加至預(yù)設(shè)數(shù)據(jù)庫中,并且根據(jù)通知條件信息判斷是否滿足通知條件的第三處理單元;用于若滿足通知條件,根據(jù)聯(lián)系人信息通知聯(lián)系人出現(xiàn)告警的通知單元。這樣,采用了多線程模式對分布式節(jié)點的監(jiān)控數(shù)據(jù)進行處理,使得每個線程都獨立地處理所在節(jié)點的監(jiān)控數(shù)據(jù)的某一部分,從而更加提高了監(jiān)控數(shù)據(jù)的處理速度。
進一步,在圖3對應(yīng)的實施例的基礎(chǔ)上,本發(fā)明實施例提供又一種監(jiān)控數(shù)據(jù)處理裝置,如圖4所示,該裝置1還包括:
設(shè)置模塊16,用于設(shè)置預(yù)設(shè)規(guī)則。
其中,預(yù)設(shè)規(guī)則為預(yù)設(shè)隊列出現(xiàn)異常情況時如何處理預(yù)設(shè)隊列存儲的數(shù)據(jù)的規(guī)則。
需要說明的是,當(dāng)預(yù)設(shè)隊列出現(xiàn)異常時,預(yù)設(shè)隊列中存儲的數(shù)據(jù)無法反應(yīng)出監(jiān)控項的真實狀態(tài),因此需要這些數(shù)據(jù)進行一些處理。
具體的,預(yù)設(shè)規(guī)則包括當(dāng)預(yù)設(shè)隊列的長度m大于預(yù)設(shè)長度n時,丟棄排列在預(yù)設(shè)隊列隊頭的前s個數(shù)據(jù),其中,s>m-n。
獲取模塊13,具體用于根據(jù)預(yù)設(shè)規(guī)則從預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為待處理監(jiān)控數(shù)據(jù)。
具體的,根據(jù)預(yù)設(shè)規(guī)則從預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為待處理監(jiān)控數(shù)據(jù)包括:根據(jù)預(yù)設(shè)規(guī)則,當(dāng)預(yù)設(shè)隊列的長度m大于預(yù)設(shè)長度n時,丟棄排列在預(yù)設(shè)隊列隊頭的前s個數(shù)據(jù),再從預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為待處理監(jiān)控數(shù)據(jù)。
需要說明的是,當(dāng)預(yù)設(shè)隊列的長度過長時,之前存儲的某些數(shù)據(jù)就喪失了實效性,而由于隊列的特性,是從隊尾進隊、對頭出隊,因此需要丟棄排列在隊頭的一部分?jǐn)?shù)據(jù)。
本發(fā)明實施例提供的監(jiān)控數(shù)據(jù)處理裝置,還包括用于設(shè)置預(yù)設(shè)隊列出現(xiàn)異常情況時如何處理預(yù)設(shè)隊列存儲數(shù)據(jù)的預(yù)設(shè)規(guī)則的設(shè)置模塊,用于根據(jù)預(yù)設(shè)規(guī)則從預(yù)設(shè)隊列中獲取待處理監(jiān)控數(shù)據(jù)的獲取模塊。這樣,設(shè)置了預(yù)設(shè)規(guī)則,在預(yù)設(shè)隊列出現(xiàn)異常時,能夠?qū)︻A(yù)設(shè)隊列中存儲的數(shù)據(jù)進行處理,從而保證了預(yù)設(shè)隊列中存儲數(shù)據(jù)的有效性。
在實際應(yīng)用中,所述接收模塊11、存儲模塊12、獲取模塊13、處理模塊14、第一處理單元141、第二處理單元142、第三處理單元143、通知單元144、建立模塊15、和設(shè)置模塊16均可由位于監(jiān)控數(shù)據(jù)處理裝置cpu、微處理器(microprocessorunit,mpu)、數(shù)字信號處理器(digitalsignalprocessor,dsp)或現(xiàn)場可編程門陣列(fieldprogrammablegatearray,fpga)等實現(xiàn)。
本發(fā)明實施例提供一種監(jiān)控數(shù)據(jù)處理方法,如圖5所示,該方法包括:
步驟201、接收目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點中監(jiān)控器的監(jiān)控數(shù)據(jù)。
其中,所述目標(biāo)監(jiān)控數(shù)據(jù)處理裝置為設(shè)置在每個節(jié)點上的監(jiān)控處理裝置中的任意一個。
步驟202、將監(jiān)控數(shù)據(jù)存儲于目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點的預(yù)設(shè)隊列中。
步驟203、從預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為待處理監(jiān)控數(shù)據(jù)。
步驟204、對待處理監(jiān)控數(shù)據(jù)進行處理。
本發(fā)明實施例所提供的監(jiān)控數(shù)據(jù)處理方法,包括接收目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點中監(jiān)控器的監(jiān)控數(shù)據(jù);其中,所述目標(biāo)監(jiān)控數(shù)據(jù)處理裝置為設(shè)置在每個節(jié)點上的監(jiān)控處理裝置中的任意一個;將監(jiān)控數(shù)據(jù)存儲于目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點的預(yù)設(shè)隊列中;從預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為待處理監(jiān)控數(shù)據(jù);對待處理監(jiān)控數(shù)據(jù)進行處理。由于該方法是施展在每個節(jié)點上,使得每個節(jié)點都具備獲取監(jiān)控數(shù)據(jù)進而處理監(jiān)控數(shù)據(jù)的能力,省去了主控節(jié)點需要同步和分布式節(jié)點信息的操作,從而減少了開銷;同時,由于該方法使得每個節(jié)點都能獨立地對自身節(jié)點中的監(jiān)控數(shù)據(jù)進行處理,從而分散了監(jiān)控數(shù)據(jù)的處理壓力,提高了監(jiān)控數(shù)據(jù)的處理速度。
進一步,本發(fā)明實施例提供另一種監(jiān)控數(shù)據(jù)處理方法,如圖6所示,該方法包括:
步驟301、在目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點中采用生產(chǎn)者消費者模式建立預(yù)設(shè)隊列。
其中,所述目標(biāo)監(jiān)控數(shù)據(jù)處理裝置為設(shè)置在每個節(jié)點上的監(jiān)控處理裝置中的任意一個。
步驟302、接收目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點中監(jiān)控器的監(jiān)控數(shù)據(jù)。
步驟303、將監(jiān)控數(shù)據(jù)存儲于目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點的預(yù)設(shè)隊列中。
步驟304、從預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為待處理監(jiān)控數(shù)據(jù)。
步驟305、根據(jù)目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點中預(yù)先設(shè)置的監(jiān)控項閾值信息、狀態(tài)判斷標(biāo)準(zhǔn)信息、告警條件信息、通知條件信息和聯(lián)系人信息對待處理監(jiān)控數(shù)據(jù)進行處理。
進一步,本發(fā)明實施例提供另一種監(jiān)控數(shù)據(jù)處理方法,如圖7所示,該方法包括:
步驟401、在目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點中采用生產(chǎn)者消費者模式建立預(yù)設(shè)隊列。
其中,所述目標(biāo)監(jiān)控數(shù)據(jù)處理裝置為設(shè)置在每個節(jié)點上的監(jiān)控處理裝置中的任意一個。
步驟402、接收目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點中監(jiān)控器的監(jiān)控數(shù)據(jù)。
步驟403、將監(jiān)控數(shù)據(jù)存儲于目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點的預(yù)設(shè)隊列中。
步驟404、從預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為待處理監(jiān)控數(shù)據(jù)。
步驟405、采用多線程模式,在每個線程中根據(jù)目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點中預(yù)先設(shè)置的監(jiān)控項閾值信息、狀態(tài)判斷標(biāo)準(zhǔn)信息和當(dāng)前線程處理的部分待處理監(jiān)控數(shù)據(jù)確定監(jiān)控項狀態(tài),并將監(jiān)控項狀態(tài)存儲于所有節(jié)點共有的預(yù)設(shè)數(shù)據(jù)庫中。
步驟406、根據(jù)監(jiān)控項狀態(tài)和告警條件信息判斷是否進行告警。
步驟407、若進行告警,生成告警記錄添加至預(yù)設(shè)數(shù)據(jù)庫中,并且根據(jù)通知條件信息判斷是否滿足通知條件。
步驟408、若滿足通知條件,根據(jù)聯(lián)系人信息通知聯(lián)系人出現(xiàn)告警。
本發(fā)明實施例所提供的監(jiān)控數(shù)據(jù)處理方法,還包括采用多線程模式,在每個線程中根據(jù)目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點中預(yù)先設(shè)置的監(jiān)控項閾值信息、狀態(tài)判斷標(biāo)準(zhǔn)信息和當(dāng)前線程處理的部分待處理監(jiān)控數(shù)據(jù)確定監(jiān)控項狀態(tài);根據(jù)監(jiān)控項狀態(tài)和告警條件信息判斷是否進行告警;若進行告警,生成告警記錄添加至預(yù)設(shè)數(shù)據(jù)庫中,并且根據(jù)通知條件信息判斷是否滿足通知條件;若滿足通知條件,根據(jù)聯(lián)系人信息通知聯(lián)系人出現(xiàn)告警。這樣,采用了多線程模式對分布式節(jié)點的監(jiān)控數(shù)據(jù)進行處理,使得每個線程都獨立地處理所在節(jié)點的監(jiān)控數(shù)據(jù)的某一部分,從而更加提高了監(jiān)控數(shù)據(jù)的處理速度。
本發(fā)明實施例提供又一種監(jiān)控數(shù)據(jù)處理方法,如圖8所示,該方法包括:
步驟501、在目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點中采用生產(chǎn)者消費者模式建立預(yù)設(shè)隊列。
其中,所述目標(biāo)監(jiān)控數(shù)據(jù)處理裝置為設(shè)置在每個節(jié)點上的監(jiān)控處理裝置中的任意一個。
步驟502、接收目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點中監(jiān)控器的監(jiān)控數(shù)據(jù)。
步驟503、將監(jiān)控數(shù)據(jù)存儲于目標(biāo)監(jiān)控數(shù)據(jù)處理裝置所屬節(jié)點的預(yù)設(shè)隊列中。
步驟504、設(shè)置預(yù)設(shè)規(guī)則。
其中,預(yù)設(shè)規(guī)則為預(yù)設(shè)隊列出現(xiàn)異常情況時如何獲取預(yù)設(shè)隊列中所存儲的數(shù)據(jù)的規(guī)則。
具體的,預(yù)設(shè)規(guī)則包括:當(dāng)預(yù)設(shè)隊列的長度m大于預(yù)設(shè)長度n時,丟棄排列在預(yù)設(shè)隊列隊頭的前s個數(shù)據(jù),其中,s>m-n。
步驟505、根據(jù)預(yù)設(shè)規(guī)則從預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為待處理監(jiān)控數(shù)據(jù)。
具體的,根據(jù)預(yù)設(shè)規(guī)則從預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為待處理監(jiān)控數(shù)據(jù)包括:根據(jù)預(yù)設(shè)規(guī)則,當(dāng)預(yù)設(shè)隊列的長度m大于預(yù)設(shè)長度n時,丟棄排列在預(yù)設(shè)隊列隊頭的前s個數(shù)據(jù),再從預(yù)設(shè)隊列中獲取監(jiān)控數(shù)據(jù),作為待處理監(jiān)控數(shù)據(jù)。
步驟506、采用多線程模式,在每個線程中根據(jù)監(jiān)控項閾值信息、狀態(tài)判斷標(biāo)準(zhǔn)信息和當(dāng)前線程處理的部分待處理監(jiān)控數(shù)據(jù)確定監(jiān)控項狀態(tài),并將監(jiān)控項狀態(tài)存儲于所有節(jié)點共有的預(yù)設(shè)數(shù)據(jù)庫中。
步驟507、根據(jù)監(jiān)控項狀態(tài)和告警條件信息判斷是否進行告警。
步驟508、若進行告警,生成告警記錄添加至預(yù)設(shè)數(shù)據(jù)庫中,并且根據(jù)通知條件信息判斷是否滿足通知條件。
步驟509、若滿足通知條件,根據(jù)聯(lián)系人信息通知聯(lián)系人出現(xiàn)告警。
本發(fā)明實施例提供的監(jiān)控數(shù)據(jù)處理方法,還包括設(shè)置預(yù)設(shè)隊列出現(xiàn)異常情況時如何獲取預(yù)設(shè)隊列中所存儲的數(shù)據(jù)的預(yù)設(shè)規(guī)則;根據(jù)預(yù)設(shè)規(guī)則從預(yù)設(shè)隊列中獲取待處理監(jiān)控數(shù)據(jù)。這樣,設(shè)置了預(yù)設(shè)規(guī)則,在預(yù)設(shè)隊列出現(xiàn)異常時,能夠?qū)︻A(yù)設(shè)隊列中存儲的數(shù)據(jù)進行處理,從而保證了預(yù)設(shè)隊列中存儲數(shù)據(jù)的有效性。
本發(fā)明實施例還提供一種監(jiān)控系統(tǒng)的結(jié)構(gòu)示意圖,如圖9所示,該系統(tǒng)包括監(jiān)控器、待監(jiān)控設(shè)備、監(jiān)控數(shù)據(jù)處理裝置;其中,待監(jiān)控設(shè)備包括服務(wù)器、中間件和網(wǎng)絡(luò)設(shè)備,監(jiān)控數(shù)據(jù)處理裝置包括監(jiān)控數(shù)據(jù)采集模塊、生產(chǎn)者模塊、消息隊列模塊、消費者消費模塊1、消費者消費模塊2、數(shù)據(jù)處理模塊1和數(shù)據(jù)處理模塊2。
其中,監(jiān)控器,用于對待監(jiān)控設(shè)備進行監(jiān)控以獲得監(jiān)控數(shù)據(jù);監(jiān)控數(shù)據(jù)采集模塊,用于采集監(jiān)控器獲得的監(jiān)控數(shù)據(jù);生產(chǎn)者模塊,用于整合源源不斷的監(jiān)控數(shù)據(jù);消息隊列模塊,用于以隊列的形式存儲生產(chǎn)者模塊中的監(jiān)控數(shù)據(jù);消費者消費模塊1和消費者消費模塊2,用于從消息隊列模塊中獲取待處理監(jiān)控數(shù)據(jù);數(shù)據(jù)處理模塊1,用于處理消費者消費模塊1獲取的待處理監(jiān)控數(shù)據(jù),數(shù)據(jù)處理模塊2,用于處理消費者消費模塊2獲取的待處理監(jiān)控數(shù)據(jù)。
該系統(tǒng)的工作方法包括:
配置監(jiān)控器的監(jiān)控信息,其中監(jiān)控信息包括待監(jiān)控設(shè)備信息和監(jiān)控項信息。
監(jiān)控器監(jiān)控待監(jiān)控設(shè)備而獲取監(jiān)控數(shù)據(jù)。
監(jiān)控數(shù)據(jù)采集模塊采用多線程模式并發(fā)采集監(jiān)控器獲取的監(jiān)控數(shù)據(jù)。
生產(chǎn)者模塊整合監(jiān)控數(shù)據(jù)采集模塊采集到的監(jiān)控數(shù)據(jù)。
消息隊列模塊將整合后的監(jiān)控數(shù)據(jù)存儲于以生產(chǎn)者消費者模式建立的消息隊列中。
消費者消費模塊1從消息隊列模塊中獲取一部分的監(jiān)控數(shù)據(jù),消費者消費模塊2從消息隊列模塊中獲取另一部分的監(jiān)控數(shù)據(jù)
數(shù)據(jù)處理模塊1處理消費者消費模塊1獲取的監(jiān)控數(shù)據(jù),數(shù)據(jù)處理模塊2處理消費者消費模塊2獲取的監(jiān)控數(shù)據(jù)。
數(shù)據(jù)處理模塊1處理消費者消費模塊1獲取的監(jiān)控數(shù)據(jù),與數(shù)據(jù)處理模塊2處理消費者消費模塊2獲取的監(jiān)控數(shù)據(jù)的過程是一樣的,以數(shù)據(jù)處理模塊1處理消費者消費模塊1獲取的監(jiān)控數(shù)據(jù)過程為例進行說明:
數(shù)據(jù)處理模塊1根據(jù)監(jiān)控數(shù)據(jù)確定監(jiān)控項狀態(tài),并將監(jiān)控項狀態(tài)存儲于數(shù)據(jù)庫中。
數(shù)據(jù)處理模塊1根據(jù)監(jiān)控項狀態(tài)和告警條件判斷是否進行告警。
若確定進行告警,數(shù)據(jù)處理模塊1記錄告警記錄于數(shù)據(jù)庫中,并根據(jù)通知條件判斷是否進行通知。
若確定進行通知,數(shù)據(jù)處理模塊1根據(jù)聯(lián)系人信息通知聯(lián)系人出現(xiàn)告警。
需要說明的是,數(shù)據(jù)處理模塊在處理完消費者消費模塊中獲取的監(jiān)控數(shù)據(jù)后,消費者消費模塊才會再從消息隊列模塊中獲取監(jiān)控數(shù)據(jù)。
還需要說明的是,消費者消費模塊和數(shù)據(jù)處理模塊的個數(shù)是相同的,他們的個數(shù)可以是如本實施例中的兩個,也可以是多個,具體是根據(jù)所要處理的監(jiān)控數(shù)據(jù)量而定的。
雖然本發(fā)明所揭露的實施方式如上,但所述的內(nèi)容僅為便于理解本發(fā)明而采用的實施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實施的形式及細節(jié)上進行任何的修改與變化,但本發(fā)明的專利保護范圍,仍須以所附的權(quán)利要求書所界定的范圍為準(zhǔn)。