(沈陽工學院,遼寧 本溪 113122)
由于網(wǎng)絡行業(yè)快速發(fā)展以及經(jīng)濟市場競爭的激烈,使云平臺應用越來越廣泛。目前研發(fā)的CloudStack云平臺已經(jīng)廣泛應用到運營商公有云和私有云之中,將兩種云的資源集中起來,能夠?qū)崿F(xiàn)視圖統(tǒng)一管理。因此,需要在CloudStack云平臺上設計一個異常運行告警系統(tǒng),以確定不同情況下云平臺運行效率[1]。在開源云管理平臺基礎上,結合不同運營商資源運營特點,進行創(chuàng)新研發(fā),使用戶能夠在不同情況下,安全使用全部資源。為了保證云平臺能夠高效運行,設計云平臺異常運行告警系統(tǒng)是具有十分重要的意義[2]。由于云平臺需要承載大量資源,而不同資源上承載著不同服務類型,因此對于告警系統(tǒng)的實現(xiàn)面臨諸多挑戰(zhàn)。隨著系統(tǒng)復雜程度的提高,監(jiān)控數(shù)據(jù)也呈上升趨勢,這就造成了傳統(tǒng)集中式告警系統(tǒng)負載過重,不穩(wěn)定的運行方式會導致用戶無法對整個云平臺進行高效監(jiān)控[3]。為了改善這一問題,提出了新型告警系統(tǒng)設計方案,并最終對告警事件進行優(yōu)化處理。
CloudStack是采用Java語言開發(fā)的云平臺,可將不同資源池化,進而構建公有云、私有云和運營商保管的混合云,為服務提供大量計算資源[4]。同時,CloudStack具備良好用戶界面,能夠為API提供豐富接口。完整的CloudStack云平臺包括管理服務器和虛擬化管理程序,其中管理服務器負責為用戶界面提供資源,而API提供應用程序編程接口,而虛擬機負責執(zhí)行虛擬化操作,支持多種虛擬機管理[5]。
CloudStack云平臺異常運行告警系統(tǒng)體系結構是由基礎設施層、基礎服務層、核心服務層和用戶接口層構成的。
1)基礎設施層:
作為整個體系結構底層支持的基礎設施層是通過CloudStack云平臺虛擬機來創(chuàng)建多個Xen虛擬機的,能夠?qū)崿F(xiàn)程序的虛擬化管理,為數(shù)據(jù)庫持久化使用提供充足空間,也為用戶訪問數(shù)據(jù)庫提供安全保障[6]。
該層次中信息收集器是與基礎服務層連接的主要方式,通過業(yè)務系統(tǒng)和CloudStack云平臺之間的紐帶,CloudStack云平臺能夠通過定制多個信息收集器對業(yè)務關鍵點運行情況進行實時監(jiān)測。經(jīng)過自動化報警平臺對運行異常信息進行告警處理,這是與核心服務層連接的主要目的。通過CloudStack云平臺開放接口,可與用戶接口層實現(xiàn)信息資源共享,方便用戶采集業(yè)務異常信息[7]。
2)基礎服務層主要負責對CloudStack云平臺虛擬機信息采集和對信息進行持久化處理。針對異常信息采集器硬件結構設計如圖1所示。

圖1 異常信息采集器硬件結構示意圖
異常信息采集器設計是以C8051F0403型號芯片為主要處理器芯片,其內(nèi)部集成了采集結構所需的大部分模擬外設,其中包括ADC指模/數(shù)轉(zhuǎn)換器、DAC數(shù)字模擬轉(zhuǎn)換器、電壓比較器以及CAN控制器等,高度集成性能為信息采集提供了方便[8]。設置看門狗周期為1.5 s,通過增加獨立SJA1000型號CAN控制器,實現(xiàn)冗余總線接口的設計。在實際采集電路中,虛擬信號全部傳送至采集器后,需先通過低通濾波對各種干擾信號進行抑制,再經(jīng)過放大器,將帶有12位的C8051F040型號ADC指模/數(shù)轉(zhuǎn)換器進行信息采集和增益轉(zhuǎn)換。由于被采集的異常信息與采集器距離較遠,兩者之間存在一定電勢差,導致傳輸結構存在一定誤差[9]。因此,必須選擇擁有較高的阻抗進行集成運放,同時采用無限增益方式進行電壓負反饋增大,保證異常信息采集不被外界條件所干擾。
3)核心服務層主要負責實現(xiàn)CloudStack云平臺異常運行狀態(tài)檢測與監(jiān)控,該層也是整個系統(tǒng)結構的核心層。告警裝置是由監(jiān)控終端、全球通GSM短信收發(fā)模塊和主機這三部分組成的,其結構如圖2所示。

