本發(fā)明涉及通信領(lǐng)域的管理技術(shù),尤其涉及一種基礎(chǔ)設(shè)施云中的實(shí)時(shí)告警處理方法及系統(tǒng)。
背景技術(shù):
基礎(chǔ)設(shè)施云(iaas)為用戶提供了虛擬的計(jì)算資源、存儲資源和網(wǎng)絡(luò)資源,為了更高效、合理的分配和使用這些資源,管理員需要對這些資源的狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控,比如,通過部署通用的監(jiān)控軟件可以實(shí)現(xiàn)對基礎(chǔ)設(shè)施云中的資源進(jìn)行監(jiān)控,這種方案通常操作方式為:有一個(gè)中心的數(shù)據(jù)存儲節(jié)點(diǎn)和一系列數(shù)據(jù)采集代理節(jié)點(diǎn),采集代理周期性的收集性能數(shù)據(jù),然后將收集到數(shù)據(jù)通過tcp/ip網(wǎng)絡(luò)發(fā)送給中心節(jié)點(diǎn),中心節(jié)點(diǎn)收到數(shù)據(jù)后,將數(shù)據(jù)寫入文件系統(tǒng)或數(shù)據(jù)庫中進(jìn)行持久化;反復(fù)查詢文件系統(tǒng)或數(shù)據(jù)庫,與告警規(guī)則進(jìn)行匹配,若發(fā)現(xiàn)匹配項(xiàng),則觸發(fā)告警。
但是,上述監(jiān)控方案中,將虛擬機(jī)的監(jiān)控和物理機(jī)的監(jiān)控作為同一類資源進(jìn)行監(jiān)控,如此一來,必然會失去虛擬機(jī)的許多特有屬性;此外,通過tcp/ip協(xié)議發(fā)送監(jiān)控?cái)?shù)據(jù)受限于網(wǎng)絡(luò)架構(gòu),還使得網(wǎng)絡(luò)的安全性下降;另外,監(jiān)控方案通?;跉v史數(shù)據(jù)分析與查詢,這種告警方式需要反復(fù)查詢文件系統(tǒng)或數(shù)據(jù)庫,易出現(xiàn)數(shù)據(jù)庫查詢瓶頸;此外,數(shù)據(jù)查詢和分析都需要消耗時(shí)間,造成告警的延時(shí)較大。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種基礎(chǔ)設(shè)施云中的實(shí)時(shí)告警處理方法及系統(tǒng),能至少解決現(xiàn)有技術(shù)中存在的上述問題。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
本發(fā)明實(shí)施例提供了一種基礎(chǔ)設(shè)施云中的實(shí)時(shí)告警處理方法,包括:
設(shè)置告警規(guī)則;
針對至少三個(gè)資源類型,采集所述至少三個(gè)資源類型對應(yīng)的監(jiān)控?cái)?shù)據(jù);
基于設(shè)置的所述告警規(guī)則,針對所述監(jiān)控?cái)?shù)據(jù)進(jìn)行實(shí)時(shí)計(jì)算分析得到分析結(jié)果;
基于所述分析結(jié)果進(jìn)行告警處理。
本發(fā)明實(shí)施例提供了一種實(shí)時(shí)告警處理系統(tǒng),所述系統(tǒng)包括:
告警控制器,用于設(shè)置告警規(guī)則;
中心收集器,用于針對至少三個(gè)資源類型,采集所述至少三個(gè)資源類型對應(yīng)的監(jiān)控?cái)?shù)據(jù);
實(shí)時(shí)計(jì)算控制器,用于基于所述告警規(guī)則,針對所述監(jiān)控?cái)?shù)據(jù)進(jìn)行實(shí)時(shí)計(jì)算分析得到分析結(jié)果;基于所述分析結(jié)果進(jìn)行告警處理。
本發(fā)明所提供的基礎(chǔ)設(shè)施云中的實(shí)時(shí)告警處理方法及系統(tǒng),能夠針對至少云計(jì)算數(shù)據(jù)中心中三個(gè)資源類型獲取到至少三種類型的監(jiān)控?cái)?shù)據(jù),如此以區(qū)分并覆蓋云計(jì)算數(shù)據(jù)中心中各種資源類型,具備更好的擴(kuò)展性和安全性;進(jìn)一步地,針對獲取到的監(jiān)控?cái)?shù)據(jù)進(jìn)行實(shí)時(shí)計(jì)算分析,從而能夠通過減少先保存獲取到的監(jiān)控?cái)?shù)據(jù),再針對獲取到的監(jiān)控?cái)?shù)據(jù)進(jìn)行分析所需要的時(shí)間,保證了對監(jiān)控?cái)?shù)據(jù)進(jìn)行實(shí)時(shí)、并且高效的處理,如此達(dá)到降低系統(tǒng)負(fù)載,提高告警實(shí)時(shí)以及高效性的目的。
附圖說明
圖1為本發(fā)明實(shí)施例基礎(chǔ)設(shè)施云中的實(shí)時(shí)告警處理方法流程示意圖;
圖2為本發(fā)明實(shí)施例各個(gè)資源類型之間的類圖;
圖3為本發(fā)明實(shí)施例基礎(chǔ)設(shè)施云中的實(shí)時(shí)告警處理系統(tǒng)組成結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例系統(tǒng)框架示意圖一;
圖5為本發(fā)明實(shí)施例系統(tǒng)框架示意圖二。
具體實(shí)施方式
下面結(jié)合附圖及具體實(shí)施例對本發(fā)明再作進(jìn)一步詳細(xì)的說明。
實(shí)施例一、
本發(fā)明實(shí)施例提供了一種基礎(chǔ)設(shè)施云中的實(shí)時(shí)告警處理方法,如圖1所示,包括:
步驟101:設(shè)置告警規(guī)則;
步驟102:針對至少三個(gè)資源類型,采集所述至少三個(gè)資源類型對應(yīng)的監(jiān)控?cái)?shù)據(jù);
步驟103:基于設(shè)置的所述告警規(guī)則,針對所述監(jiān)控?cái)?shù)據(jù)進(jìn)行實(shí)時(shí)計(jì)算分析得到分析結(jié)果;
步驟104:基于所述分析結(jié)果進(jìn)行告警處理。
這里,本實(shí)施例提出的基礎(chǔ)設(shè)施云中的實(shí)時(shí)告警處理方法,能夠?qū)ΡO(jiān)控?cái)?shù)據(jù)進(jìn)行實(shí)時(shí)處理。通過告警控制器,將告警規(guī)則輸入到流計(jì)算引擎中,流計(jì)算引擎對不斷接受監(jiān)控?cái)?shù)據(jù)進(jìn)行計(jì)算,并將結(jié)果與告警規(guī)則進(jìn)行匹配,若所述監(jiān)控?cái)?shù)據(jù)滿足告警規(guī)則中的告警條件,則立即基于用戶自定義的告警規(guī)則發(fā)出告警動作。通過采用這種方式,能夠不但避免查詢數(shù)據(jù)庫產(chǎn)生的延遲和瓶頸,也能夠提高告警的實(shí)時(shí)性。
本實(shí)施例提出的至少三個(gè)資源類型,至少包括有:虛擬機(jī)采集代理、主動推送代理和主動查詢代理這三種資源類型。具體為以下這三種:
第一種、從虛擬機(jī)側(cè)實(shí)時(shí)采集得到監(jiān)控?cái)?shù)據(jù);
第二種、接收到可編程的網(wǎng)絡(luò)設(shè)備實(shí)時(shí)發(fā)來的監(jiān)控?cái)?shù)據(jù);
第三種、從不可編程的網(wǎng)絡(luò)設(shè)備側(cè)實(shí)時(shí)采集得到監(jiān)控?cái)?shù)據(jù)。
各個(gè)資源類型之間的類圖可以參見圖2。resource_base代表一種被監(jiān)控的資源,例如物理機(jī)、虛擬機(jī)、交換機(jī);resource_base中有一個(gè)meter_list屬性,用于關(guān)聯(lián)一組監(jiān)控項(xiàng),例如物理機(jī)的cpu利用率、內(nèi)存利用率等。一個(gè)resource_base對象又關(guān)聯(lián)了一個(gè)collector_agent(采集代理),這個(gè)采集代 理就負(fù)責(zé)收集這種類型的資源的監(jiān)控?cái)?shù)據(jù)。具體的說明如下:
虛擬機(jī)采集代理:適用于采集基礎(chǔ)設(shè)施云中的一類特殊資源——虛擬機(jī),該資源擁有虛擬機(jī)唯一識別id、從屬用戶、創(chuàng)建時(shí)間等額外屬性。虛擬機(jī)采集代理通過虛擬機(jī)串口與虛擬機(jī)所在物理機(jī)上的虛擬機(jī)采集外部代理(vm-agentd)進(jìn)行通信,外部代理收到監(jiān)控?cái)?shù)據(jù)后,再將數(shù)據(jù)發(fā)送給中心收集器。通過實(shí)現(xiàn)虛擬機(jī)采集代理接口,用戶可以增加自定義監(jiān)控項(xiàng)。
主動推送代理:適用于可編程的設(shè)備,例如物理機(jī)、虛擬路由器等。該類型代理直接部署在設(shè)備上,監(jiān)控設(shè)備的運(yùn)行狀態(tài),并將監(jiān)控?cái)?shù)據(jù)直接發(fā)送給中心收集器。通過實(shí)現(xiàn)主動推動代理接口,用戶可以實(shí)現(xiàn)監(jiān)控任意類型的可編程設(shè)備。
主動查詢代理:適用于不可編程設(shè)備,例如交換機(jī)、磁盤整列等,該類型設(shè)別通常都提供了專用的監(jiān)控信息查詢接口。主動查詢代理使用各種專用查詢接口,主動查詢監(jiān)控?cái)?shù)據(jù),并將查詢到的監(jiān)控?cái)?shù)據(jù)進(jìn)行格式化,最后將格式化后的數(shù)據(jù)發(fā)送給中心收集器。通過實(shí)現(xiàn)主動查詢代理接口,用戶可以實(shí)現(xiàn)對具有專用監(jiān)控協(xié)議的設(shè)備進(jìn)行監(jiān)控。
所述獲取到告警規(guī)則,包括:獲取到至少由監(jiān)控項(xiàng)、告警條件、告警動作組成的所述告警規(guī)則。
其中,所述告警規(guī)則中的監(jiān)控項(xiàng)可以為多個(gè)監(jiān)控項(xiàng),比如可以具體包括以下:求平均(avg)、求和(sum)、最大值(max)、最小值(min)、數(shù)量(count)以及這些規(guī)則的組合。
所述告警規(guī)則需要包含要監(jiān)控的資源id(resource_id)、監(jiān)控項(xiàng)(meter_name)、統(tǒng)計(jì)時(shí)間(period)、告警動作(action)以及用戶id(user_id)。比如,一個(gè)合法的告警規(guī)則可以為一個(gè)六元組(resource_id,meter_name,rules,period,action,user_id)。
所述基于所述告警規(guī)則對所述監(jiān)控?cái)?shù)據(jù)進(jìn)行實(shí)時(shí)計(jì)算分析得到分析結(jié)果,包括:
選取與所述告警規(guī)則對應(yīng)的監(jiān)控?cái)?shù)據(jù);
利用選取的所述告警規(guī)則中的監(jiān)控項(xiàng)對所述監(jiān)控?cái)?shù)據(jù)進(jìn)行實(shí)時(shí)計(jì)算分析,判斷所述監(jiān)控?cái)?shù)據(jù)是否滿足告警條件;
若滿足所述告警條件,則得到分析結(jié)果為所述監(jiān)控?cái)?shù)據(jù)滿足告警條件,并且將所述告警動作添加至所述分析結(jié)果中。
與其相應(yīng)的,所述基于所述分析結(jié)果進(jìn)行告警處理,包括:
當(dāng)所述分析結(jié)果表征所述監(jiān)控?cái)?shù)據(jù)滿足告警條件時(shí),基于分析結(jié)果中的告警動作執(zhí)行告警處理。
具體說明如下:所述監(jiān)控?cái)?shù)據(jù)為也可以為一個(gè)六元組,具體可以為:資源標(biāo)識、監(jiān)控項(xiàng)、類型、值、時(shí)間戳、數(shù)據(jù),即(resource_id,meter_name,type,value,timestamp,metadata)。
分析結(jié)果可以為四元組(resource_id,meter_name,action,user_id)。
告警規(guī)則對應(yīng)的具體的告警處理實(shí)例,如下所示:
獲取到上述告警規(guī)則的方法,可以為根據(jù)監(jiān)控?cái)?shù)據(jù)的資源標(biāo)識resource_id在找到這個(gè)resource_id對應(yīng)的體現(xiàn)為告警處理鏈表的告警規(guī)則,如果鏈表為空,則初始化一個(gè)空鏈表作為空告警規(guī)則,并將告警處理實(shí)例加入到鏈表中;如果鏈表不為空,則直接將告警處理實(shí)例加入到鏈表中。
實(shí)時(shí)告警處理器收到中心收集器發(fā)來的監(jiān)控?cái)?shù)據(jù)后,按其resource_id分發(fā)到各個(gè)告警處理實(shí)例,并調(diào)用其alarm_analyze方法。alarm_analyze方法首先將收到的監(jiān)控?cái)?shù)據(jù)加入到sample_queue隊(duì)列中,并更新avg,sum,max等信息;然后分析sample_queue隊(duì)首,如果隊(duì)首的樣本過期,則刪除樣本,并更新avg,sum,max等信息,繼續(xù)分析隊(duì)首,直至隊(duì)首樣本在有效期內(nèi)。根據(jù)各比較操作符和各閾值,判斷是否觸發(fā)告警,如果告警,則調(diào)用alarm_action方法。
可見,通過采用上述方案,能夠針對云計(jì)算數(shù)據(jù)中心中至少三個(gè)資源類型采集到至少三種類型的監(jiān)控?cái)?shù)據(jù),如此以區(qū)分并覆蓋各種資源類型,具備更好的擴(kuò)展性和安全性;進(jìn)一步地,針對實(shí)時(shí)獲取到的監(jiān)控?cái)?shù)據(jù)進(jìn)行實(shí)時(shí)計(jì)算分析,從而能夠通過減少先保存獲取到的監(jiān)控?cái)?shù)據(jù),再針對獲取到的監(jiān)控?cái)?shù)據(jù)進(jìn)行分析所需要的時(shí)間,保證了對監(jiān)控?cái)?shù)據(jù)進(jìn)行實(shí)時(shí)、并且高效的處理,如此達(dá)到降低系統(tǒng)負(fù)載,提高告警實(shí)時(shí)以及高效性的目的。
實(shí)施例二、
本發(fā)明實(shí)施例提供了一種基礎(chǔ)設(shè)施云中的實(shí)時(shí)告警處理系統(tǒng),如圖3所示,所述系統(tǒng)包括:
告警控制器31,用于設(shè)置告警規(guī)則;
中心收集器32,用于針對至少云計(jì)算數(shù)據(jù)中心中三個(gè)資源類型,采集所述至少三個(gè)資源類型對應(yīng)的監(jiān)控?cái)?shù)據(jù);
實(shí)時(shí)計(jì)算控制器33,用于基于所述告警規(guī)則,針對所述監(jiān)控?cái)?shù)據(jù)進(jìn)行實(shí)時(shí)計(jì)算分析得到分析結(jié)果;基于所述分析結(jié)果進(jìn)行告警處理。
可以理解的是,上述告警控制器、中心收集器以及實(shí)時(shí)計(jì)算控制器可以分別設(shè)置于不同的網(wǎng)絡(luò)設(shè)備中,也可以為設(shè)置于相同的網(wǎng)絡(luò)設(shè)備中。
其中,所述告警控制器31,具體用于獲取到由用戶設(shè)置的至少由監(jiān)控項(xiàng)、告警條件、告警動作組成所述告警規(guī)則。
所述實(shí)時(shí)計(jì)算控制器33,用于選取與所述告警規(guī)則對應(yīng)的監(jiān)控?cái)?shù)據(jù);利用選取的所述告警規(guī)則中的監(jiān)控項(xiàng)對所述監(jiān)控?cái)?shù)據(jù)進(jìn)行分析,判斷所述監(jiān)控?cái)?shù)據(jù)是否滿足告警條件;若滿足所述告警條件,則得到分析結(jié)果為所述監(jiān)控?cái)?shù)據(jù)滿足告警條件,并且將所述告警動作添加至所述分析結(jié)果中。
所述實(shí)時(shí)計(jì)算控制器33,用于當(dāng)所述分析結(jié)果表征所述監(jiān)控?cái)?shù)據(jù)滿足告警條件時(shí),基于分析結(jié)果中的告警動作執(zhí)行告警處理。
所述中心收集器32,用于從虛擬機(jī)側(cè)采集得到監(jiān)控?cái)?shù)據(jù);接收到可編程的網(wǎng)絡(luò)設(shè)備直接發(fā)來的監(jiān)控?cái)?shù)據(jù);從不可編程的網(wǎng)絡(luò)設(shè)備側(cè)采集得到監(jiān)控?cái)?shù)據(jù)。
本專利提出的云平臺實(shí)時(shí)監(jiān)控與實(shí)時(shí)告警框架的架構(gòu)圖可以參見圖4首先通過告警控制器(alarm-controller)將用戶定義的告警規(guī)則翻譯為實(shí)時(shí)計(jì)算引擎能夠識別的計(jì)算規(guī)則,然后通過實(shí)時(shí)計(jì)算控制器(rtc-controller),應(yīng)用告警規(guī)則。實(shí)時(shí)計(jì)算處理器(rtc-processor)不斷接收中心收集器推送過來的監(jiān)控?cái)?shù)據(jù),進(jìn)行實(shí)時(shí)處理,若處理結(jié)果滿足告警規(guī)則,則觸發(fā)告警,并將告警信號發(fā)送給告警通知器(alarm-notifier)。示意圖如圖5所示,其中,告警控制器支持的告警規(guī)則包括求平均(avg)、求和(sum)、最大值(max)、最小值(min)、數(shù)量(count)以及這些規(guī)則的組合。每條告警規(guī)則必須包含要監(jiān)控的資源id(resource_id)、監(jiān)控項(xiàng)(meter_name)、統(tǒng)計(jì)時(shí)間(period)、告警動作(action)以及用戶id(user_id)。一個(gè)合法的告 警規(guī)則為一個(gè)六元組(resource_id,meter_name,rules,period,action,user_id)。實(shí)時(shí)計(jì)算處理器(rtc-processor)接收的監(jiān)控?cái)?shù)據(jù)為六元組(resource_id,meter_name,type,value,timestamp,metadata),而實(shí)時(shí)計(jì)算處理器輸出的告警為四元組(resource_id,meter_name,action,user_id)。
實(shí)時(shí)告警處理器收到中心收集器發(fā)來的監(jiān)控?cái)?shù)據(jù)后,按其resource_id分發(fā)到各個(gè)告警處理實(shí)例,并調(diào)用其alarm_analyze方法。alarm_analyze方法首先將收到的監(jiān)控?cái)?shù)據(jù)加入到sample_queue隊(duì)列中,并更新avg,sum,max等信息;然后分析sample_queue隊(duì)首,如果隊(duì)首的樣本過期,則刪除樣本,并更新avg,sum,max等信息,繼續(xù)分析隊(duì)首,直至隊(duì)首樣本在有效期內(nèi)。根據(jù)各比較操作符和各閾值,判斷是否觸發(fā)告警,如果告警,則調(diào)用alarm_action方法。
可見,通過采用上述方案,能夠針對云計(jì)算數(shù)據(jù)中心中至少三個(gè)資源類型采集到至少三種類型的監(jiān)控?cái)?shù)據(jù),如此以區(qū)分并覆蓋各種資源類型,具備更好的擴(kuò)展性和安全性;進(jìn)一步地,針對實(shí)時(shí)獲取到的監(jiān)控?cái)?shù)據(jù)進(jìn)行實(shí)時(shí)計(jì)算分析,從而能夠通過減少先保存獲取到的監(jiān)控?cái)?shù)據(jù),再針對獲取到的監(jiān)控?cái)?shù)據(jù)進(jìn)行分析所需要的時(shí)間,保證了對監(jiān)控?cái)?shù)據(jù)進(jìn)行實(shí)時(shí)、并且高效的處理,如此達(dá)到降低系統(tǒng)負(fù)載,提高告警實(shí)時(shí)以及高效性的目的。
以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。