劉殊
(廣東體育職業(yè)技術(shù)學(xué)院 廣東 廣州 510663)
基于Hadoop的分布式云監(jiān)控平臺系統(tǒng)的研究與設(shè)計
劉殊
(廣東體育職業(yè)技術(shù)學(xué)院 廣東 廣州 510663)
為了維護云服務(wù)器及各種云計算服務(wù)的穩(wěn)定運行,在云計算技術(shù)和云監(jiān)控技術(shù)的基礎(chǔ)上,設(shè)計了基于Hadoop的分布式監(jiān)控平臺系統(tǒng)。通過對Hadoop技術(shù)的研究,著重對應(yīng)用服務(wù)器的進程、站點及日志進行監(jiān)控設(shè)計,利用云監(jiān)控和大數(shù)據(jù)分析技術(shù)對采集的監(jiān)控數(shù)據(jù)進行分析提供異常、報警等分析服務(wù),為云平臺用戶提供穩(wěn)定的云監(jiān)控。
云監(jiān)控;Hadoop;分布式;云計算
隨著云計算技術(shù)的不斷發(fā)展,各行各業(yè)正通過云計算的應(yīng)用來改變傳統(tǒng)的技術(shù)構(gòu)架和運作模式[1-3]。云計算是基于龐大低成本的計算機群為用戶提供各種云服務(wù),這些服務(wù)的可靠性、可用性依賴于分布式架構(gòu)或特定計算機模型,隨著廉價服務(wù)集群的大規(guī)模出現(xiàn),容易形成不穩(wěn)定的集群,造成宕機或者服務(wù)時效等事件,因此如何保障云計算服務(wù)的可靠與可用是推廣云計算技術(shù)需要解決的問題[4]。文中基于Hadoop技術(shù)研究設(shè)計了分布式云監(jiān)控平臺系統(tǒng),該系統(tǒng)具有較低資源消耗的監(jiān)控程序,能以分布式構(gòu)架運行,云服務(wù)器或云計算服務(wù)出現(xiàn)異常時,能夠及時報警、解決,為保障云服務(wù)的穩(wěn)定運行具有重要意義。
1.1 彈性云平臺
本次設(shè)計的云監(jiān)控平臺是在實驗室的彈性云平臺上進行的。云計算框架有IaaS、PaaS及SaaS 3種,框架不同提供的服務(wù)不同,SaaS層除了能提供監(jiān)控功能外,還可以提供一些基礎(chǔ)服務(wù);IaaS層主要提供資源監(jiān)控和預(yù)測;PaaS層提供平臺服務(wù)監(jiān)控。云監(jiān)控能為各層應(yīng)用提供響應(yīng)的保障[5-6]。彈性云平臺可以為用戶提供基礎(chǔ)設(shè)施層服務(wù)。用戶可根據(jù)自己的需求定制云服務(wù)器配置、操作系統(tǒng),配置所需的運行環(huán)境,采用客戶端或者命令終端的方式訪問虛擬機。在云主機中,不同的服務(wù)可以通過擴展的方式來獲得,比如安全盾、鏡像、云監(jiān)控等,類似于軟件系統(tǒng),硬件系統(tǒng)也可以實現(xiàn)功能擴展,在保證低成本的情況下,高效的使用各種服務(wù)。
1.2 Hadoop簡介
Hadoop是Apache的一個開源項目,是可以提供開源、可靠、可擴展的分布式計算工具[7]。Hadoop主要包括HDFS和MapReduce兩個組件,分別用于解決大數(shù)據(jù)的存儲和計算。
1.2.1 HDFS
HDFS是獨立的分布式文件系統(tǒng),為MapReduce計算框架提供存儲服務(wù),具有較高的容錯性和高可用性,基于塊存儲以流數(shù)據(jù)模式進行訪問,數(shù)據(jù)節(jié)點之間相互備份[8-9]。默認存儲塊大小為64M,用戶也可以自定義大小。HDFS是基于主從結(jié)構(gòu)的分布式文件系統(tǒng),結(jié)構(gòu)上包括NameNode目錄管理、DataNode的數(shù)據(jù)存儲和 Client的訪問客戶端 3部分。NameNode主要負責(zé)系統(tǒng)的命名空間、集群的配置管理以及存儲塊的復(fù)制;DataNode是分布式文件系統(tǒng)存儲的基本單元;Client為與分布式文件系統(tǒng)的應(yīng)用程序。體系結(jié)構(gòu)圖如圖1所示。

