《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設計應用 > 多云平臺監(jiān)控系統(tǒng)的設計與實現(xiàn)
多云平臺監(jiān)控系統(tǒng)的設計與實現(xiàn)
2017年微型機與應用第10期
楊靖琦,胡勛
中國電子科學研究院,北京 100041
摘要: 近年來,隨著云計算的興起和逐步發(fā)展,云平臺已成為各類企業(yè)和機構(gòu)提供服務的主要方式,為保證云平臺高效穩(wěn)定運行,需要對云平臺進行實時監(jiān)控。針對以上需求,基于開源監(jiān)控工具Ganglia和Ceilometer,設計并實現(xiàn)了一個多云平臺監(jiān)控系統(tǒng),提供云平臺、物理機和虛擬機中內(nèi)存、CPU和硬盤等資源使用情況的監(jiān)控能力,同時,通過物理資源管理、監(jiān)控策略管理、日志管理和用戶管理等功能,提升監(jiān)控系統(tǒng)的可擴展水平和用戶友好程度。最終,實現(xiàn)對多云平臺全方位可視化的管理和控制。
Abstract:
Key words :

  楊靖琦,胡勛

 ?。ㄖ袊娮涌茖W研究院,北京 100041)

  摘要:近年來,隨著云計算的興起和逐步發(fā)展,云平臺已成為各類企業(yè)和機構(gòu)提供服務的主要方式,為保證云平臺高效穩(wěn)定運行,需要對云平臺進行實時監(jiān)控。針對以上需求,基于開源監(jiān)控工具Ganglia和Ceilometer,設計并實現(xiàn)了一個多云平臺監(jiān)控系統(tǒng),提供云平臺、物理機虛擬機中內(nèi)存、CPU和硬盤等資源使用情況的監(jiān)控能力,同時,通過物理資源管理、監(jiān)控策略管理、日志管理和用戶管理等功能,提升監(jiān)控系統(tǒng)的可擴展水平和用戶友好程度。最終,實現(xiàn)對多云平臺全方位可視化的管理和控制。

  關(guān)鍵詞:云平臺;監(jiān)控系統(tǒng);物理機;虛擬機

  中圖分類號:TP399文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.10.030

  引用格式:楊靖琦,胡勛.多云平臺監(jiān)控系統(tǒng)的設計與實現(xiàn)[J].微型機與應用,2017,36(10):102-105.

0引言

  計算平臺的發(fā)展主要經(jīng)歷了以主機為中心和以PC為中心兩個階段,目前正處于以網(wǎng)絡為中心的階段。在這一階段,隨著云計算技術(shù)的快速發(fā)展,以云平臺為代表的網(wǎng)絡計算平臺逐漸成為主要的資源提供方式。企業(yè)可以基于分散的計算、存儲等物理資源按照不同組織架構(gòu)搭建云平臺,動態(tài)地為用戶提供所需的計算、存儲等資源,提高資源利用率,降低運營復雜度和成本[1]。隨著云平臺的不斷增多和規(guī)模的不斷擴大,平臺監(jiān)控難度急劇增加,傳統(tǒng)的人工查詢方式已不適用于多個大規(guī)模云平臺的監(jiān)控和管理,為實現(xiàn)更有效的云平臺管理,需提供云平臺資源的統(tǒng)一監(jiān)控管理能力,從而直觀地了解平臺運行狀態(tài),最大限度地使用系統(tǒng)的資源。

  目前,國內(nèi)已開展了對云平臺監(jiān)控的研究,其中一些研究[2]實現(xiàn)了OpenStack云平臺中虛擬資源的監(jiān)控,另外一些研究[3]實現(xiàn)了OpenStack云平臺中物理資源的監(jiān)控,但現(xiàn)有云平臺監(jiān)控研究成果大多針對單個云平臺的單一資源類型,無法提供多個平臺中物理資源和虛擬資源的多功能、一體化監(jiān)控系統(tǒng)。為解決現(xiàn)有問題,本文設計并實現(xiàn)了面向多個云平臺、覆蓋物理資源和虛擬資源的監(jiān)控系統(tǒng)。

  本文的多云平臺監(jiān)控系統(tǒng)面向OpenStack云平臺設計和實現(xiàn),具有可移植性,其中物理資源監(jiān)控是平臺無關(guān)的,無需修改即可適用于其他平臺,虛擬資源監(jiān)控可通過修改訪問接口的方式應用于對其他云平臺的監(jiān)控,由于文章篇幅限制,在此不做贅述。