圖2 告警裝置
采用ARM7平臺作為監(jiān)控終端,可在裝置工作時,實時監(jiān)控CloudStack云平臺運行的狀態(tài),一旦監(jiān)控到有異常情況發(fā)生時,終端監(jiān)控器會發(fā)出告警信號,提醒用戶有異常現(xiàn)象發(fā)生,需及時采取應對措施。另外,告警信號發(fā)出時,其內(nèi)置的圖像抓拍器會對裝置進行連續(xù)拍照,將拍攝到的圖像終端緩存至主機之中,主機將以文件形式進行存儲與備份。
監(jiān)控終端硬件結構示意圖如圖3所示。

圖3 監(jiān)控終端硬件結構示意圖
監(jiān)控終端硬件采用的是嵌入式硬件平臺,選擇ARM7TDMI內(nèi)核微處理器,可為應用開發(fā)提供高性能解決方案。該結構可在800/1 600/2 000 MHz下進行工作,支持語音通信,其內(nèi)部鑲嵌的TCP/IP協(xié)議,可支持標準AT指令,并遵循3GPP27.05規(guī)范。
在微處理器中擴展了防盜、運行和消除報警這3個按鍵口,一旦按下防盜鍵,CPU檢測到有低電平,那么系統(tǒng)就會進入監(jiān)控狀態(tài),在該狀態(tài)下,系統(tǒng)將不斷檢查所有裝置,直到確定其能全部正常運行為止。由于傳感器輸出電平過大或過小,導致微處理器外圍電路接口電平也相對較小,傳感器輸出需要經(jīng)過光耦隔離才能連接至CPU引腳。而采用光耦隔離還可避免雷雨天氣下傳輸導線出現(xiàn)引雷的問題,起到保護CPU的作用;而當按下運行鍵時,CloudStack云平臺運行為正常狀態(tài),不會出現(xiàn)告警信息。如果云平臺運行異常,那么電磁輸出由低電平變?yōu)楦唠娖剑a(chǎn)生告警信號,CPU通過控制GPD接口輸出低電平,觸發(fā)告警裝置。告警裝置被觸發(fā)后,CPU通過通用異步收發(fā)傳輸器發(fā)送AT指令,以此控制各大模塊,經(jīng)過網(wǎng)絡向系統(tǒng)主機發(fā)送告警信息,主機對告警信息進行分析處理。將接收和引腳相連接,充分考慮運行過程出現(xiàn)的異常現(xiàn)象,隨時擴大容量,保證信息能夠全部存儲,保證告警裝置高效運行。
4)用戶接口層主要負責對云平臺資源的查看,通過該層可看到虛擬機出現(xiàn)的異常行為,為系統(tǒng)告警提供狀態(tài)信息,用戶接口層通過訪問控制進行邏輯處理,使接口能夠24小時運行。
根據(jù)系統(tǒng)體系結構,設計基礎設施層、基礎服務層、核心服務層和用戶接口層。
信息采集部分是以C8051F0403型號芯片為主要處理器芯片,而信息傳輸部分采用無線通信方式來接收和發(fā)送各個節(jié)點信息。網(wǎng)絡連接部分采用W5500以太網(wǎng)接口,使監(jiān)控裝置能夠配置好每一個傳感節(jié)點,通過無線傳感網(wǎng)絡與C8051F0403型號芯片相連接,實現(xiàn)無線通信。而用戶接口模塊負責將處理好的數(shù)據(jù)通過網(wǎng)絡傳送至CloudStack云平臺上進行顯示,同時將云平臺控制指令發(fā)送到微處理器之中,實現(xiàn)對CloudStack云平臺異常運行告警系統(tǒng)的相應控制。
系統(tǒng)功能設計主要實現(xiàn)監(jiān)測采集信息、解析告警信息、告警事件和維護告警裝置等功能,目的在于提高當前告警裝置工作效率。
報警客戶端主要是由監(jiān)控模塊、管理模塊和解析模塊組成的,該客戶端通常與采集模塊相聯(lián)合,將資源池中的全部采集設備都部署在報警客戶端代理模塊之中,能夠有效減輕告警服務壓力。
1)告警監(jiān)控模塊可將采集到的異常信息發(fā)送到報警客戶端接口處,其中物理信息、虛擬信息告警主要包括接入CloudStack云平臺的虛擬機使用效率和網(wǎng)絡讀寫性能指標;服務信息告警主要是對云服務進行告警處理,通常包括云存儲服務和云計算服務特定應用軟件提供服務。
2)告警管理模塊可從子系統(tǒng)中維護告警策略,主要適用于監(jiān)控信息中的物理信息和虛擬信息性能指標。該指標除了保存相關信息之外,還可默認初始值,當系統(tǒng)開始運行后,用戶通過用戶界面來設定,并將設定好的方案發(fā)送至報警客戶端,進而存儲到數(shù)據(jù)庫中。
3)告警解析模塊是在系統(tǒng)監(jiān)控到告警信息之后開始進行解析的,通常將該信息分為兩類,一類是告警方案解析資源指標,另一種是告警指標。當告警指標為異常狀態(tài)時,只需獲取響應IP地址即可接收到相關狀態(tài)信息。
信息收集器主要功能就是實時獲取異常狀態(tài)信息,將全部信息轉(zhuǎn)化為統(tǒng)一格式,并對其進行分析與判斷。針對不同異常運行告警系統(tǒng)軟硬件監(jiān)控,需定制研發(fā)相應信息采集流程,如圖4所示。