圖1 HDFS體系構(gòu)架圖
1.2.2 MapReduce
MapReduce是一種分布式計算框架,適用于離線大數(shù)據(jù)計算[10]。采用函數(shù)式編程模式,利用Map和Reduce函數(shù)來實現(xiàn)復(fù)雜的并行計算。原理如圖2所示。

圖2 分布式計算原理
1.3 Ganglia監(jiān)控
Ganglia是一種應(yīng)用比較廣泛的開源監(jiān)控系統(tǒng),常見主要應(yīng)用于集群監(jiān)控。Ganglia主要包括 gmetad、gmond及 web front-end組件3部分[11]。Gmetad是服務(wù)端程序,負責(zé)周期性的輪詢各節(jié)點,獲取數(shù)據(jù)。gmond是客戶端程序,負責(zé)周期性的收集各個計算節(jié)點的性能狀態(tài),完成Gmond計算節(jié)點之間相互傳輸備份。監(jiān)控的數(shù)據(jù)采用壓縮的XML格式進行傳輸。Ganglia的工作方式分為單播模式和多播模式。采用單播模式時數(shù)據(jù)在gmetad和gmond之間進行通信。在多播模式下,數(shù)據(jù)采集節(jié)點也是數(shù)據(jù)接收節(jié)點,采集節(jié)點可以向同一組的其他節(jié)點發(fā)送數(shù)據(jù),也可接收數(shù)據(jù)。默認模式為多播模式。
云監(jiān)控平臺是以分布式的框架運行在云計算集群中,為云服務(wù)器、程序或分布式應(yīng)用提供基礎(chǔ)監(jiān)控的分布式應(yīng)用服務(wù)[12-15]。云監(jiān)控可以根據(jù)用戶的實際需求利用腳本化的方式進行部署,在顯示系統(tǒng)中,用戶可以提交監(jiān)控任務(wù)。任務(wù)調(diào)度器執(zhí)行任務(wù)后,可在web展示系統(tǒng)中查看任務(wù)狀態(tài)并進行管理,當(dāng)出現(xiàn)異常情況時對其進行捕獲和警報。云監(jiān)控覆蓋整個云計算的基礎(chǔ)設(shè)施,以友好的web界面進行監(jiān)控。功能結(jié)構(gòu)圖如圖3所示。

圖3 云監(jiān)控功能結(jié)構(gòu)原理
2.1 中央任務(wù)調(diào)度器的設(shè)計與實現(xiàn)
本次設(shè)計中央任務(wù)調(diào)度器采用Rcactor設(shè)計模式,可以分離讀寫I/O,通過單線程進行派發(fā),實現(xiàn)高效同步處理。中央任務(wù)調(diào)度器主要完成web監(jiān)控系統(tǒng)和分布式監(jiān)控程序之間的任務(wù)轉(zhuǎn)發(fā)。將用戶提交的監(jiān)控任務(wù)利用統(tǒng)一的借口提交給中央任務(wù)調(diào)度器,之后將監(jiān)控任務(wù)保存在隊列中,等待執(zhí)行,結(jié)構(gòu)框架圖如圖4所示。通過Zookeeper來對程序運行情況進行監(jiān)控,如果出現(xiàn)某節(jié)點監(jiān)控程序失效,則會重新發(fā)送運行指令。

