劉殊
(廣東體育職業(yè)技術(shù)學(xué)院 廣東 廣州 510663)
基于Hadoop的分布式云監(jiān)控平臺(tái)系統(tǒng)的研究與設(shè)計(jì)
劉殊
(廣東體育職業(yè)技術(shù)學(xué)院 廣東 廣州 510663)
為了維護(hù)云服務(wù)器及各種云計(jì)算服務(wù)的穩(wěn)定運(yùn)行,在云計(jì)算技術(shù)和云監(jiān)控技術(shù)的基礎(chǔ)上,設(shè)計(jì)了基于Hadoop的分布式監(jiān)控平臺(tái)系統(tǒng)。通過對(duì)Hadoop技術(shù)的研究,著重對(duì)應(yīng)用服務(wù)器的進(jìn)程、站點(diǎn)及日志進(jìn)行監(jiān)控設(shè)計(jì),利用云監(jiān)控和大數(shù)據(jù)分析技術(shù)對(duì)采集的監(jiān)控?cái)?shù)據(jù)進(jìn)行分析提供異常、報(bào)警等分析服務(wù),為云平臺(tái)用戶提供穩(wěn)定的云監(jiān)控。
云監(jiān)控;Hadoop;分布式;云計(jì)算
隨著云計(jì)算技術(shù)的不斷發(fā)展,各行各業(yè)正通過云計(jì)算的應(yīng)用來改變傳統(tǒng)的技術(shù)構(gòu)架和運(yùn)作模式[1-3]。云計(jì)算是基于龐大低成本的計(jì)算機(jī)群為用戶提供各種云服務(wù),這些服務(wù)的可靠性、可用性依賴于分布式架構(gòu)或特定計(jì)算機(jī)模型,隨著廉價(jià)服務(wù)集群的大規(guī)模出現(xiàn),容易形成不穩(wěn)定的集群,造成宕機(jī)或者服務(wù)時(shí)效等事件,因此如何保障云計(jì)算服務(wù)的可靠與可用是推廣云計(jì)算技術(shù)需要解決的問題[4]。文中基于Hadoop技術(shù)研究設(shè)計(jì)了分布式云監(jiān)控平臺(tái)系統(tǒng),該系統(tǒng)具有較低資源消耗的監(jiān)控程序,能以分布式構(gòu)架運(yùn)行,云服務(wù)器或云計(jì)算服務(wù)出現(xiàn)異常時(shí),能夠及時(shí)報(bào)警、解決,為保障云服務(wù)的穩(wěn)定運(yùn)行具有重要意義。
1.1 彈性云平臺(tái)
本次設(shè)計(jì)的云監(jiān)控平臺(tái)是在實(shí)驗(yàn)室的彈性云平臺(tái)上進(jìn)行的。云計(jì)算框架有IaaS、PaaS及SaaS 3種,框架不同提供的服務(wù)不同,SaaS層除了能提供監(jiān)控功能外,還可以提供一些基礎(chǔ)服務(wù);IaaS層主要提供資源監(jiān)控和預(yù)測(cè);PaaS層提供平臺(tái)服務(wù)監(jiān)控。云監(jiān)控能為各層應(yīng)用提供響應(yīng)的保障[5-6]。彈性云平臺(tái)可以為用戶提供基礎(chǔ)設(shè)施層服務(wù)。用戶可根據(jù)自己的需求定制云服務(wù)器配置、操作系統(tǒng),配置所需的運(yùn)行環(huán)境,采用客戶端或者命令終端的方式訪問虛擬機(jī)。在云主機(jī)中,不同的服務(wù)可以通過擴(kuò)展的方式來獲得,比如安全盾、鏡像、云監(jiān)控等,類似于軟件系統(tǒng),硬件系統(tǒng)也可以實(shí)現(xiàn)功能擴(kuò)展,在保證低成本的情況下,高效的使用各種服務(wù)。
1.2 Hadoop簡(jiǎn)介
Hadoop是Apache的一個(gè)開源項(xiàng)目,是可以提供開源、可靠、可擴(kuò)展的分布式計(jì)算工具[7]。Hadoop主要包括HDFS和MapReduce兩個(gè)組件,分別用于解決大數(shù)據(jù)的存儲(chǔ)和計(jì)算。
1.2.1 HDFS
HDFS是獨(dú)立的分布式文件系統(tǒng),為MapReduce計(jì)算框架提供存儲(chǔ)服務(wù),具有較高的容錯(cuò)性和高可用性,基于塊存儲(chǔ)以流數(shù)據(jù)模式進(jìn)行訪問,數(shù)據(jù)節(jié)點(diǎn)之間相互備份[8-9]。默認(rèn)存儲(chǔ)塊大小為64M,用戶也可以自定義大小。HDFS是基于主從結(jié)構(gòu)的分布式文件系統(tǒng),結(jié)構(gòu)上包括NameNode目錄管理、DataNode的數(shù)據(jù)存儲(chǔ)和 Client的訪問客戶端 3部分。NameNode主要負(fù)責(zé)系統(tǒng)的命名空間、集群的配置管理以及存儲(chǔ)塊的復(fù)制;DataNode是分布式文件系統(tǒng)存儲(chǔ)的基本單元;Client為與分布式文件系統(tǒng)的應(yīng)用程序。體系結(jié)構(gòu)圖如圖1所示。
圖1 HDFS體系構(gòu)架圖
1.2.2 MapReduce
MapReduce是一種分布式計(jì)算框架,適用于離線大數(shù)據(jù)計(jì)算[10]。采用函數(shù)式編程模式,利用Map和Reduce函數(shù)來實(shí)現(xiàn)復(fù)雜的并行計(jì)算。原理如圖2所示。
圖2 分布式計(jì)算原理
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ù)端程序,負(fù)責(zé)周期性的輪詢各節(jié)點(diǎn),獲取數(shù)據(jù)。gmond是客戶端程序,負(fù)責(zé)周期性的收集各個(gè)計(jì)算節(jié)點(diǎn)的性能狀態(tài),完成Gmond計(jì)算節(jié)點(diǎn)之間相互傳輸備份。監(jiān)控的數(shù)據(jù)采用壓縮的XML格式進(jìn)行傳輸。Ganglia的工作方式分為單播模式和多播模式。采用單播模式時(shí)數(shù)據(jù)在gmetad和gmond之間進(jìn)行通信。在多播模式下,數(shù)據(jù)采集節(jié)點(diǎn)也是數(shù)據(jù)接收節(jié)點(diǎn),采集節(jié)點(diǎn)可以向同一組的其他節(jié)點(diǎn)發(fā)送數(shù)據(jù),也可接收數(shù)據(jù)。默認(rèn)模式為多播模式。
云監(jiān)控平臺(tái)是以分布式的框架運(yùn)行在云計(jì)算集群中,為云服務(wù)器、程序或分布式應(yīng)用提供基礎(chǔ)監(jiān)控的分布式應(yīng)用服務(wù)[12-15]。云監(jiān)控可以根據(jù)用戶的實(shí)際需求利用腳本化的方式進(jìn)行部署,在顯示系統(tǒng)中,用戶可以提交監(jiān)控任務(wù)。任務(wù)調(diào)度器執(zhí)行任務(wù)后,可在web展示系統(tǒng)中查看任務(wù)狀態(tài)并進(jìn)行管理,當(dāng)出現(xiàn)異常情況時(shí)對(duì)其進(jìn)行捕獲和警報(bào)。云監(jiān)控覆蓋整個(gè)云計(jì)算的基礎(chǔ)設(shè)施,以友好的web界面進(jìn)行監(jiān)控。功能結(jié)構(gòu)圖如圖3所示。
圖3 云監(jiān)控功能結(jié)構(gòu)原理
2.1 中央任務(wù)調(diào)度器的設(shè)計(jì)與實(shí)現(xiàn)
本次設(shè)計(jì)中央任務(wù)調(diào)度器采用Rcactor設(shè)計(jì)模式,可以分離讀寫I/O,通過單線程進(jìn)行派發(fā),實(shí)現(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ù)保存在隊(duì)列中,等待執(zhí)行,結(jié)構(gòu)框架圖如圖4所示。通過Zookeeper來對(duì)程序運(yùn)行情況進(jìn)行監(jiān)控,如果出現(xiàn)某節(jié)點(diǎn)監(jiān)控程序失效,則會(huì)重新發(fā)送運(yùn)行指令。
圖4 調(diào)度器處理事件原理圖
2.2 應(yīng)用服務(wù)器監(jiān)控設(shè)計(jì)與實(shí)現(xiàn)
對(duì)于進(jìn)程級(jí)別來說,監(jiān)控主要對(duì)進(jìn)程的資源使用情況、運(yùn)行狀態(tài)等進(jìn)行監(jiān)控。在云計(jì)算的應(yīng)用上,云主機(jī)主要運(yùn)行管理系統(tǒng)、網(wǎng)站,因此本次設(shè)計(jì)應(yīng)用服務(wù)監(jiān)控,主要針對(duì)應(yīng)用管理、資源管理、代碼部署及線程信息等內(nèi)容。監(jiān)控的指標(biāo)如表1所示。
監(jiān)控程序通過JMX來實(shí)現(xiàn),JMX是用來監(jiān)控JVM的框架和API,可以用來查詢和更改應(yīng)用的配置、狀態(tài)及管理網(wǎng)絡(luò),同時(shí)還可以進(jìn)行遠(yuǎn)程管理API。程序可利用MBcan獲取應(yīng)用程序信息。在監(jiān)控Tomcat服務(wù)器中,包括Tomcat MBcan和Java MBcan的信息。對(duì)Tomcat服務(wù)器監(jiān)控控制在每10秒執(zhí)行一次,獲取當(dāng)前jvm的運(yùn)行狀態(tài)數(shù)據(jù),并將其錄入MySQL數(shù)據(jù)庫,用戶登陸后,可從數(shù)據(jù)庫中調(diào)取相應(yīng)的監(jiān)控信息。
表1 監(jiān)控的指標(biāo)
2.3 站點(diǎn)監(jiān)控設(shè)計(jì)與實(shí)現(xiàn)
站點(diǎn)的監(jiān)控主要針對(duì)應(yīng)用服務(wù)器運(yùn)行的web站點(diǎn)的運(yùn)行狀態(tài)進(jìn)行監(jiān)控,監(jiān)控的數(shù)據(jù)指標(biāo)如表2所示。
表2 監(jiān)控?cái)?shù)據(jù)指標(biāo)
站點(diǎn)監(jiān)控程序包括協(xié)議監(jiān)控模塊和警報(bào)監(jiān)控模塊2部分,站點(diǎn)的監(jiān)控實(shí)行通過各種網(wǎng)絡(luò)訪問協(xié)議,來對(duì)當(dāng)前的運(yùn)行狀態(tài)進(jìn)行全面掌控。在協(xié)議監(jiān)控模塊的實(shí)現(xiàn)中通過使用任務(wù)隊(duì)列和線程池的方式,進(jìn)行并行監(jiān)控。掌握站點(diǎn)當(dāng)前的運(yùn)行狀態(tài),對(duì)各項(xiàng)監(jiān)控指標(biāo)進(jìn)行預(yù)警設(shè)置,用于檢測(cè)web服務(wù)器或web站點(diǎn)的異常情況。
當(dāng)出現(xiàn)異常時(shí),及時(shí)向管理員發(fā)送警報(bào)消息,對(duì)異常處進(jìn)行處理。對(duì)于站點(diǎn)的異常檢測(cè)一般采用基于網(wǎng)絡(luò)協(xié)議的監(jiān)控來實(shí)現(xiàn),在監(jiān)控進(jìn)行的同時(shí),對(duì)連接失效的進(jìn)程進(jìn)行統(tǒng)計(jì),當(dāng)統(tǒng)計(jì)的數(shù)量達(dá)到設(shè)定的閾值時(shí),啟動(dòng)報(bào)警,并繼續(xù)跟蹤錯(cuò)誤信息,并分析是否需要發(fā)送警報(bào)消息。原理圖如圖5所示。
2.4 日志監(jiān)控的設(shè)計(jì)與實(shí)現(xiàn)
訪問日志收集、程序日志收集、日志分析是日志監(jiān)控程序的主要組成部分,在功能上實(shí)現(xiàn)日志的收集、存儲(chǔ)、查詢和分析,其次通過實(shí)時(shí)監(jiān)控程序日志,提出程序異常警報(bào)機(jī)制、異常分析等建議。在日志監(jiān)控中,用戶只需配置產(chǎn)生日志的格式和形式,就能實(shí)現(xiàn)數(shù)據(jù)的采集,并通過分析將其進(jìn)行歸檔至HBase。
啟動(dòng)日志監(jiān)控時(shí),將Tomcat的日志進(jìn)行統(tǒng)一,文件為conf/server.xml。則輸出格式配置為:
日志分析就是將需要分析的內(nèi)容和算法通過MapReduce來實(shí)現(xiàn),然后由LogAnalyzeService統(tǒng)一按時(shí)調(diào)度執(zhí)行這些任務(wù),整個(gè)過程在MapReduce分布式計(jì)算框架的基礎(chǔ)上實(shí)現(xiàn)。輸出日志格式之前首先構(gòu)造日志對(duì)象Logger類,包含各種基礎(chǔ)指標(biāo)數(shù)據(jù)。如表3所示。
表3 logger表
此次設(shè)計(jì)的基于Hodoop的分布式云監(jiān)控平臺(tái)在彈性云平臺(tái)上進(jìn)行,監(jiān)控層次包括應(yīng)用程序監(jiān)控系統(tǒng)、站點(diǎn)監(jiān)控系統(tǒng)和日志監(jiān)控系統(tǒng)三層,并對(duì)各個(gè)監(jiān)控系統(tǒng)進(jìn)行了詳細(xì)闡釋,為云計(jì)算服務(wù)器和程序的運(yùn)行提供監(jiān)控服務(wù)和異常警報(bào),為云平臺(tái)用戶提供穩(wěn)定的云監(jiān)控。
[1]孫熠,梁棟云,王文杰.Web應(yīng)用程序安全性測(cè)試平臺(tái)關(guān)鍵技術(shù)研究[J].信息安全與技術(shù),2014(1):32-35.
[2]沈青,董波,肖德寶.基于服務(wù)器集群的云監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2012(10):46-49.
[3]董波,沈青,肖德寶.云計(jì)算集群服務(wù)器系統(tǒng)監(jiān)控方法的研究[J].計(jì)算機(jī)工程與科學(xué),2012(10):28-31.
[4]許丞,劉洪,譚良.Hadoop云平臺(tái)的一種新的任務(wù)調(diào)度和監(jiān)控機(jī)制[J].計(jì)算機(jī)科學(xué),2013(1):56-58.
[5]胡光民,周亮,柯立新.基于Hadoop的網(wǎng)絡(luò)日志分析系統(tǒng)研究[J].電腦知識(shí)與技術(shù),2010(22):13-16.
[6]楊旻.Hadoop云計(jì)算平臺(tái)在高校實(shí)驗(yàn)室教學(xué)環(huán)境中的實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2011(9):34-38.
[7]劉軍.Hadoop大數(shù)據(jù)處理[M].北京:人民郵電出版社,2013.
[8]黃立勤,柳燕煌.基于MapReduce并行的Apriori算法改進(jìn)研究[J].福州大學(xué)學(xué)報(bào):自然科學(xué)版,2011(5):36-39.
[9]宋均,祝林.基于云計(jì)算的海量數(shù)據(jù)處理平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].電訊技術(shù),2012,52(4):566-570.
[10]蔡柳青.基于MongoDB的云監(jiān)控設(shè)計(jì)與應(yīng)用[D].北京:北京交通大學(xué),2011.
[11]胡金安.云數(shù)據(jù)中心計(jì)算資源監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2012.
[12]孫寅林.基于分布式計(jì)算平臺(tái)的海量日志分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2012.
[13]曾金梁.分布式日志分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2014.
[14]胡善杰.在云環(huán)境下的數(shù)據(jù)挖掘算法的并行化研究[D].成都:電子科技大學(xué),2013.
[15]白云龍.基于Hadoop的數(shù)據(jù)挖掘算法研究與實(shí)現(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 稿件編號(hào):201602087
國家自然科學(xué)基金資助項(xiàng)目(61561055);廣東省高等職業(yè)教育教學(xué)改革項(xiàng)目(201401130)
劉 殊(1968—),男,吉林榆樹人,碩士研究生,高級(jí)講師。研究方向:計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)。