圖4 信息采集流程圖
該流程主要是對異常信息進行采集,具體采集流程如下所示:
1)啟動信息采集器;
2)獲取系統(tǒng)時間;
3)從時間表中提取CloudStack云平臺運行的啟動時間;
4)等待15 s,查看主流程是否能夠正常完成?如果能,則說明CloudStack云平臺運行出現(xiàn)異常。如果不能,則立即生成報警信息文件,并上傳至報警平臺。
根據(jù)收集到的異常信息,設計系統(tǒng)實現(xiàn)方案。
告警平臺收集并解析信息采集器上報的告警信息文件,按照預定告警方案進行信息發(fā)送,同時對歷史信息進行入庫保存。由于不同信息采集器運行在不同操作行為基礎上,因此,信息采集方式需根據(jù)實際運行情況進行改變。
采用確定格式文件作為告警信息文件,能夠方便實現(xiàn)不同系統(tǒng)之間的穩(wěn)定通信,針對CloudStack云平臺中的告警信息文件格式規(guī)定如下所示。
規(guī)定1:采用UTF-8統(tǒng)一編碼方式;
規(guī)定2:一旦告警系統(tǒng)硬件設備IP地址發(fā)生異常變化時,需重新命名新地址,如190121161852表示為2019年1月21日16時18分52秒;
規(guī)定3:告警信息項和內(nèi)容主要包括六個方面,詳細說明如下所示:
1)BigSystem:指出該信息所屬大業(yè)務范圍
2)SmallSystem:指出該信息所屬小業(yè)務范圍
3)Level:告警嚴重程度
4)Time:運行異常發(fā)現(xiàn)時間
5)Content:告警具體內(nèi)容
根據(jù)上述文件格式規(guī)定,告警平臺信息發(fā)送和匹配方式需依據(jù)下列公式:
{U|S.Za∈U.ZaaAndS.M∈S.Ma}
(1)
公式(1)中:S表示告警信息;M表示告警等級集合;Zaa表示大數(shù)據(jù)集合,其中包括Za小數(shù)據(jù)集合;U表示用戶組。告警方案主要體現(xiàn)在目標用戶和告警信息之間,CloudStack云平臺對目標用戶進行分組,通過構建告警信息,實現(xiàn)告警級別和用戶組之間的多映射關系,實現(xiàn)不同等級報警信息發(fā)送至不同用戶之中,確保告警信息發(fā)送的可靠性,由此設計告警處理實現(xiàn)流程,如下所示:
CloudStack云平臺啟動告警裝置后,按照系統(tǒng)配置相關檢測時間,及時將監(jiān)測結果匯報至檢測目錄之中,并查看是否存在異常文件。如果無異常文件,則需準備下次查詢處理;如果出現(xiàn)異常文件,則需對內(nèi)容進行解析,并將異常文件轉(zhuǎn)移到文件目錄之中。如果告警文件解析結果正常,則需按照固定形式發(fā)送處理方案,確定發(fā)送對象,并進行告警。一旦告警信息發(fā)送完成之后,需將相關信息進行保存,并將該信息存放到已處理文件之中。通過告警平臺對信息進行確認,則立刻停止告警,否則持續(xù)告警。
為了保證CloudStack云平臺異常運行告警系統(tǒng)能夠穩(wěn)定運行,需設計覆蓋告警系統(tǒng)不同功能點的測試方案,從性能角度對告警系統(tǒng)做出評估。
按照底層資源池、運維管理平臺、采集模塊、自服務門戶安裝順序搭建實驗平臺。其中硬件環(huán)境和軟件環(huán)境設置如表1所示。

表1 硬件環(huán)境和軟件環(huán)境設置
根據(jù)該運行環(huán)境,對測試結果進行分析。
在測試過程中,資源配置和告警服務運行情況如圖5所示。

