云監(jiān)控[1-2]涉及監(jiān)控基礎(chǔ)設(shè)施、平臺(tái)和定制指標(biāo)整個(gè)過(guò)程,可確保系統(tǒng)工作負(fù)載在最佳水平運(yùn)行。云監(jiān)控主要用于分析系統(tǒng)中每個(gè)任務(wù)的內(nèi)存使用情況,有助于確定任務(wù)的使用模式,并允許在達(dá)到某些閾值時(shí)設(shè)置警報(bào),以平衡工作負(fù)載并保持高可用性。云監(jiān)控?cái)?shù)據(jù)分析[3]涉及大量信息的查詢和處理操作。在此過(guò)程中,需要從任意粒度范圍(例如以分鐘或小時(shí)聚合)中檢索特定屬性的數(shù)據(jù),以估計(jì)概率分布函數(shù)(probability distribution function,PDF),并預(yù)測(cè)未來(lái)的工作負(fù)載[4]。由于跟蹤的數(shù)量可能很大,隨著跟蹤數(shù)據(jù)的積累,這些操作需要一個(gè)可擴(kuò)展且可靠的云體系結(jié)構(gòu)。
為此,國(guó)內(nèi)外學(xué)者針對(duì)云監(jiān)控技術(shù)進(jìn)行了大量研究,并取得了豐碩成果。賴朝安等[5]研究了雙層隨機(jī)規(guī)劃的云監(jiān)控平臺(tái)定價(jià)策略,結(jié)合極點(diǎn)算法建立服務(wù)商與客戶之間的動(dòng)態(tài)博弈模型。尹學(xué)淵等[6]提出了1種基于虛擬機(jī)內(nèi)存實(shí)時(shí)在線分析的虛擬機(jī)監(jiān)控技術(shù),實(shí)現(xiàn)了虛擬機(jī)細(xì)粒度狀態(tài)信息監(jiān)控。楊淑棉等[7]提出了一種基礎(chǔ)設(shè)施即服務(wù)(infrastructure as a service,IaaS)模式下基于物理內(nèi)存分析的實(shí)時(shí)監(jiān)控取證方法,可實(shí)現(xiàn)虛擬機(jī)中的異常行為檢測(cè),從而有效防止虛擬主機(jī)運(yùn)行惡意軟件、違法犯罪等問(wèn)題。上述方法僅針對(duì)各自領(lǐng)域的云監(jiān)控平臺(tái)進(jìn)行了研究,無(wú)法擴(kuò)展到其他數(shù)據(jù)集,模型可拓性有待提高。為了允許高級(jí)跟蹤數(shù)據(jù)分析,所設(shè)想的云體系結(jié)構(gòu)應(yīng)該適應(yīng)對(duì)任意跟蹤數(shù)據(jù)集的訪問(wèn)。此外,云架構(gòu)需要一個(gè)基于萬(wàn)維網(wǎng)(world wide web,Web)的界面來(lái)構(gòu)建結(jié)構(gòu)化的數(shù)據(jù)查詢,并顯示結(jié)果。
為此,本文在研究了集成云平臺(tái)和分布式計(jì)算基礎(chǔ)上,提出了一種包含雙層結(jié)構(gòu)的云監(jiān)控?cái)?shù)據(jù)分析平臺(tái),并對(duì)系統(tǒng)中數(shù)據(jù)密集型跟蹤分析的體系結(jié)構(gòu)和關(guān)鍵技術(shù)進(jìn)行研究。
云監(jiān)控?cái)?shù)據(jù)分析平臺(tái)體系結(jié)構(gòu)如圖1所示。該結(jié)構(gòu)主要分為2個(gè)子系統(tǒng):其一為較小數(shù)據(jù)量提供數(shù)據(jù)分析方法的核心結(jié)構(gòu);其二為分析大型數(shù)據(jù)集提供有效分布式計(jì)算算法的擴(kuò)展結(jié)構(gòu)。
圖1 云監(jiān)控?cái)?shù)據(jù)分析平臺(tái)體系結(jié)構(gòu)
Fig.1 Architecture of cloud monitoring data analysis platform
核心架構(gòu)可分為3層:頂層為智能搜索層;中間層為應(yīng)用程序接口(application programming interface,API);底層為云計(jì)算層(包括物理接口)。這3層相互作用,進(jìn)行工作負(fù)載跟蹤,并監(jiān)視任何異常模式。
核心結(jié)構(gòu)工作過(guò)程如圖2所示。
圖2 核心結(jié)構(gòu)工作過(guò)程框圖
Fig.2 Block diagram of core structure working process
智能搜索層為用戶提供了編輯分析、配置參數(shù)、啟動(dòng)數(shù)據(jù)訪問(wèn)和處理請(qǐng)求及顯示查詢結(jié)果等功能。該層提供了用戶與云平臺(tái)[8]交互的源,并充當(dāng)客戶端應(yīng)用程序與云平臺(tái)通信的API接口。用戶向云平臺(tái)發(fā)送服務(wù)請(qǐng)求,一旦認(rèn)證成功,將在客戶端上生成含有關(guān)分析結(jié)果的信息的查詢結(jié)果。此外,考慮到用戶感興趣的目標(biāo)不只一個(gè),智能搜索模塊也提供類似于目錄的自動(dòng)索引功能。
API層充當(dāng)連接智能搜索層和存儲(chǔ)跟蹤的云計(jì)算層的橋梁。API層的核心構(gòu)建在3個(gè)模塊上,即搜索模塊、分析包和頁(yè)面生成器。需要注意的是,系統(tǒng)所有資源都是通過(guò)超文本傳輸協(xié)議(hyper text transfer protocol,HTTP)發(fā)送處理請(qǐng)求。作為響應(yīng),可調(diào)用分析包。分析包利用搜索模塊提取感興趣的數(shù)據(jù)集。然后,搜索模塊通過(guò)HTTP,由云平臺(tái)的API向云服務(wù)商發(fā)送一個(gè)搜索查詢。當(dāng)返回?cái)?shù)據(jù)后,分析包生成結(jié)果并向客戶端發(fā)送成功響應(yīng)通知。在接收到成功響應(yīng)時(shí),系統(tǒng)將初始化另一個(gè)請(qǐng)求,以便通過(guò)HTTP協(xié)議繪制該特定數(shù)據(jù)集的預(yù)測(cè)數(shù)據(jù)。最后,系統(tǒng)發(fā)送一個(gè)生成頁(yè)面的請(qǐng)求,并調(diào)用頁(yè)面生成器模塊生成分析結(jié)果。
云計(jì)算層的數(shù)據(jù)接口主要進(jìn)行數(shù)據(jù)存儲(chǔ)和訪問(wèn),且基于云平臺(tái)主要使用切分和復(fù)制實(shí)現(xiàn)搜索、索引功能。此外,云計(jì)算層還包括眾多物理組件,如交換機(jī)、接口、數(shù)據(jù)庫(kù)等。
如果用戶想要監(jiān)控?cái)?shù)據(jù)中的異常值,首先與智能搜索層交互,輸入所需的參數(shù)來(lái)啟動(dòng)該過(guò)程。同時(shí),智能搜索層交互將帶有指定參數(shù)的HTTP請(qǐng)求發(fā)送到特定Web服務(wù)。當(dāng)認(rèn)證成功,該服務(wù)立即建立連接,并從云平臺(tái)檢索所需數(shù)量的數(shù)據(jù)。最后,將這些數(shù)據(jù)處理的結(jié)果以頁(yè)面形式呈現(xiàn)給用戶。
云監(jiān)控?cái)?shù)據(jù)分析平臺(tái)除核心架構(gòu)外,還擴(kuò)展了一個(gè)額外的組件,以便對(duì)大量數(shù)據(jù)集進(jìn)行復(fù)雜的計(jì)算。該組件由多個(gè)分布式復(fù)雜計(jì)算應(yīng)用程序復(fù)合構(gòu)成,用于管理和調(diào)度用戶應(yīng)用程序。擴(kuò)展結(jié)構(gòu)包含請(qǐng)求/接收資源管理器、數(shù)據(jù)節(jié)點(diǎn)組件(可連接到其他Hadoop分布式文件系統(tǒng)(hadoop distributed file system,HDFS)數(shù)據(jù)節(jié)點(diǎn))和服務(wù)協(xié)議這3部分。擴(kuò)展結(jié)構(gòu)有利于用戶在Hadoop文件系統(tǒng)[9]中存儲(chǔ)數(shù)據(jù),并為用戶提供了高可用性和可擴(kuò)展的存儲(chǔ)功能。
擴(kuò)展結(jié)構(gòu)的工作過(guò)程如圖3所示。
圖3 擴(kuò)展結(jié)構(gòu)的工作過(guò)程框圖
Fig.3 Block diagram of extended structure working process
與核心結(jié)構(gòu)類似,用戶通過(guò)特定的輸入?yún)?shù)訪問(wèn)數(shù)據(jù)頁(yè)面。然后,這些參數(shù)以HTTP請(qǐng)求的形式轉(zhuǎn)發(fā)到API中。API執(zhí)行請(qǐng)求,并將接收到的參數(shù)包裝為JSON消息[10]發(fā)送到云平臺(tái)的主節(jié)點(diǎn)。節(jié)點(diǎn)接收J(rèn)SON消息并將查詢請(qǐng)求提交給云服務(wù)商。需要注意的是,API中的請(qǐng)求發(fā)送模塊將以JSON格式編碼的消息傳遞到云平臺(tái)的主節(jié)點(diǎn)。同時(shí),運(yùn)行在云平臺(tái)主節(jié)點(diǎn)上的請(qǐng)求接收器模塊接收消息并對(duì)其進(jìn)行解碼。節(jié)點(diǎn)間的消息傳遞使用高級(jí)消息隊(duì)列協(xié)議(advanced message queuing protocol,AMQP)[11]執(zhí)行。當(dāng)成功完成任務(wù)后,云平臺(tái)將保存結(jié)果,并通過(guò)安全外殼協(xié)議(secure shell,SSH)將結(jié)果傳輸?shù)紸PI,并向用戶發(fā)送一個(gè)成功響應(yīng)。此外,API將發(fā)送另一個(gè)請(qǐng)求,從而為特定結(jié)果生成查詢頁(yè)面。
擴(kuò)展結(jié)構(gòu)還支持相應(yīng)的機(jī)器學(xué)習(xí)庫(kù),如模糊C均值聚類算法[12],通過(guò)將跟蹤數(shù)據(jù)劃分成所需的集合來(lái)分析跟蹤數(shù)據(jù)。
由于現(xiàn)實(shí)環(huán)境中的數(shù)據(jù)大多為非結(jié)構(gòu)化數(shù)據(jù),導(dǎo)入系統(tǒng)時(shí)沒(méi)有直接可用于索引的功能,因此需要設(shè)計(jì)高效的數(shù)據(jù)索引方法。本文使用形式化語(yǔ)言自動(dòng)為每個(gè)正在加載的記錄創(chuàng)建唯一id。自動(dòng)生成的唯一id在架構(gòu)文件中的定義如下所示。
<name=″*″,class=″*″,index=″true″>
<uniqueKey>id<uniqueKey>
該定義中:“*”為省缺值,可自由定義;name為記錄的命名;class為記錄所屬類別;index為true時(shí)為可被索引,否則表示不可索引;id為記錄唯一標(biāo)識(shí)。
云平臺(tái)支持不同類型的數(shù)據(jù)上傳技術(shù),例如索引處理程序、結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)導(dǎo)入處理程序以及通過(guò)網(wǎng)絡(luò)上傳數(shù)據(jù)。
數(shù)據(jù)查詢通過(guò)HTTP請(qǐng)求發(fā)送到云平臺(tái),請(qǐng)求包含集合名稱和數(shù)據(jù)量。例如,如果用戶打算從云平臺(tái)請(qǐng)求10 000條數(shù)據(jù)記錄,則查詢示例表示如下。
s=SearchOptions();s.query.rows('10000')
該示例中:SearchOptions為查詢操作函數(shù);s為其實(shí)例化。
需要注意的是,云平臺(tái)僅支持JSON格式的數(shù)據(jù)查詢操作。當(dāng)查詢完成后,將在HTTP響應(yīng)中返回查詢的數(shù)據(jù)集。返回的數(shù)據(jù)集由分析模塊進(jìn)一步處理。
本節(jié)通過(guò)案例驗(yàn)證本文所提模型:通過(guò)分析跟蹤數(shù)據(jù),預(yù)測(cè)系統(tǒng)工作量,并了解時(shí)間序列中的運(yùn)行模式。系統(tǒng)開(kāi)發(fā)環(huán)境使用JAVA中的Spring框架作為輸入,開(kāi)發(fā)架構(gòu)的工作原型,以跟蹤特定時(shí)間戳下海量搜索引擎數(shù)據(jù)庫(kù)服務(wù)器作業(yè)時(shí)的CPU和內(nèi)存使用情況。為簡(jiǎn)化仿真過(guò)程,作如下假設(shè)。
①任務(wù)或作業(yè)名稱以數(shù)字標(biāo)志符進(jìn)行區(qū)分。
②CPU和內(nèi)存的消耗可通過(guò)線性變換模擬。
③任意大數(shù)據(jù)集的平均值服從正態(tài)分布。
本文采用Python庫(kù)實(shí)現(xiàn)了核心組件分析包中的CPU負(fù)載使用情況預(yù)測(cè)。
分析考慮10 000個(gè)數(shù)據(jù)點(diǎn)的數(shù)據(jù)集,將數(shù)據(jù)塊分成4個(gè)子塊,并令每個(gè)子塊的持續(xù)時(shí)間為L。預(yù)測(cè)CPU的負(fù)載是指在L的每個(gè)周期結(jié)束時(shí),根據(jù)上一個(gè)子塊的趨勢(shì)及增長(zhǎng)對(duì)下一個(gè)子塊CUP負(fù)載進(jìn)行預(yù)測(cè)。最后,利用三次指數(shù)平滑方法對(duì)長(zhǎng)度為4L的時(shí)間序列數(shù)據(jù)進(jìn)行預(yù)測(cè)。圖4中,平滑常數(shù)α=0.2、β=0.2、γ=0.05。
核心結(jié)構(gòu)負(fù)載預(yù)測(cè)指數(shù)平滑結(jié)果如圖4所示。
圖4 核心結(jié)構(gòu)負(fù)載預(yù)測(cè)指數(shù)平滑結(jié)果
Fig.4 Exponential smoothing results of core structure load forecasting
擴(kuò)展組件分析結(jié)果如圖5所示。
圖5 擴(kuò)展組件分析結(jié)果
Fig.5 Extended component analysis results
如前文所示,擴(kuò)展組件分析時(shí)首先使用機(jī)器學(xué)習(xí)k-均值聚類算法對(duì)時(shí)間序列工作負(fù)載數(shù)據(jù)進(jìn)行分類,即將跟蹤數(shù)據(jù)分類為不同的k值。工作負(fù)載分類旨在發(fā)現(xiàn)跟蹤數(shù)據(jù)中任務(wù)事件的異常。本節(jié)在106個(gè)數(shù)據(jù)點(diǎn)上運(yùn)行聚類算法,得到不同的k值,即4、8和12。由圖5可知,在監(jiān)控?cái)?shù)據(jù)集中,代表任務(wù)CPU和內(nèi)存使用的大多數(shù)數(shù)據(jù)點(diǎn)的值都相當(dāng)?shù)汀_@些任務(wù)事件平均分別使用約0.001 6和0.003 1CPU和內(nèi)存。另一方面,只有較少的任務(wù)具有較高的CPU和內(nèi)存使用率,即平均分別為0.287和0.018。
為提高云監(jiān)控中數(shù)據(jù)分析能力,本文設(shè)計(jì)了包含雙層結(jié)構(gòu)的云監(jiān)控?cái)?shù)據(jù)分析平臺(tái)。該平臺(tái)主要包含2個(gè)子系統(tǒng):其一為較小數(shù)據(jù)量提供數(shù)據(jù)分析方法的核心結(jié)構(gòu);其二為分析大型數(shù)據(jù)集提供有效分布式計(jì)算算法的擴(kuò)展結(jié)構(gòu)。該平臺(tái)為系統(tǒng)CPU及內(nèi)存使用分析過(guò)程提供了一定依據(jù)。
然而,本文系統(tǒng)在仿真時(shí)存在諸多限定,如數(shù)據(jù)集為模擬數(shù)據(jù)、系統(tǒng)運(yùn)行時(shí)未考慮網(wǎng)絡(luò)攻擊等復(fù)雜行為。后續(xù)研究一方面可將大數(shù)據(jù)及人工智能技術(shù)引入系統(tǒng),進(jìn)一步提升系統(tǒng)預(yù)測(cè)能力;另一方面還可研究區(qū)塊鏈、信息安全等技術(shù),以滿足系統(tǒng)數(shù)據(jù)安全及防止數(shù)據(jù)泄漏等需求。
? 2019-2021 All rights reserved. 北京轉(zhuǎn)創(chuàng)國(guó)際管理咨詢有限公司 京ICP備19055770號(hào)-1
Beijing TransVenture International Management Consulting Co., Ltd.
地址:梅州市豐順縣留隍鎮(zhèn)新興路881號(hào)
北京市大興區(qū)新源大街25號(hào)院恒大未來(lái)城7號(hào)樓1102室
北京市海淀區(qū)西禪寺(華北項(xiàng)目部)
深圳市南山區(qū)高新科技園南區(qū)R2-B棟4樓12室
深圳市福田區(qū)華能大廈
佛山順德區(qū)北滘工業(yè)大道云創(chuàng)空間
汕頭市龍湖區(qū)泰星路9號(hào)壹品灣三區(qū)
長(zhǎng)沙市芙蓉區(qū)韶山北路139號(hào)文化大廈
站點(diǎn)地圖 網(wǎng)站建設(shè):騰虎網(wǎng)絡(luò)
歡迎來(lái)到本網(wǎng)站,請(qǐng)問(wèn)有什么可以幫您?
稍后再說(shuō) 現(xiàn)在咨詢