1云平臺及監(jiān)控方法

  1.1OpenStack

  OpenStack是美國國家航天局和Rackspace公司共同開發(fā)的開源云計算平臺,可支撐公有云或私有云的建設和管理,為用戶提供IaaS(基礎設施即服務)層的云服務。OpenStack包括Nova、Swift、Glance和Keystone等主要模塊,分別提供計算、存儲、鏡像和安全認證等能力,由于其具備模塊松耦合、組件配置靈活、易于二次開發(fā)等優(yōu)點,已成為應用最廣的開源云平臺[4]。

  1.2Ceilometer

  2012年10月,隨著OpenStack Folsom的發(fā)布,Ceilometer項目發(fā)布了第一個版本,從2013年開始,Ceilometer作為OpenStack發(fā)行版的一部分發(fā)布,提供OpenStack平臺的虛擬機監(jiān)控功能。為適應云計算環(huán)境節(jié)點大規(guī)模動態(tài)調(diào)整的特點,Ceilometer通過插件機制,提供了可靈活擴展的架構(gòu)。

Ceilometer通過輪詢計算節(jié)點上的虛擬機實例獲取監(jiān)控信息,并在數(shù)據(jù)庫中將監(jiān)控信息進行持久化存儲,為計費和監(jiān)控提供支撐。

Image 001.jpg

  1.3Ganglia

  目前,在集群計算機監(jiān)控領(lǐng)域主要有Cacti、Parmon、Nagios、Ganglia等軟件系統(tǒng)。通過對此類軟件的比較分析可知,Ganglia具備功能模塊豐富、監(jiān)控功能強、可擴展性高等優(yōu)點,同時具有良好的移植性,支撐在Linux、Solaris、Mac OS和Windows等主流操作系統(tǒng)上運行,可滿足復雜環(huán)境下的集群監(jiān)控需求[5]。

  Ganglia是加州學校伯克利分校發(fā)起的計算機集群監(jiān)視項目[6],用于監(jiān)控大規(guī)模集群的運行狀態(tài),如:CPU、內(nèi)存、網(wǎng)絡負載、硬盤利用率等。Ganglia采用分布式的監(jiān)控結(jié)構(gòu),通過安裝gmond和gmetad軟件實現(xiàn)集群的監(jiān)控,其中,被監(jiān)控的節(jié)點安裝gmond實現(xiàn)節(jié)點運行狀態(tài)的收集和上報;監(jiān)控節(jié)點安裝gmetad實現(xiàn)與gmond通信,通過輪詢的方式收集區(qū)域內(nèi)節(jié)點上報的狀態(tài)信息。Ganglia使用RRDTool工具實現(xiàn)采集數(shù)據(jù)的存儲和處理,并可通過個性化配置實現(xiàn)基于Web的圖形化顯示。