圖4 調(diào)度器處理事件原理圖
2.2 應(yīng)用服務(wù)器監(jiān)控設(shè)計與實現(xiàn)
對于進程級別來說,監(jiān)控主要對進程的資源使用情況、運行狀態(tài)等進行監(jiān)控。在云計算的應(yīng)用上,云主機主要運行管理系統(tǒng)、網(wǎng)站,因此本次設(shè)計應(yīng)用服務(wù)監(jiān)控,主要針對應(yīng)用管理、資源管理、代碼部署及線程信息等內(nèi)容。監(jiān)控的指標(biāo)如表1所示。
監(jiān)控程序通過JMX來實現(xiàn),JMX是用來監(jiān)控JVM的框架和API,可以用來查詢和更改應(yīng)用的配置、狀態(tài)及管理網(wǎng)絡(luò),同時還可以進行遠程管理API。程序可利用MBcan獲取應(yīng)用程序信息。在監(jiān)控Tomcat服務(wù)器中,包括Tomcat MBcan和Java MBcan的信息。對Tomcat服務(wù)器監(jiān)控控制在每10秒執(zhí)行一次,獲取當(dāng)前jvm的運行狀態(tài)數(shù)據(jù),并將其錄入MySQL數(shù)據(jù)庫,用戶登陸后,可從數(shù)據(jù)庫中調(diào)取相應(yīng)的監(jiān)控信息。

表1 監(jiān)控的指標(biāo)
2.3 站點監(jiān)控設(shè)計與實現(xiàn)
站點的監(jiān)控主要針對應(yīng)用服務(wù)器運行的web站點的運行狀態(tài)進行監(jiān)控,監(jiān)控的數(shù)據(jù)指標(biāo)如表2所示。

表2 監(jiān)控數(shù)據(jù)指標(biāo)
站點監(jiān)控程序包括協(xié)議監(jiān)控模塊和警報監(jiān)控模塊2部分,站點的監(jiān)控實行通過各種網(wǎng)絡(luò)訪問協(xié)議,來對當(dāng)前的運行狀態(tài)進行全面掌控。在協(xié)議監(jiān)控模塊的實現(xiàn)中通過使用任務(wù)隊列和線程池的方式,進行并行監(jiān)控。掌握站點當(dāng)前的運行狀態(tài),對各項監(jiān)控指標(biāo)進行預(yù)警設(shè)置,用于檢測web服務(wù)器或web站點的異常情況。
當(dāng)出現(xiàn)異常時,及時向管理員發(fā)送警報消息,對異常處進行處理。對于站點的異常檢測一般采用基于網(wǎng)絡(luò)協(xié)議的監(jiān)控來實現(xiàn),在監(jiān)控進行的同時,對連接失效的進程進行統(tǒng)計,當(dāng)統(tǒng)計的數(shù)量達到設(shè)定的閾值時,啟動報警,并繼續(xù)跟蹤錯誤信息,并分析是否需要發(fā)送警報消息。原理圖如圖5所示。
2.4 日志監(jiān)控的設(shè)計與實現(xiàn)
訪問日志收集、程序日志收集、日志分析是日志監(jiān)控程序的主要組成部分,在功能上實現(xiàn)日志的收集、存儲、查詢和分析,其次通過實時監(jiān)控程序日志,提出程序異常警報機制、異常分析等建議。在日志監(jiān)控中,用戶只需配置產(chǎn)生日志的格式和形式,就能實現(xiàn)數(shù)據(jù)的采集,并通過分析將其進行歸檔至HBase。
啟動日志監(jiān)控時,將Tomcat的日志進行統(tǒng)一,文件為conf/server.xml。則輸出格式配置為:


日志分析就是將需要分析的內(nèi)容和算法通過MapReduce來實現(xiàn),然后由LogAnalyzeService統(tǒng)一按時調(diào)度執(zhí)行這些任務(wù),整個過程在MapReduce分布式計算框架的基礎(chǔ)上實現(xiàn)。輸出日志格式之前首先構(gòu)造日志對象Logger類,包含各種基礎(chǔ)指標(biāo)數(shù)據(jù)。如表3所示。

