(沈陽工學(xué)院,遼寧 本溪 113122)
由于網(wǎng)絡(luò)行業(yè)快速發(fā)展以及經(jīng)濟(jì)市場競爭的激烈,使云平臺(tái)應(yīng)用越來越廣泛。目前研發(fā)的CloudStack云平臺(tái)已經(jīng)廣泛應(yīng)用到運(yùn)營商公有云和私有云之中,將兩種云的資源集中起來,能夠?qū)崿F(xiàn)視圖統(tǒng)一管理。因此,需要在CloudStack云平臺(tái)上設(shè)計(jì)一個(gè)異常運(yùn)行告警系統(tǒng),以確定不同情況下云平臺(tái)運(yùn)行效率[1]。在開源云管理平臺(tái)基礎(chǔ)上,結(jié)合不同運(yùn)營商資源運(yùn)營特點(diǎn),進(jìn)行創(chuàng)新研發(fā),使用戶能夠在不同情況下,安全使用全部資源。為了保證云平臺(tái)能夠高效運(yùn)行,設(shè)計(jì)云平臺(tái)異常運(yùn)行告警系統(tǒng)是具有十分重要的意義[2]。由于云平臺(tái)需要承載大量資源,而不同資源上承載著不同服務(wù)類型,因此對(duì)于告警系統(tǒng)的實(shí)現(xiàn)面臨諸多挑戰(zhàn)。隨著系統(tǒng)復(fù)雜程度的提高,監(jiān)控?cái)?shù)據(jù)也呈上升趨勢,這就造成了傳統(tǒng)集中式告警系統(tǒng)負(fù)載過重,不穩(wěn)定的運(yùn)行方式會(huì)導(dǎo)致用戶無法對(duì)整個(gè)云平臺(tái)進(jìn)行高效監(jiān)控[3]。為了改善這一問題,提出了新型告警系統(tǒng)設(shè)計(jì)方案,并最終對(duì)告警事件進(jìn)行優(yōu)化處理。
CloudStack是采用Java語言開發(fā)的云平臺(tái),可將不同資源池化,進(jìn)而構(gòu)建公有云、私有云和運(yùn)營商保管的混合云,為服務(wù)提供大量計(jì)算資源[4]。同時(shí),CloudStack具備良好用戶界面,能夠?yàn)锳PI提供豐富接口。完整的CloudStack云平臺(tái)包括管理服務(wù)器和虛擬化管理程序,其中管理服務(wù)器負(fù)責(zé)為用戶界面提供資源,而API提供應(yīng)用程序編程接口,而虛擬機(jī)負(fù)責(zé)執(zhí)行虛擬化操作,支持多種虛擬機(jī)管理[5]。
CloudStack云平臺(tái)異常運(yùn)行告警系統(tǒng)體系結(jié)構(gòu)是由基礎(chǔ)設(shè)施層、基礎(chǔ)服務(wù)層、核心服務(wù)層和用戶接口層構(gòu)成的。
1)基礎(chǔ)設(shè)施層:
作為整個(gè)體系結(jié)構(gòu)底層支持的基礎(chǔ)設(shè)施層是通過CloudStack云平臺(tái)虛擬機(jī)來創(chuàng)建多個(gè)Xen虛擬機(jī)的,能夠?qū)崿F(xiàn)程序的虛擬化管理,為數(shù)據(jù)庫持久化使用提供充足空間,也為用戶訪問數(shù)據(jù)庫提供安全保障[6]。
該層次中信息收集器是與基礎(chǔ)服務(wù)層連接的主要方式,通過業(yè)務(wù)系統(tǒng)和CloudStack云平臺(tái)之間的紐帶,CloudStack云平臺(tái)能夠通過定制多個(gè)信息收集器對(duì)業(yè)務(wù)關(guān)鍵點(diǎn)運(yùn)行情況進(jìn)行實(shí)時(shí)監(jiān)測。經(jīng)過自動(dòng)化報(bào)警平臺(tái)對(duì)運(yùn)行異常信息進(jìn)行告警處理,這是與核心服務(wù)層連接的主要目的。通過CloudStack云平臺(tái)開放接口,可與用戶接口層實(shí)現(xiàn)信息資源共享,方便用戶采集業(yè)務(wù)異常信息[7]。
2)基礎(chǔ)服務(wù)層主要負(fù)責(zé)對(duì)CloudStack云平臺(tái)虛擬機(jī)信息采集和對(duì)信息進(jìn)行持久化處理。針對(duì)異常信息采集器硬件結(jié)構(gòu)設(shè)計(jì)如圖1所示。
圖1 異常信息采集器硬件結(jié)構(gòu)示意圖
異常信息采集器設(shè)計(jì)是以C8051F0403型號(hào)芯片為主要處理器芯片,其內(nèi)部集成了采集結(jié)構(gòu)所需的大部分模擬外設(shè),其中包括ADC指模/數(shù)轉(zhuǎn)換器、DAC數(shù)字模擬轉(zhuǎn)換器、電壓比較器以及CAN控制器等,高度集成性能為信息采集提供了方便[8]。設(shè)置看門狗周期為1.5 s,通過增加獨(dú)立SJA1000型號(hào)CAN控制器,實(shí)現(xiàn)冗余總線接口的設(shè)計(jì)。在實(shí)際采集電路中,虛擬信號(hào)全部傳送至采集器后,需先通過低通濾波對(duì)各種干擾信號(hào)進(jìn)行抑制,再經(jīng)過放大器,將帶有12位的C8051F040型號(hào)ADC指模/數(shù)轉(zhuǎn)換器進(jìn)行信息采集和增益轉(zhuǎn)換。由于被采集的異常信息與采集器距離較遠(yuǎn),兩者之間存在一定電勢差,導(dǎo)致傳輸結(jié)構(gòu)存在一定誤差[9]。因此,必須選擇擁有較高的阻抗進(jìn)行集成運(yùn)放,同時(shí)采用無限增益方式進(jìn)行電壓負(fù)反饋增大,保證異常信息采集不被外界條件所干擾。
3)核心服務(wù)層主要負(fù)責(zé)實(shí)現(xiàn)CloudStack云平臺(tái)異常運(yùn)行狀態(tài)檢測與監(jiān)控,該層也是整個(gè)系統(tǒng)結(jié)構(gòu)的核心層。告警裝置是由監(jiān)控終端、全球通GSM短信收發(fā)模塊和主機(jī)這三部分組成的,其結(jié)構(gòu)如圖2所示。
圖2 告警裝置
采用ARM7平臺(tái)作為監(jiān)控終端,可在裝置工作時(shí),實(shí)時(shí)監(jiān)控CloudStack云平臺(tái)運(yùn)行的狀態(tài),一旦監(jiān)控到有異常情況發(fā)生時(shí),終端監(jiān)控器會(huì)發(fā)出告警信號(hào),提醒用戶有異?,F(xiàn)象發(fā)生,需及時(shí)采取應(yīng)對(duì)措施。另外,告警信號(hào)發(fā)出時(shí),其內(nèi)置的圖像抓拍器會(huì)對(duì)裝置進(jìn)行連續(xù)拍照,將拍攝到的圖像終端緩存至主機(jī)之中,主機(jī)將以文件形式進(jìn)行存儲(chǔ)與備份。
監(jiān)控終端硬件結(jié)構(gòu)示意圖如圖3所示。
圖3 監(jiān)控終端硬件結(jié)構(gòu)示意圖
監(jiān)控終端硬件采用的是嵌入式硬件平臺(tái),選擇ARM7TDMI內(nèi)核微處理器,可為應(yīng)用開發(fā)提供高性能解決方案。該結(jié)構(gòu)可在800/1 600/2 000 MHz下進(jìn)行工作,支持語音通信,其內(nèi)部鑲嵌的TCP/IP協(xié)議,可支持標(biāo)準(zhǔn)AT指令,并遵循3GPP27.05規(guī)范。
在微處理器中擴(kuò)展了防盜、運(yùn)行和消除報(bào)警這3個(gè)按鍵口,一旦按下防盜鍵,CPU檢測到有低電平,那么系統(tǒng)就會(huì)進(jìn)入監(jiān)控狀態(tài),在該狀態(tài)下,系統(tǒng)將不斷檢查所有裝置,直到確定其能全部正常運(yùn)行為止。由于傳感器輸出電平過大或過小,導(dǎo)致微處理器外圍電路接口電平也相對(duì)較小,傳感器輸出需要經(jīng)過光耦隔離才能連接至CPU引腳。而采用光耦隔離還可避免雷雨天氣下傳輸導(dǎo)線出現(xiàn)引雷的問題,起到保護(hù)CPU的作用;而當(dāng)按下運(yùn)行鍵時(shí),CloudStack云平臺(tái)運(yùn)行為正常狀態(tài),不會(huì)出現(xiàn)告警信息。如果云平臺(tái)運(yùn)行異常,那么電磁輸出由低電平變?yōu)楦唠娖?,產(chǎn)生告警信號(hào),CPU通過控制GPD接口輸出低電平,觸發(fā)告警裝置。告警裝置被觸發(fā)后,CPU通過通用異步收發(fā)傳輸器發(fā)送AT指令,以此控制各大模塊,經(jīng)過網(wǎng)絡(luò)向系統(tǒng)主機(jī)發(fā)送告警信息,主機(jī)對(duì)告警信息進(jìn)行分析處理。將接收和引腳相連接,充分考慮運(yùn)行過程出現(xiàn)的異常現(xiàn)象,隨時(shí)擴(kuò)大容量,保證信息能夠全部存儲(chǔ),保證告警裝置高效運(yùn)行。
4)用戶接口層主要負(fù)責(zé)對(duì)云平臺(tái)資源的查看,通過該層可看到虛擬機(jī)出現(xiàn)的異常行為,為系統(tǒng)告警提供狀態(tài)信息,用戶接口層通過訪問控制進(jìn)行邏輯處理,使接口能夠24小時(shí)運(yùn)行。
根據(jù)系統(tǒng)體系結(jié)構(gòu),設(shè)計(jì)基礎(chǔ)設(shè)施層、基礎(chǔ)服務(wù)層、核心服務(wù)層和用戶接口層。
信息采集部分是以C8051F0403型號(hào)芯片為主要處理器芯片,而信息傳輸部分采用無線通信方式來接收和發(fā)送各個(gè)節(jié)點(diǎn)信息。網(wǎng)絡(luò)連接部分采用W5500以太網(wǎng)接口,使監(jiān)控裝置能夠配置好每一個(gè)傳感節(jié)點(diǎn),通過無線傳感網(wǎng)絡(luò)與C8051F0403型號(hào)芯片相連接,實(shí)現(xiàn)無線通信。而用戶接口模塊負(fù)責(zé)將處理好的數(shù)據(jù)通過網(wǎng)絡(luò)傳送至CloudStack云平臺(tái)上進(jìn)行顯示,同時(shí)將云平臺(tái)控制指令發(fā)送到微處理器之中,實(shí)現(xiàn)對(duì)CloudStack云平臺(tái)異常運(yùn)行告警系統(tǒng)的相應(yīng)控制。
系統(tǒng)功能設(shè)計(jì)主要實(shí)現(xiàn)監(jiān)測采集信息、解析告警信息、告警事件和維護(hù)告警裝置等功能,目的在于提高當(dāng)前告警裝置工作效率。
報(bào)警客戶端主要是由監(jiān)控模塊、管理模塊和解析模塊組成的,該客戶端通常與采集模塊相聯(lián)合,將資源池中的全部采集設(shè)備都部署在報(bào)警客戶端代理模塊之中,能夠有效減輕告警服務(wù)壓力。
1)告警監(jiān)控模塊可將采集到的異常信息發(fā)送到報(bào)警客戶端接口處,其中物理信息、虛擬信息告警主要包括接入CloudStack云平臺(tái)的虛擬機(jī)使用效率和網(wǎng)絡(luò)讀寫性能指標(biāo);服務(wù)信息告警主要是對(duì)云服務(wù)進(jìn)行告警處理,通常包括云存儲(chǔ)服務(wù)和云計(jì)算服務(wù)特定應(yīng)用軟件提供服務(wù)。
2)告警管理模塊可從子系統(tǒng)中維護(hù)告警策略,主要適用于監(jiān)控信息中的物理信息和虛擬信息性能指標(biāo)。該指標(biāo)除了保存相關(guān)信息之外,還可默認(rèn)初始值,當(dāng)系統(tǒng)開始運(yùn)行后,用戶通過用戶界面來設(shè)定,并將設(shè)定好的方案發(fā)送至報(bào)警客戶端,進(jìn)而存儲(chǔ)到數(shù)據(jù)庫中。
3)告警解析模塊是在系統(tǒng)監(jiān)控到告警信息之后開始進(jìn)行解析的,通常將該信息分為兩類,一類是告警方案解析資源指標(biāo),另一種是告警指標(biāo)。當(dāng)告警指標(biāo)為異常狀態(tài)時(shí),只需獲取響應(yīng)IP地址即可接收到相關(guān)狀態(tài)信息。
信息收集器主要功能就是實(shí)時(shí)獲取異常狀態(tài)信息,將全部信息轉(zhuǎn)化為統(tǒng)一格式,并對(duì)其進(jìn)行分析與判斷。針對(duì)不同異常運(yùn)行告警系統(tǒng)軟硬件監(jiān)控,需定制研發(fā)相應(yīng)信息采集流程,如圖4所示。
圖4 信息采集流程圖
該流程主要是對(duì)異常信息進(jìn)行采集,具體采集流程如下所示:
1)啟動(dòng)信息采集器;
2)獲取系統(tǒng)時(shí)間;
3)從時(shí)間表中提取CloudStack云平臺(tái)運(yùn)行的啟動(dòng)時(shí)間;
4)等待15 s,查看主流程是否能夠正常完成?如果能,則說明CloudStack云平臺(tái)運(yùn)行出現(xiàn)異常。如果不能,則立即生成報(bào)警信息文件,并上傳至報(bào)警平臺(tái)。
根據(jù)收集到的異常信息,設(shè)計(jì)系統(tǒng)實(shí)現(xiàn)方案。
告警平臺(tái)收集并解析信息采集器上報(bào)的告警信息文件,按照預(yù)定告警方案進(jìn)行信息發(fā)送,同時(shí)對(duì)歷史信息進(jìn)行入庫保存。由于不同信息采集器運(yùn)行在不同操作行為基礎(chǔ)上,因此,信息采集方式需根據(jù)實(shí)際運(yùn)行情況進(jìn)行改變。
采用確定格式文件作為告警信息文件,能夠方便實(shí)現(xiàn)不同系統(tǒng)之間的穩(wěn)定通信,針對(duì)CloudStack云平臺(tái)中的告警信息文件格式規(guī)定如下所示。
規(guī)定1:采用UTF-8統(tǒng)一編碼方式;
規(guī)定2:一旦告警系統(tǒng)硬件設(shè)備IP地址發(fā)生異常變化時(shí),需重新命名新地址,如190121161852表示為2019年1月21日16時(shí)18分52秒;
規(guī)定3:告警信息項(xiàng)和內(nèi)容主要包括六個(gè)方面,詳細(xì)說明如下所示:
1)BigSystem:指出該信息所屬大業(yè)務(wù)范圍
2)SmallSystem:指出該信息所屬小業(yè)務(wù)范圍
3)Level:告警嚴(yán)重程度
4)Time:運(yùn)行異常發(fā)現(xiàn)時(shí)間
5)Content:告警具體內(nèi)容
根據(jù)上述文件格式規(guī)定,告警平臺(tái)信息發(fā)送和匹配方式需依據(jù)下列公式:
{U|S.Za∈U.ZaaAndS.M∈S.Ma}
(1)
公式(1)中:S表示告警信息;M表示告警等級(jí)集合;Zaa表示大數(shù)據(jù)集合,其中包括Za小數(shù)據(jù)集合;U表示用戶組。告警方案主要體現(xiàn)在目標(biāo)用戶和告警信息之間,CloudStack云平臺(tái)對(duì)目標(biāo)用戶進(jìn)行分組,通過構(gòu)建告警信息,實(shí)現(xiàn)告警級(jí)別和用戶組之間的多映射關(guān)系,實(shí)現(xiàn)不同等級(jí)報(bào)警信息發(fā)送至不同用戶之中,確保告警信息發(fā)送的可靠性,由此設(shè)計(jì)告警處理實(shí)現(xiàn)流程,如下所示:
CloudStack云平臺(tái)啟動(dòng)告警裝置后,按照系統(tǒng)配置相關(guān)檢測時(shí)間,及時(shí)將監(jiān)測結(jié)果匯報(bào)至檢測目錄之中,并查看是否存在異常文件。如果無異常文件,則需準(zhǔn)備下次查詢處理;如果出現(xiàn)異常文件,則需對(duì)內(nèi)容進(jìn)行解析,并將異常文件轉(zhuǎn)移到文件目錄之中。如果告警文件解析結(jié)果正常,則需按照固定形式發(fā)送處理方案,確定發(fā)送對(duì)象,并進(jìn)行告警。一旦告警信息發(fā)送完成之后,需將相關(guān)信息進(jìn)行保存,并將該信息存放到已處理文件之中。通過告警平臺(tái)對(duì)信息進(jìn)行確認(rèn),則立刻停止告警,否則持續(xù)告警。
為了保證CloudStack云平臺(tái)異常運(yùn)行告警系統(tǒng)能夠穩(wěn)定運(yùn)行,需設(shè)計(jì)覆蓋告警系統(tǒng)不同功能點(diǎn)的測試方案,從性能角度對(duì)告警系統(tǒng)做出評(píng)估。
按照底層資源池、運(yùn)維管理平臺(tái)、采集模塊、自服務(wù)門戶安裝順序搭建實(shí)驗(yàn)平臺(tái)。其中硬件環(huán)境和軟件環(huán)境設(shè)置如表1所示。
表1 硬件環(huán)境和軟件環(huán)境設(shè)置
根據(jù)該運(yùn)行環(huán)境,對(duì)測試結(jié)果進(jìn)行分析。
在測試過程中,資源配置和告警服務(wù)運(yùn)行情況如圖5所示。
圖5 資源配置和告警服務(wù)運(yùn)行情況
以該運(yùn)行情況為對(duì)照信息,將傳統(tǒng)系統(tǒng)與該系統(tǒng)進(jìn)行對(duì)比分析。
兩種系統(tǒng)對(duì)CPU和內(nèi)存使用情況進(jìn)行告警分析,對(duì)比結(jié)果如圖6所示。
圖6 兩種系統(tǒng)對(duì)CPU和內(nèi)存使用情況告警分析
由圖6可知:當(dāng)實(shí)驗(yàn)時(shí)間為60 s時(shí),傳統(tǒng)系統(tǒng)CPU出現(xiàn)異常情況告警分析精準(zhǔn)度為46%,內(nèi)存出現(xiàn)異常情況告警分析精準(zhǔn)度為58%;當(dāng)實(shí)驗(yàn)時(shí)間為80 s時(shí),傳統(tǒng)系統(tǒng)CPU出現(xiàn)異常情況告警分析精準(zhǔn)度為25%,內(nèi)存出現(xiàn)異常情況告警分析精準(zhǔn)度為26%;當(dāng)實(shí)驗(yàn)時(shí)間為100 s時(shí),傳統(tǒng)系統(tǒng)CPU出現(xiàn)異常情況告警分析精準(zhǔn)度為18%,內(nèi)存出現(xiàn)異常情況告警分析精準(zhǔn)度為22%;當(dāng)實(shí)驗(yàn)時(shí)間為120 s時(shí),傳統(tǒng)系統(tǒng)CPU出現(xiàn)異常情況告警分析精準(zhǔn)度為16%,內(nèi)存出現(xiàn)異常情況告警分析精準(zhǔn)度為16%;當(dāng)實(shí)驗(yàn)時(shí)間為160 s時(shí),傳統(tǒng)系統(tǒng)CPU出現(xiàn)異常情況告警分析精準(zhǔn)度與內(nèi)存出現(xiàn)異常情況告警分析精準(zhǔn)度一致,都為5%。
CloudStack云平臺(tái)異常運(yùn)行告警系統(tǒng),當(dāng)實(shí)驗(yàn)時(shí)間為20 s時(shí),CPU出現(xiàn)異常情況告警分析精準(zhǔn)度為92%,內(nèi)存出現(xiàn)異常情況告警分析精準(zhǔn)度為83%;當(dāng)實(shí)驗(yàn)時(shí)間為80 s時(shí),CPU出現(xiàn)異常情況告警分析精準(zhǔn)度為98%,內(nèi)存出現(xiàn)異常情況告警分析精準(zhǔn)度為92%;當(dāng)實(shí)驗(yàn)時(shí)間為120 s時(shí),CPU出現(xiàn)異常情況告警分析精準(zhǔn)度為90%,內(nèi)存出現(xiàn)異常情況告警分析精準(zhǔn)度為94%。由此可知,CloudStack云平臺(tái)異常運(yùn)行告警系統(tǒng)對(duì)CPU和內(nèi)存出現(xiàn)異常情況告警分析精準(zhǔn)度較高。
兩種系統(tǒng)對(duì)硬盤和網(wǎng)絡(luò)讀寫出現(xiàn)異常情況進(jìn)行告警分析,對(duì)比結(jié)果如表2所示。
表2 兩種系統(tǒng)對(duì)硬盤和網(wǎng)絡(luò)讀寫異常情況告警分析
由表2可知:在傳統(tǒng)系統(tǒng)中,當(dāng)實(shí)驗(yàn)次數(shù)為50次時(shí),硬盤讀寫出現(xiàn)異常情況告警精準(zhǔn)度達(dá)到最高58%,當(dāng)實(shí)驗(yàn)次數(shù)為10次時(shí),告警精準(zhǔn)度達(dá)到最低38%。而網(wǎng)絡(luò)讀寫出現(xiàn)異常情況告警精準(zhǔn)度達(dá)到最高是在實(shí)驗(yàn)次數(shù)為20次時(shí),最高達(dá)到64%。當(dāng)實(shí)驗(yàn)次數(shù)為10次時(shí),告警精準(zhǔn)度達(dá)到最低58%。
在CloudStack云平臺(tái)系統(tǒng)中,硬盤讀寫出現(xiàn)異常情況告警精準(zhǔn)度最高可達(dá)到98%,最低可達(dá)到94%;而網(wǎng)絡(luò)讀寫出現(xiàn)異常情況告警精準(zhǔn)度最高可達(dá)到97%,最低可達(dá)到93%。由此可知,CloudStack云平臺(tái)異常運(yùn)行告警系統(tǒng)對(duì)硬盤和網(wǎng)絡(luò)讀寫出現(xiàn)異常情況告警分析精準(zhǔn)度較高。
綜上所述:無論是對(duì)CPU和內(nèi)存出現(xiàn)異常情況告警分析還是對(duì)硬盤和網(wǎng)絡(luò)讀寫出現(xiàn)異常情況告警分析,其結(jié)果精準(zhǔn)度都比傳統(tǒng)系統(tǒng)要高,由此證實(shí)CloudStack云平臺(tái)異常運(yùn)行告警系統(tǒng)能夠穩(wěn)定運(yùn)行。
結(jié)合云計(jì)算特點(diǎn),從告警系統(tǒng)適用性和準(zhǔn)確性兩個(gè)角度進(jìn)行方案設(shè)計(jì),使系統(tǒng)具有高擴(kuò)展性,通過對(duì)傳統(tǒng)告警系統(tǒng)全方位改造,能夠具有低藕合和低干預(yù)性特征。搭建CloudStack云平臺(tái)下的軟硬件環(huán)境,同時(shí)對(duì)云資源調(diào)度進(jìn)行研究,分析不同設(shè)備部署方案,通過實(shí)驗(yàn)結(jié)果,可顯示出新型告警系統(tǒng)能夠滿足項(xiàng)目基本需求。
對(duì)于云平臺(tái)異常運(yùn)行告警系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),是在開源平臺(tái)上進(jìn)行的整體設(shè)計(jì),針對(duì)部分軟件功能進(jìn)行優(yōu)化處理,實(shí)現(xiàn)平臺(tái)自動(dòng)化水平,加強(qiáng)數(shù)據(jù)安全,保證不同數(shù)據(jù)之間能夠安全共享。為了能夠解決多目標(biāo)存在的相互沖突,需進(jìn)行多方面綜合優(yōu)化,研究不同硬件設(shè)備部署的多目標(biāo)優(yōu)化算法,為云平臺(tái)高效共享提供有效解決途徑。