2系統(tǒng)設計

  2.1系統(tǒng)架構(gòu)設計

  多云平臺監(jiān)控系統(tǒng)提供云平臺、服務器和虛擬機監(jiān)控數(shù)據(jù)的獲取、處理和展現(xiàn)功能,其系統(tǒng)架構(gòu)如圖1所示。

  資源層:依托分布式服務器設備,基于OpenStack開源軟件,搭建異構(gòu)云計算平臺,可為用戶按需提供物理資源和虛擬資源,是監(jiān)控系統(tǒng)監(jiān)控主體。

  監(jiān)控層:基于Ganglia軟件實現(xiàn)服務器資源狀態(tài)監(jiān)控,基于Ceilometer組件實現(xiàn)虛擬機資源狀態(tài)監(jiān)控,通過對服務器和虛擬機監(jiān)控信息的獲取和融合處理,為展示層提供所需狀態(tài)數(shù)據(jù),同時根據(jù)資源監(jiān)控策略,實現(xiàn)資源狀態(tài)告警和利用率告警信息生成。

  展示層:以Web頁面方式進行信息展示,提供異構(gòu)云監(jiān)控和異構(gòu)云管理兩類功能,實現(xiàn)異構(gòu)云平臺資源信息和狀態(tài)的統(tǒng)一監(jiān)視和控制。其中:

  多云平臺監(jiān)控主要展現(xiàn)云平臺總體狀態(tài)、云平臺監(jiān)控、服務器監(jiān)控、虛擬機監(jiān)控等相關(guān)信息。

  (1)云平臺總體狀態(tài):實時監(jiān)控數(shù)據(jù)中心所包含的服務器、虛擬機的數(shù)量和相關(guān)信息;

  (2)云平臺監(jiān)控:對數(shù)據(jù)中心進行監(jiān)控,提供數(shù)據(jù)中心列表、地理位置、概述、運行狀態(tài)等信息的展示;

  (3)服務器監(jiān)控:對服務器進行監(jiān)控,提供服務器實時監(jiān)控信息,并展示服務器所包含的虛擬機信息;

  (4)虛擬機監(jiān)控:對虛擬機進行監(jiān)控,提供虛擬機實時監(jiān)控信息,并展示虛擬機配置。

  多云平臺管理主要提供物理資源管理、監(jiān)控策略管理、日志查詢和用戶管理等功能。

  (1)物理資源管理:提供數(shù)據(jù)中心、服務器等物理區(qū)域和物理設備信息添加修改功能;

  (2)監(jiān)控策略管理:對服務器和虛擬機等計算資源需要監(jiān)控的指標和閾值進行查看和設置;

  (3)日志查看:記錄計算資源監(jiān)控軟件產(chǎn)生的用戶操作日志和告警日志,提供分時段查看功能;

  (4)用戶管理:提供監(jiān)控系統(tǒng)用戶的增加、刪除、修改和查詢功能。

  2.2系統(tǒng)類圖與接口設計

  使用基于開放源碼的Web應用框架Django開發(fā)異構(gòu)云平臺監(jiān)控系統(tǒng),構(gòu)建支持監(jiān)控信息處理和顯示的MTV架構(gòu),即Model、Template、View,多云平臺監(jiān)控系統(tǒng)類圖如圖2所示。

  

Image 002.jpg

  其中,Model(Cloud、Server、VM、Log)定義資源信息和監(jiān)控數(shù)據(jù)的存儲格式,并且提供了數(shù)據(jù)庫訪問的API;View(IndexView、CloudView、ServerView、VmView、ManagerView)定義應該顯示哪些數(shù)據(jù),是業(yè)務邏輯處理模塊;Template定義View的數(shù)據(jù)應該如何被顯示。MonitorVM、GraphForServer、UpdateStatus三個類分別提供虛擬機狀態(tài)監(jiān)控、服務器狀態(tài)繪圖和狀態(tài)信息更新功能。

  按照系統(tǒng)類設計,異構(gòu)云平臺監(jiān)控系統(tǒng)內(nèi)部接口示意圖如圖3所示,接口標識見表1。

 

Image 003.jpg

  Image 004.jpg

  監(jiān)控狀態(tài)獲取VMStatus監(jiān)控虛擬機資源使用情況

3系統(tǒng)實現(xiàn)與部署

  基于OpenStack搭建多個云計算平臺[7],用來模擬四個數(shù)據(jù)中心,每個云平臺由1個控制節(jié)點和網(wǎng)絡節(jié)點及若干個計算節(jié)點組成,基于KVM的虛擬化技術(shù)實現(xiàn)計算資源的虛擬化,構(gòu)建彈性計算環(huán)境。其中環(huán)境配置及功能如表2所示。