表3 logger表
此次設(shè)計的基于Hodoop的分布式云監(jiān)控平臺在彈性云平臺上進行,監(jiān)控層次包括應(yīng)用程序監(jiān)控系統(tǒng)、站點監(jiān)控系統(tǒng)和日志監(jiān)控系統(tǒng)三層,并對各個監(jiān)控系統(tǒng)進行了詳細闡釋,為云計算服務(wù)器和程序的運行提供監(jiān)控服務(wù)和異常警報,為云平臺用戶提供穩(wěn)定的云監(jiān)控。
[1]孫熠,梁棟云,王文杰.Web應(yīng)用程序安全性測試平臺關(guān)鍵技術(shù)研究[J].信息安全與技術(shù),2014(1):32-35.
[2]沈青,董波,肖德寶.基于服務(wù)器集群的云監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)[J].計算機工程與科學(xué),2012(10):46-49.
[3]董波,沈青,肖德寶.云計算集群服務(wù)器系統(tǒng)監(jiān)控方法的研究[J].計算機工程與科學(xué),2012(10):28-31.
[4]許丞,劉洪,譚良.Hadoop云平臺的一種新的任務(wù)調(diào)度和監(jiān)控機制[J].計算機科學(xué),2013(1):56-58.
[5]胡光民,周亮,柯立新.基于Hadoop的網(wǎng)絡(luò)日志分析系統(tǒng)研究[J].電腦知識與技術(shù),2010(22):13-16.
[6]楊旻.Hadoop云計算平臺在高校實驗室教學(xué)環(huán)境中的實現(xiàn)[J].電腦知識與技術(shù),2011(9):34-38.
[7]劉軍.Hadoop大數(shù)據(jù)處理[M].北京:人民郵電出版社,2013.
[8]黃立勤,柳燕煌.基于MapReduce并行的Apriori算法改進研究[J].福州大學(xué)學(xué)報:自然科學(xué)版,2011(5):36-39.
[9]宋均,祝林.基于云計算的海量數(shù)據(jù)處理平臺設(shè)計與實現(xiàn)[J].電訊技術(shù),2012,52(4):566-570.
[10]蔡柳青.基于MongoDB的云監(jiān)控設(shè)計與應(yīng)用[D].北京:北京交通大學(xué),2011.
[11]胡金安.云數(shù)據(jù)中心計算資源監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2012.
[12]孫寅林.基于分布式計算平臺的海量日志分析系統(tǒng)的設(shè)計與實現(xiàn)[D].西安:西安電子科技大學(xué),2012.
[13]曾金梁.分布式日志分析系統(tǒng)的設(shè)計與實現(xiàn)[D].北京:北京郵電大學(xué),2014.
[14]胡善杰.在云環(huán)境下的數(shù)據(jù)挖掘算法的并行化研究[D].成都:電子科技大學(xué),2013.
[15]白云龍.基于Hadoop的數(shù)據(jù)挖掘算法研究與實現(xiàn)[D].北京:北京郵電大學(xué),2011.
Research and design of distributed cloud monitoring platform system based on Hadoop
LIU Shu
(Guangdong Sports Vocational and Technical College,Guangzhou 510663,China)
In order to maintain the cloud server and a variety of cloud computing the stable operation of the service,in the cloud computing and cloud monitoring technology based on Design Based on Hadoop distributed monitoring platform system.Through the research on Hadoop technology,focusing on the process of application server,site and logs of monitoring design,using the cloud monitoring and data analysis technology to collect monitoring data analysis provide exception alarm and other analysis services,cloud platform for the user to provide stable cloud monitoring.
cloud monitoring;Hadoop;distributed;cloud computing
TN918
A
1674-6236(2016)15-0009-04
2016-02-22 稿件編號:201602087
國家自然科學(xué)基金資助項目(61561055);廣東省高等職業(yè)教育教學(xué)改革項目(201401130)
劉 殊(1968—),男,吉林榆樹人,碩士研究生,高級講師。研究方向:計算機網(wǎng)絡(luò)技術(shù)。