一種資源監(jiān)控方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種資源監(jiān)控方法及系統(tǒng),包括收集云計算平臺中各個節(jié)點產(chǎn)生的日志數(shù)據(jù);匹配收集到的日志數(shù)據(jù)和預(yù)先設(shè)置的異常事件策略,如果匹配成功,則產(chǎn)生異常事件;監(jiān)聽異常事件并進行告警。本發(fā)明方法利用了被監(jiān)控系統(tǒng)中已有的日志框架,不需要在系統(tǒng)中植入新的執(zhí)行代碼,因此,不會增加被監(jiān)控應(yīng)用系統(tǒng)的開發(fā)工作量,降低了監(jiān)控的復(fù)雜度,且減小了對系統(tǒng)的運行性能的影響,也避免了監(jiān)控過程中的輪詢。同時,由于云計算平臺及大型應(yīng)用系統(tǒng)的日志數(shù)據(jù)量巨大,因此,本發(fā)明方法具有充分的數(shù)據(jù)來源,并且由于日志數(shù)據(jù)包含的信息豐富,使得本發(fā)明方法適用于包括云計算平臺在內(nèi)的各種大型應(yīng)用系統(tǒng)。
【專利說明】一種資源監(jiān)控方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及云計算技術(shù),尤指一種基于云計算平臺的資源監(jiān)控方法及系統(tǒng)。
【背景技術(shù)】
[0002] 計算機運行時,需要對資源的運行狀況進行實時監(jiān)控,比如CPU使用率、內(nèi)存使用 率等。現(xiàn)有監(jiān)控中,需要在系統(tǒng)中植入代碼,這樣必然影響系統(tǒng)的性能。特別是在云計算平 臺中,涉及的應(yīng)用、資源眾多,部署環(huán)境要求高,往往涉及集群,系統(tǒng)運行情況復(fù)雜,如果不 能對云計算平臺進行準(zhǔn)確、有效的監(jiān)控,則難以對云計算平臺的實際運行情況進行掌控及 調(diào)度。
[0003] 監(jiān)控在云計算系統(tǒng)中扮演著重要的角色。通過監(jiān)控能夠及時發(fā)現(xiàn)云計算平臺在運 營過程中的資源使用情況,從而及時發(fā)現(xiàn)異常情況。
[0004] 云計算平臺監(jiān)控的一般原理是,在各個分散的云計算節(jié)點上運行守護進程,該守 護進程用于收集本云計算節(jié)點上的監(jiān)控信息并發(fā)送到匯聚節(jié)點,匯聚節(jié)點對收集到的監(jiān)控 信息進行分析與存儲并將分析結(jié)果以可視化或告警等方式通知給用戶。對于云計算平臺監(jiān) 控系統(tǒng)來說,關(guān)鍵是各個云計算節(jié)點的守護進程與收集的監(jiān)控信息的處理方式。
[0005] 當(dāng)前,比較流行的監(jiān)控系統(tǒng)有 Ganglia,InteMon,ClusterProbe,HP OpenView,IBM Tivoli 等。其中,Ganglia,InteMon,ClusterProbe 是開源軟件,HP OpenView,IBM Tivoli 是商用軟件。
[0006] 其中,ClusterProbe是現(xiàn)有常用的監(jiān)控系統(tǒng)。ClusterProbe是由香港大學(xué)設(shè)計與 開發(fā)的一款開放環(huán)境的集群監(jiān)控工具。ClusterProbe的設(shè)計初衷在于開發(fā)高靈活性與擴展 性的大規(guī)模集群監(jiān)控系統(tǒng)。ClusterProbe主要包括監(jiān)控服務(wù)器、監(jiān)控代理節(jié)點和節(jié)點代理 三部分,即代理(agent) +服務(wù)器(server)的方式。其中,監(jiān)控服務(wù)器,用于接收用戶的請 求以及將用戶感興趣的監(jiān)控結(jié)果反饋給用戶,監(jiān)控服務(wù)器通過交互適配器和網(wǎng)絡(luò)上其它節(jié) 點交互信息,該適配器能夠支持多種網(wǎng)絡(luò)交互協(xié)議;監(jiān)控代理節(jié)點用于管理該節(jié)點及其下 屬所有子節(jié)點,這些子節(jié)點包括不同類型的資源類型,并組成監(jiān)控域;節(jié)點代理,以守護進 程的方式運行在云平臺中的每個節(jié)點上,用于從監(jiān)控代理節(jié)點接收命令或者根據(jù)自身的設(shè) 置進行本地監(jiān)控信息的收集,節(jié)點代理與監(jiān)控代理節(jié)點通過Java遠程方法調(diào)用(RMI)進行 通信。
[0007] ClusterProbe的最大優(yōu)點就是提出了開放式節(jié)點守護進程的概念,并且通過Java RMI實現(xiàn)功能的增減。這樣,使得各個節(jié)點上的守護進程更加輕量級,也降低了監(jiān)控系統(tǒng)對 集群本身造成的壓力。但是,ClusterProbe也存在一些不足之處,比如:系統(tǒng)使用Java RMI 來實現(xiàn)遠程方法調(diào)用,實現(xiàn)較復(fù)雜,當(dāng)監(jiān)控代理節(jié)點過多時,容易造成系統(tǒng)結(jié)構(gòu)復(fù)雜,存在 出現(xiàn)問題不易排查的缺陷。
[0008] 根據(jù)上面的分析可知,現(xiàn)有監(jiān)控系統(tǒng)通用的架構(gòu)是代理+服務(wù)器的方式。其中, Agent用于收集監(jiān)控資源的狀態(tài)信息,server利用這些狀態(tài)信息。Agent與server之間采 用,在拉模式中,發(fā)起者是server,它采用輪詢的方式從agent "拉"信息。拉模式實現(xiàn)相對 簡單,但會消耗較多的資源,實時性也較差。因此,拉模式適用于周期性詢問的場景,但是, 如果輪詢周期較長,會降低資源的消耗,但可能丟失狀態(tài)信息;如果輪詢周期較短,則對系 統(tǒng)性能影響較大。
[0009] 現(xiàn)有監(jiān)控系統(tǒng)往往需要安裝agent來收集數(shù)據(jù),并將數(shù)據(jù)傳輸?shù)絪erver上,以實 現(xiàn)監(jiān)控。這種監(jiān)控方式會降低被監(jiān)控系統(tǒng)性能,且監(jiān)控數(shù)據(jù)容量越大,效率越低;同時,由于 各個被監(jiān)控系統(tǒng)使用的數(shù)據(jù)格式不統(tǒng)一,導(dǎo)致agent植入代碼困難,而且由于需要創(chuàng)建監(jiān) 控節(jié)點,增大了系統(tǒng)的使用復(fù)雜度。
【發(fā)明內(nèi)容】
[0010] 為了解決上述技術(shù)問題,本發(fā)明提供了一種資源監(jiān)控方法及系統(tǒng),無需在系統(tǒng)中 植入代碼,能夠降低監(jiān)控的復(fù)雜度,且減少對系統(tǒng)運行性能的影響。
[0011] 為了達到本發(fā)明目的,本發(fā)明提供了一種資源監(jiān)控方法,包括:收集云計算平臺中 各個節(jié)點產(chǎn)生的日志數(shù)據(jù);
[0012] 匹配收集到的日志數(shù)據(jù)和預(yù)先設(shè)置的異常事件策略,如果匹配成功,則產(chǎn)生異常 事件;
[0013] 監(jiān)聽異常事件并進行告警。
[0014] 所述收集云計算平臺中各個節(jié)點產(chǎn)生的日志數(shù)據(jù)包括:將日志系統(tǒng)產(chǎn)生的日志數(shù) 據(jù)推送至監(jiān)控容器。
[0015] 所述匹配收集到的日志數(shù)據(jù)和預(yù)先設(shè)置的異常事件策略庫之前,該方法還包括: 對所述對收集到的日志數(shù)據(jù)進行過濾。
[0016] 所述匹配采用Java中的Java事件處理機制實現(xiàn)。
[0017] 利用所述Java中的事件處理機制中包括的監(jiān)聽功能實現(xiàn)所述監(jiān)聽異常事件并進 行告警。
[0018] 本發(fā)明還提供了一種資源監(jiān)控系統(tǒng),至少包括日志適配器、日志數(shù)據(jù)生成器、一個 或一個以上監(jiān)控容器,以及事件監(jiān)聽器;其中,
[0019] 日志適配器,用于存儲日志數(shù)據(jù)與推送目標(biāo)之間的對應(yīng)關(guān)系;
[0020] 日志數(shù)據(jù)生成器,用于根據(jù)日志適配器的對應(yīng)關(guān)系,將來自云計算平臺各個節(jié)點 的應(yīng)用系統(tǒng)產(chǎn)生的日志數(shù)據(jù)推送到相應(yīng)的監(jiān)控容器;
[0021] 監(jiān)控容器,用于匹配收集到的日志數(shù)據(jù)和預(yù)先設(shè)置的異常事件策略,如果匹配成 功,則產(chǎn)生異常事件;
[0022] 事件監(jiān)聽器,用于按照預(yù)先設(shè)置的事件監(jiān)聽類型,監(jiān)聽異常事件并根據(jù)監(jiān)聽的結(jié) 果進行告警。
[0023] 所述監(jiān)控容器,還用于按照預(yù)先設(shè)置的過濾策略過濾所述日志數(shù)據(jù)生成器推送的 日志數(shù)據(jù)。
[0024] 所述事件監(jiān)聽器為兩個或兩個以上,每個事件監(jiān)聽器用于監(jiān)聽一種具體類型的事 件。
[0025] 該系統(tǒng)還包括:應(yīng)用日志配置器,用于設(shè)置日志配置文件,開啟或關(guān)閉對資源的監(jiān) 控。
[0026] 與現(xiàn)有技術(shù)相比,本發(fā)明包括收集云計算平臺中各個節(jié)點產(chǎn)生的日志數(shù)據(jù);匹配 收集到的日志數(shù)據(jù)和預(yù)先設(shè)置的異常事件策略,如果匹配成功,則產(chǎn)生異常事件;監(jiān)聽異常 事件并進行告警。本發(fā)明方法利用了被監(jiān)控系統(tǒng)中已有的日志框架,不需要在系統(tǒng)中植入 新的執(zhí)行代碼,因此,不會增加被監(jiān)控應(yīng)用系統(tǒng)的開發(fā)工作量,降低了監(jiān)控的復(fù)雜度,且減 小了對系統(tǒng)的運行性能的影響,也避免了監(jiān)控過程中的輪詢。同時,由于云計算平臺及大型 應(yīng)用系統(tǒng)的日志數(shù)據(jù)量巨大,因此,本發(fā)明方法具有充分的數(shù)據(jù)來源,并且由于日志數(shù)據(jù)包 含的信息豐富,使得本發(fā)明方法適用于包括云計算平臺在內(nèi)的各種大型應(yīng)用系統(tǒng)。
[0027] 本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變 得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權(quán)利 要求書以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
【專利附圖】
【附圖說明】
[0028] 附圖用來提供對本發(fā)明技術(shù)方案的進一步理解,并且構(gòu)成說明書的一部分,與本 申請的實施例一起用于解釋本發(fā)明的技術(shù)方案,并不構(gòu)成對本發(fā)明技術(shù)方案的限制。
[0029] 圖1為本發(fā)明資源監(jiān)控方法的流程圖;
[0030] 圖2為本發(fā)明資源監(jiān)控系統(tǒng)的組成結(jié)構(gòu)示意圖。
【具體實施方式】
[0031] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下文中將結(jié)合附圖對本發(fā)明 的實施例進行詳細說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中 的特征可以相互任意組合。
[0032] 在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中 執(zhí)行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順 序執(zhí)行所示出或描述的步驟。
[0033] 圖1為本發(fā)明資源監(jiān)控方法的流程圖,如圖1所示,包括以下步驟:
[0034] 步驟100 :收集云計算平臺中各個節(jié)點產(chǎn)生的日志數(shù)據(jù)。
[0035] 本步驟中,首先,日志數(shù)據(jù)的產(chǎn)生采用現(xiàn)有的日志系統(tǒng)完成;之后再將現(xiàn)有日志系 統(tǒng)輸出的日志推送至監(jiān)控容器。
[0036] 本步驟中,采用推數(shù)據(jù)的方式,利用被監(jiān)控系統(tǒng)中已有的日志框架,不需要在系統(tǒng) 中植入新的執(zhí)行代碼,通過增加日志適配器,基于現(xiàn)有的日志系統(tǒng)本身已有的日志輸出功 能,將數(shù)據(jù)推送到監(jiān)控容器。因此,不會增加被監(jiān)控應(yīng)用系統(tǒng)的開發(fā)工作量,降低了監(jiān)控的 復(fù)雜度,且減小了對系統(tǒng)的運行性能的影響。也避免了監(jiān)控過程中的輪詢。同時,由于云計 算平臺及大型應(yīng)用系統(tǒng)的日志數(shù)據(jù)量巨大,因此,使得對系統(tǒng)資源的監(jiān)控具有了充分的數(shù) 據(jù)來源。
[0037] 步驟101 :匹配收集到的日志數(shù)據(jù)和預(yù)先設(shè)置的異常事件策略,如果匹配成功,則 廣生異常事件。
[0038] 本步驟中,異常事件策略可以根據(jù)實際需要設(shè)置,比如:某臺服務(wù)器在一段時間內(nèi) 曰志數(shù)為〇,認為是一個異常事件等等。本發(fā)明并不對異常事件策略進行限定,其是本領(lǐng)域 技術(shù)人員根據(jù)實際需要而設(shè)置的,也不用于限定本發(fā)明的保護范圍。
[0039] 本步驟之前還包括:對收集到的日志數(shù)據(jù)進行過濾,比如可以過濾某個指定的被 監(jiān)控系統(tǒng)中已有的日志框架的模塊產(chǎn)生的日志數(shù)據(jù),比如,當(dāng)該模塊產(chǎn)生的日志數(shù)據(jù)量特 別大時,可能是存在大量的無用數(shù)據(jù),可以通過過濾掉這個模塊的日志數(shù)據(jù),來進一步提高 系統(tǒng)的性能。
[0040] 本步驟中,如何匹配可以采用Java中的Java事件處理機制,這樣保證了監(jiān)控的實 時性,其中Java事件處理機制屬于本領(lǐng)域技術(shù)人員的慣用技術(shù)手段,這里不再贅述。
[0041] 步驟102 :監(jiān)聽異常事件并進行告警。本步驟具體包括:監(jiān)控到異常情況后發(fā)送告 警通知,比如發(fā)送郵件通知等,這里是利用在Java中的事件處理機制中包括的監(jiān)聽功能實 現(xiàn)對異常事件的監(jiān)聽,具體實現(xiàn)并不在本發(fā)明的保護范圍內(nèi),這里不再贅述。
[0042] 本發(fā)明方法利用了被監(jiān)控系統(tǒng)中已有的日志框架,不需要在系統(tǒng)中植入新的執(zhí)行 代碼,因此,不會增加被監(jiān)控應(yīng)用系統(tǒng)的開發(fā)工作量,降低了監(jiān)控的復(fù)雜度,且減小了對系 統(tǒng)的運行性能的影響,也避免了監(jiān)控過程中的輪詢。同時,由于云計算平臺及大型應(yīng)用系統(tǒng) 的日志數(shù)據(jù)量巨大,因此,本發(fā)明方法具有充分的數(shù)據(jù)來源,并且由于日志數(shù)據(jù)包含的信息 豐富,使得本發(fā)明方法適用于包括云計算平臺在內(nèi)的各種大型應(yīng)用系統(tǒng)。
[0043] 進一步地,本發(fā)明方法中,通過日志配置文件,實現(xiàn)了隨時開啟或關(guān)閉對資源的監(jiān) 控,方便了資源監(jiān)控的方便使用。比如在日志配置文件中,設(shè)置monitor = 1,表示開啟資源 監(jiān)控;monitor = 0,則表示關(guān)閉資源監(jiān)控等。
[0044] 圖2為本發(fā)明資源監(jiān)控系統(tǒng)的組成結(jié)構(gòu)示意圖,如圖2所示,至少包括日志適配 器、日志數(shù)據(jù)生成器、一個或一個以上監(jiān)控容器,以及事件監(jiān)聽器;其中,
[0045] 日志適配器,用于存儲日志數(shù)據(jù)與推送目標(biāo)之間的對應(yīng)關(guān)系,即表明了將日志數(shù) 據(jù)輸出到哪個輸出介質(zhì)即日志數(shù)據(jù)推送目標(biāo)。
[0046]日志數(shù)據(jù)生成器,用于根據(jù)日志適配器的對應(yīng)關(guān)系,將來自云計算平臺各個節(jié)點 的應(yīng)用系統(tǒng)產(chǎn)生的日志數(shù)據(jù)推送到相應(yīng)的監(jiān)控容器。
[0047] 監(jiān)控容器,用于匹配收集到的日志數(shù)據(jù)和預(yù)先設(shè)置的異常事件策略,如果匹配成 功,則產(chǎn)生異常事件;
[0048] 監(jiān)控容器,還用于按照預(yù)先設(shè)置的過濾策略過濾日志數(shù)據(jù)生成器推送的日志數(shù) 據(jù)。
[0049] 事件監(jiān)聽器,用于按照預(yù)先設(shè)置的事件監(jiān)聽類型,如事件監(jiān)聽器的注冊和注銷等, 監(jiān)聽異常事件并根據(jù)監(jiān)聽的結(jié)果進行告警。如果系統(tǒng)中存在多個事件監(jiān)聽器,每個事件監(jiān) 聽器負責(zé)監(jiān)聽一種具體類型的事件。
[0050] 本發(fā)明系統(tǒng)還包括:應(yīng)用日志配置器,用于設(shè)置日志配置文件,開啟或關(guān)閉對資源 的監(jiān)控,比如在日志配置文件中,設(shè)置monitor = 1,表示啟動日志數(shù)據(jù)生成器;monitor = 0,則表示關(guān)閉日志數(shù)據(jù)生成器。
[0051] 雖然本發(fā)明所揭露的實施方式如上,但所述的內(nèi)容僅為便于理解本發(fā)明而采用的 實施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭 露的精神和范圍的前提下,可以在實施的形式及細節(jié)上進行任何的修改與變化,但本發(fā)明 的專利保護范圍,仍須以所附的權(quán)利要求書所界定的范圍為準(zhǔn)。
【權(quán)利要求】
1. 一種資源監(jiān)控方法,其特征在于,包括:收集云計算平臺中各個節(jié)點產(chǎn)生的日志數(shù) 據(jù); 匹配收集到的日志數(shù)據(jù)和預(yù)先設(shè)置的異常事件策略,如果匹配成功,則產(chǎn)生異常事 件; 監(jiān)聽異常事件并進行告警。
2. 根據(jù)權(quán)利要求1所述的資源監(jiān)控方法,其特征在于,所述收集云計算平臺中各個節(jié) 點產(chǎn)生的日志數(shù)據(jù)包括:將日志系統(tǒng)產(chǎn)生的日志數(shù)據(jù)推送至監(jiān)控容器。
3. 根據(jù)權(quán)利要求2所述的資源監(jiān)控方法,其特征在于,所述匹配收集到的日志數(shù)據(jù)和 預(yù)先設(shè)置的異常事件策略庫之前,該方法還包括:對所述對收集到的日志數(shù)據(jù)進行過濾。
4. 根據(jù)權(quán)利要求1、2或3所述的資源監(jiān)控方法,其特征在于,所述匹配采用Java中的 Java事件處理機制實現(xiàn)。
5. 根據(jù)權(quán)利要求4所述的資源監(jiān)控方法,其特征在于,利用所述Java中的事件處理機 制中包括的監(jiān)聽功能實現(xiàn)所述監(jiān)聽異常事件并進行告警。
6. -種資源監(jiān)控系統(tǒng),其特征在于,至少包括日志適配器、日志數(shù)據(jù)生成器、一個或一 個以上監(jiān)控容器,以及事件監(jiān)聽器;其中, 日志適配器,用于存儲日志數(shù)據(jù)與推送目標(biāo)之間的對應(yīng)關(guān)系; 日志數(shù)據(jù)生成器,用于根據(jù)日志適配器的對應(yīng)關(guān)系,將來自云計算平臺各個節(jié)點的應(yīng) 用系統(tǒng)產(chǎn)生的日志數(shù)據(jù)推送到相應(yīng)的監(jiān)控容器; 監(jiān)控容器,用于匹配收集到的日志數(shù)據(jù)和預(yù)先設(shè)置的異常事件策略,如果匹配成功,則 廣生異常事件; 事件監(jiān)聽器,用于按照預(yù)先設(shè)置的事件監(jiān)聽類型,監(jiān)聽異常事件并根據(jù)監(jiān)聽的結(jié)果進 行告警。
7. 根據(jù)權(quán)利要求6所述的資源監(jiān)控系統(tǒng),其特征在于,所述監(jiān)控容器,還用于按照預(yù)先 設(shè)置的過濾策略過濾所述日志數(shù)據(jù)生成器推送的日志數(shù)據(jù)。
8. 根據(jù)權(quán)利要求6或7所述的資源監(jiān)控系統(tǒng),其特征在于,所述事件監(jiān)聽器為兩個或兩 個以上,每個事件監(jiān)聽器用于監(jiān)聽一種具體類型的事件。
9. 根據(jù)權(quán)利要求8所述的資源監(jiān)控系統(tǒng),其特征在于,該系統(tǒng)還包括:應(yīng)用日志配置 器,用于設(shè)置日志配置文件,開啟或關(guān)閉對資源的監(jiān)控。
【文檔編號】H04L12/24GK104092575SQ201410367633
【公開日】2014年10月8日 申請日期:2014年7月29日 優(yōu)先權(quán)日:2014年7月29日
【發(fā)明者】王少鋒, 張云勇, 劉明輝 申請人:中國聯(lián)合網(wǎng)絡(luò)通信集團有限公司