圖5 資源配置和告警服務運行情況
以該運行情況為對照信息,將傳統(tǒng)系統(tǒng)與該系統(tǒng)進行對比分析。
兩種系統(tǒng)對CPU和內(nèi)存使用情況進行告警分析,對比結果如圖6所示。

圖6 兩種系統(tǒng)對CPU和內(nèi)存使用情況告警分析
由圖6可知:當實驗時間為60 s時,傳統(tǒng)系統(tǒng)CPU出現(xiàn)異常情況告警分析精準度為46%,內(nèi)存出現(xiàn)異常情況告警分析精準度為58%;當實驗時間為80 s時,傳統(tǒng)系統(tǒng)CPU出現(xiàn)異常情況告警分析精準度為25%,內(nèi)存出現(xiàn)異常情況告警分析精準度為26%;當實驗時間為100 s時,傳統(tǒng)系統(tǒng)CPU出現(xiàn)異常情況告警分析精準度為18%,內(nèi)存出現(xiàn)異常情況告警分析精準度為22%;當實驗時間為120 s時,傳統(tǒng)系統(tǒng)CPU出現(xiàn)異常情況告警分析精準度為16%,內(nèi)存出現(xiàn)異常情況告警分析精準度為16%;當實驗時間為160 s時,傳統(tǒng)系統(tǒng)CPU出現(xiàn)異常情況告警分析精準度與內(nèi)存出現(xiàn)異常情況告警分析精準度一致,都為5%。
CloudStack云平臺異常運行告警系統(tǒng),當實驗時間為20 s時,CPU出現(xiàn)異常情況告警分析精準度為92%,內(nèi)存出現(xiàn)異常情況告警分析精準度為83%;當實驗時間為80 s時,CPU出現(xiàn)異常情況告警分析精準度為98%,內(nèi)存出現(xiàn)異常情況告警分析精準度為92%;當實驗時間為120 s時,CPU出現(xiàn)異常情況告警分析精準度為90%,內(nèi)存出現(xiàn)異常情況告警分析精準度為94%。由此可知,CloudStack云平臺異常運行告警系統(tǒng)對CPU和內(nèi)存出現(xiàn)異常情況告警分析精準度較高。
兩種系統(tǒng)對硬盤和網(wǎng)絡讀寫出現(xiàn)異常情況進行告警分析,對比結果如表2所示。

表2 兩種系統(tǒng)對硬盤和網(wǎng)絡讀寫異常情況告警分析
由表2可知:在傳統(tǒng)系統(tǒng)中,當實驗次數(shù)為50次時,硬盤讀寫出現(xiàn)異常情況告警精準度達到最高58%,當實驗次數(shù)為10次時,告警精準度達到最低38%。而網(wǎng)絡讀寫出現(xiàn)異常情況告警精準度達到最高是在實驗次數(shù)為20次時,最高達到64%。當實驗次數(shù)為10次時,告警精準度達到最低58%。
在CloudStack云平臺系統(tǒng)中,硬盤讀寫出現(xiàn)異常情況告警精準度最高可達到98%,最低可達到94%;而網(wǎng)絡讀寫出現(xiàn)異常情況告警精準度最高可達到97%,最低可達到93%。由此可知,CloudStack云平臺異常運行告警系統(tǒng)對硬盤和網(wǎng)絡讀寫出現(xiàn)異常情況告警分析精準度較高。
綜上所述:無論是對CPU和內(nèi)存出現(xiàn)異常情況告警分析還是對硬盤和網(wǎng)絡讀寫出現(xiàn)異常情況告警分析,其結果精準度都比傳統(tǒng)系統(tǒng)要高,由此證實CloudStack云平臺異常運行告警系統(tǒng)能夠穩(wěn)定運行。
結合云計算特點,從告警系統(tǒng)適用性和準確性兩個角度進行方案設計,使系統(tǒng)具有高擴展性,通過對傳統(tǒng)告警系統(tǒng)全方位改造,能夠具有低藕合和低干預性特征。搭建CloudStack云平臺下的軟硬件環(huán)境,同時對云資源調(diào)度進行研究,分析不同設備部署方案,通過實驗結果,可顯示出新型告警系統(tǒng)能夠滿足項目基本需求。
對于云平臺異常運行告警系統(tǒng)設計與實現(xiàn),是在開源平臺上進行的整體設計,針對部分軟件功能進行優(yōu)化處理,實現(xiàn)平臺自動化水平,加強數(shù)據(jù)安全,保證不同數(shù)據(jù)之間能夠安全共享。為了能夠解決多目標存在的相互沖突,需進行多方面綜合優(yōu)化,研究不同硬件設備部署的多目標優(yōu)化算法,為云平臺高效共享提供有效解決途徑。