Image 005.jpg

  所有節(jié)點通過2臺48口交換機相連,一臺負責控制流信息的交互,另一臺用于數(shù)據(jù)流信息的交互。環(huán)境中計算資源與外部網(wǎng)絡是隔離的,網(wǎng)絡節(jié)點單獨有一個網(wǎng)卡與外部網(wǎng)絡相連,通過GRE隧道協(xié)議,使得外部網(wǎng)絡環(huán)境中的用戶能夠登錄訪問虛擬機。

  通過安裝OpenStack的Ceilometer模塊和Ganglia軟件(Python版),多云平臺監(jiān)控系統(tǒng)可對多個云平臺節(jié)點進行監(jiān)控,并能夠動態(tài)適應集群規(guī)模調(diào)整,以適應混合云伸縮的需要,其安裝示意圖如圖4所示。

  多云平臺監(jiān)控服務器端:運行基于Django Web框架的多云平臺監(jiān)控軟件,通過獲取并處理Ceilometer和Ganglia的監(jiān)控數(shù)據(jù),實現(xiàn)對云平臺中虛擬資源和物理資源的監(jiān)控,為用戶提供基于瀏覽器的可視化交互界面,系統(tǒng)后臺數(shù)據(jù)存儲在MySQL數(shù)據(jù)庫中。

  Ceilometer:云平臺各節(jié)點安裝compute agent收集節(jié)點的狀態(tài)信息,實現(xiàn)虛擬機的監(jiān)控,Ceilometer監(jiān)控信息可存儲于MangoDB、MySQL、PostgreSQL和HBase等數(shù)據(jù)庫中,其中對MongoDB是支持最好的,本文系統(tǒng)使用MangoDB存儲虛擬機監(jiān)控信息。

  Ganglia:云平臺控制節(jié)點安裝gmetad和gmond,網(wǎng)絡節(jié)點和計算節(jié)點安裝gmond,通過修改源代碼,選取并配置所需監(jiān)控指標,實現(xiàn)集群整體和各物理節(jié)點CPU、內(nèi)存、硬盤和網(wǎng)絡負載等運行狀態(tài)監(jiān)控,Ganglia監(jiān)控數(shù)據(jù)默認存儲在RRD數(shù)據(jù)庫中。

  多云平臺監(jiān)控系統(tǒng)可實現(xiàn)對各個云平臺、服務器、虛擬機相關(guān)配置信息和運行狀態(tài)的監(jiān)控與管理。

4結(jié)論

  本文提出了基于Ganglia與Ceilometer的多云平臺監(jiān)控系統(tǒng)設計與實現(xiàn)方法,實現(xiàn)了多個云平臺服務器和虛擬機的一體化監(jiān)控,為云平臺資源運行情況提供統(tǒng)一的可視化監(jiān)控管理能力,提升平臺管理水平。在此基礎上,監(jiān)控系統(tǒng)的實現(xiàn)可為云平臺資源的組織、調(diào)度和分配提供決策依據(jù),提高資源使用的合理性。

Image 006.jpg

  參考文獻

 ?。?] 張建勛,古志民,鄭超. 云計算研究進展綜述[J]. 計算機應用研究, 2010,27(2):429-433.

  [2] 劉智超. 基于OpenStack的虛擬機集群監(jiān)控系統(tǒng)的設計與實現(xiàn)[D]. 北京:北京郵電大學,2014.

 ?。?] 尤海鵬. 基于Ganglia的數(shù)據(jù)中心監(jiān)控平臺設計[D]. 濟南:山東大學, 2014.

 ?。?] 李志軍,孔朋朋,雷振伍. 基于OpenStack的私有云平臺設計[J]. 微型機與應用, 2016,35(9):24-26.

 ?。?] 吳怡鳳,歸強,羅明宇,等. 集群計算機監(jiān)控技術(shù)研究[J].計算機與現(xiàn)代化, 2013(11):218-222.

 ?。?] MASSIE M, LI B, NICHOLES B, et al.Monitoring with Ganglia[M].O’Reilly Media,2012.

 ?。?] 王霄飛. 基于OpenStack構(gòu)建私有云計算平臺[D]. 廣州:華南理工大學, 2013.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。