賈寶軍,徐雷,郭玉華,熊微,李素粉
(中國(guó)聯(lián)合網(wǎng)絡(luò)通信有限公司研究院,北京 100032)
跨數(shù)據(jù)中心的統(tǒng)一監(jiān)控研究與實(shí)現(xiàn)
賈寶軍,徐雷,郭玉華,熊微,李素粉
(中國(guó)聯(lián)合網(wǎng)絡(luò)通信有限公司研究院,北京 100032)
提出了一種能夠支撐多數(shù)據(jù)中心和多私有云環(huán)境的監(jiān)控系統(tǒng)解決方案。通過采用分布式框架,重新封裝Zabbix API和OpenStack API,實(shí)現(xiàn)了壓力分擔(dān)、易于擴(kuò)展的統(tǒng)一監(jiān)控系統(tǒng)。該方案對(duì)于研究類似的分布式集群調(diào)度系統(tǒng)具有重要意義。
統(tǒng)一監(jiān)控系統(tǒng);虛擬化;資源池
IT系統(tǒng)的監(jiān)控技術(shù)從信息化伊始就一直存在和發(fā)展著。小到單獨(dú)的IT系統(tǒng),大到成百上千臺(tái)的服務(wù)器和網(wǎng)絡(luò)設(shè)備,都有或大或小的監(jiān)控系統(tǒng)。開源社區(qū)也形成了如Ganglia、Nagios、Splunk的監(jiān)控軟件,被不少公司的信息化部門采用。近年來,隨著云計(jì)算、大數(shù)據(jù)和互聯(lián)網(wǎng)的快速發(fā)展,IT基礎(chǔ)設(shè)施發(fā)生了根本轉(zhuǎn)變,監(jiān)控需求從一些獨(dú)立的系統(tǒng)要求轉(zhuǎn)變?yōu)檎w平臺(tái)化的系統(tǒng)要求。服務(wù)器不再是孤立的計(jì)算單元,而是通過云計(jì)算、大數(shù)據(jù)等平臺(tái)將計(jì)算、存儲(chǔ)資源統(tǒng)一起來,跨越數(shù)據(jù)中心范圍形成規(guī)模更大、統(tǒng)一管理的資源池,因此需要能夠監(jiān)控大規(guī)模、跨地域的虛擬資源的監(jiān)控系統(tǒng)。
私有云平臺(tái)除了采用商業(yè)的VMware和hypervisor作為虛擬化平臺(tái)外,還可以采用OpenStack等開源技術(shù)。本文提出的云平臺(tái)基于OpenStack底層技術(shù)進(jìn)行搭建。為構(gòu)建一套完整的統(tǒng)一監(jiān)控系統(tǒng),需要實(shí)現(xiàn)覆蓋全部物理機(jī)和虛擬機(jī)的監(jiān)控功能,以實(shí)現(xiàn)高效管理大規(guī)模軟硬件資源、動(dòng)態(tài)合理分配系統(tǒng)資源的目標(biāo)。
(1)物理機(jī)監(jiān)控,通過在物理機(jī)上安裝一個(gè)守護(hù)進(jìn)程,定時(shí)收集每個(gè)節(jié)點(diǎn)的狀態(tài)信息,最后匯總到監(jiān)控系統(tǒng)中,進(jìn)行存儲(chǔ)、歸納、分析、展示。智能平臺(tái)管理接口(IPMI)獲取監(jiān)控?cái)?shù)據(jù)。
(2)虛擬機(jī)監(jiān)控,通過底層的 Hypervisor進(jìn)程和虛擬化管理平臺(tái)收集相關(guān)的監(jiān)控項(xiàng)信息,發(fā)送給監(jiān)控系統(tǒng),存儲(chǔ)、歸納、分析、展示每臺(tái)虛擬機(jī)的監(jiān)控信息。
(3)監(jiān)控系統(tǒng)可以同時(shí)展示物理機(jī)和虛擬機(jī)的監(jiān)控視圖。
(4)對(duì)于多個(gè)OpenStack平臺(tái)的環(huán)境,需要同時(shí)監(jiān)聽多個(gè)Ceilometer來源以獲取不同虛擬化平臺(tái)下虛擬機(jī)的監(jiān)控?cái)?shù)據(jù),匯總上報(bào)到監(jiān)控系統(tǒng)中。
隨著IT資源的虛擬化,數(shù)據(jù)中心間的區(qū)隔也變得日益模糊。用戶不再關(guān)心自己的硬件到底部署在什么地方,只關(guān)心軟件系統(tǒng)的服務(wù)能力是否滿足業(yè)務(wù)需求,這樣就要求底層資源池能提供一定的QoS保障,或者具有資源使用的調(diào)優(yōu)能力。要實(shí)現(xiàn)該要求,必須有縱觀全局的監(jiān)控能力,依據(jù)監(jiān)控指標(biāo)制定資源使用策略,實(shí)現(xiàn)資源的自動(dòng)或智能調(diào)配,保障軟件系統(tǒng)的能力要求。
因歷史原因遺留下來的一些規(guī)模較小的數(shù)據(jù)中心,也需要納入統(tǒng)一資源池的環(huán)境中。當(dāng)下互聯(lián)網(wǎng)的系統(tǒng)需求往往會(huì)急劇膨脹,有限的IT資源很難滿足互聯(lián)網(wǎng)快速發(fā)展的需求,這樣勢(shì)必要將以往孤立的小規(guī)模數(shù)據(jù)中心打通,提供統(tǒng)一的服務(wù)能力。
Zabbix是開源社區(qū)監(jiān)控軟件的后起之秀,集成了SNMP、agent、IPMI等多種數(shù)據(jù)采集方式,方便在不同環(huán)境中使用,完善了監(jiān)控和圖形化顯示功能。
Zabbix軟件具備一定的分布式系統(tǒng)管理能力,可以監(jiān)控小型和大型的分布式環(huán)境,并將所有歷史數(shù)據(jù)、趨勢(shì)和配置信息存儲(chǔ)在數(shù)據(jù)庫(kù)中。Zabbix所有的邏輯運(yùn)算都在服務(wù)器端執(zhí)行,對(duì)監(jiān)控對(duì)象的性能影響很小。
Zabbix代理(proxy)支持分布式能力,可以代表Zabbix服務(wù)器收集性能和可用數(shù)據(jù),承擔(dān)采集數(shù)據(jù)的任務(wù)并減輕Zabbix服務(wù)器的負(fù)載。同時(shí),使用Zabbix代理是實(shí)施統(tǒng)一和分布式監(jiān)控最簡(jiǎn)單的方式,因?yàn)樗械目蛻舳撕痛硐蛲粋€(gè)Zabbix服務(wù)器報(bào)告數(shù)據(jù),并且所有數(shù)據(jù)集中保存在服務(wù)器數(shù)據(jù)庫(kù)中。Zabbix代理可在監(jiān)控遠(yuǎn)程區(qū)域、擁有不可靠鏈接的區(qū)域時(shí)使用。當(dāng)監(jiān)控?cái)?shù)以千計(jì)的設(shè)備時(shí),Zabbix代理可分擔(dān)Zabbix服務(wù)器的負(fù)載。Zabbix分布式架構(gòu)如圖1所示。
采用Zabbix作為監(jiān)控系統(tǒng)可以支持分布式集中管理,用于分布式環(huán)境監(jiān)控,但也存在明顯缺點(diǎn)。首先,Zabbix方案需要在被監(jiān)控的主機(jī)上安裝agent,這樣會(huì)侵害用戶的隱私,而且agent也存在被用戶卸載的情況;其次,所有數(shù)據(jù)都集中保存在數(shù)據(jù)庫(kù)中,Zabbix監(jiān)控系統(tǒng)產(chǎn)生的數(shù)據(jù)量很大,數(shù)據(jù)庫(kù)會(huì)成為系統(tǒng)發(fā)展的瓶頸;最后,Zabbix代理的方案受限于代理性能,當(dāng)代理服務(wù)的監(jiān)控機(jī)器數(shù)量較多時(shí),很難滿足資源的監(jiān)控要求。綜上所述,Zabbix不是一個(gè)能夠滿足云平臺(tái)和多數(shù)據(jù)中心統(tǒng)一監(jiān)控的軟件方案。
Dubbo是一個(gè)分布式服務(wù)框架,致力于提供高性能和透明化的RPC遠(yuǎn)程服務(wù)調(diào)用方案以及SOA服務(wù)治理方案。其核心部分如下所述。
(1)遠(yuǎn)程通信
提供對(duì)多種基于長(zhǎng)連接的NIO框架的抽象封裝,包括多種線程模型、序列化以及“請(qǐng)求—響應(yīng)”模式的信息交換方式,像調(diào)用本地方法一樣調(diào)用遠(yuǎn)程方法。
圖1 Zabbix分布式架構(gòu)
(2)集群容錯(cuò)
提供基于接口方法的透明遠(yuǎn)程過程的調(diào)用,包括多協(xié)議支持、軟負(fù)載均衡、失敗容錯(cuò)、地址路由、動(dòng)態(tài)配置等集群支持。
(3)自動(dòng)發(fā)現(xiàn)
基于注冊(cè)中心目錄服務(wù),使服務(wù)消費(fèi)方能動(dòng)態(tài)查找服務(wù)提供方,使地址透明,使服務(wù)提供方可以平滑增加或減少機(jī)器。
Dubbo架構(gòu)示意如圖2所示。
系統(tǒng)包括5種不同的角色:服務(wù)提供者、服務(wù)消費(fèi)者、服務(wù)注冊(cè)中心、服務(wù)監(jiān)控中心和服務(wù)運(yùn)行容器。服務(wù)提供者是暴露服務(wù)的服務(wù)提供方;服務(wù)消費(fèi)者是調(diào)用遠(yuǎn)程分布式服務(wù)的服務(wù)使用方;服務(wù)注冊(cè)中心是系統(tǒng)的基礎(chǔ)和核心,是服務(wù)提供者和服務(wù)消費(fèi)者溝通的橋梁;服務(wù)監(jiān)控中心負(fù)責(zé)統(tǒng)計(jì)各服務(wù)調(diào)用次數(shù)、調(diào)用時(shí)間以及服務(wù)提供者的服務(wù)運(yùn)行上報(bào)信息等;服務(wù)運(yùn)行容器啟動(dòng)、加載、運(yùn)行服務(wù)提供者。具體角色功能如下所述。
(1)服務(wù)注冊(cè)中心提供集中的服務(wù)注冊(cè)、服務(wù)訂閱、服務(wù)信息通知及服務(wù)監(jiān)控功能,并提供代理模式的服務(wù)調(diào)用能力。
(2)服務(wù)提供者負(fù)責(zé)提供具體的服務(wù),并在服務(wù)啟動(dòng)后向集群服務(wù)管理系統(tǒng)進(jìn)行服務(wù)注冊(cè),并定期將服務(wù)運(yùn)行統(tǒng)計(jì)信息(如服務(wù)性能數(shù)據(jù)、服務(wù)使用情況等)上報(bào)給監(jiān)控中心。
(3)服務(wù)消費(fèi)者需要在服務(wù)啟動(dòng)后,主動(dòng)向集群服務(wù)管理系統(tǒng)訂閱所需的服務(wù)。當(dāng)消費(fèi)者訂購(gòu)的服務(wù)信息發(fā)生變化時(shí),向訂閱的消費(fèi)者發(fā)送異步消息通知。
(4)服務(wù)提供者及服務(wù)消費(fèi)者采用長(zhǎng)連接方式與集群服務(wù)管理系統(tǒng)進(jìn)行通信。
(5)監(jiān)控中心統(tǒng)計(jì)服務(wù)消費(fèi)者和服務(wù)提供者的性能指標(biāo)等,并向服務(wù)注冊(cè)中心匯報(bào)服務(wù)提供者的服務(wù)運(yùn)行上報(bào)情況。
(6)服務(wù)運(yùn)行容器提供Web服務(wù)容器功能,負(fù)責(zé)啟動(dòng)、加載、運(yùn)行服務(wù)提供者。
采用Zabbix作為監(jiān)控能力的提供層,監(jiān)控系統(tǒng)重新定制portal以滿足跨數(shù)據(jù)中心的監(jiān)控以及統(tǒng)一的物理資源和虛擬資源的監(jiān)控。
采用Dubbo框架對(duì)Zabbix API和OpenStack API進(jìn)行重新封裝,如圖3所示,實(shí)現(xiàn)分布式監(jiān)控系統(tǒng)。這樣監(jiān)控門戶對(duì)數(shù)據(jù)的訪問變成由Dubbo引導(dǎo)的訪問。Zabbix服務(wù)通過API方式由Dubbo服務(wù)提供者提供,用戶請(qǐng)求作為Dubbo下的服務(wù)消費(fèi)者向服務(wù)器提供者發(fā)送請(qǐng)求信息。
當(dāng)監(jiān)控多個(gè)數(shù)據(jù)中心時(shí),在每個(gè)數(shù)據(jù)中心部署一套或多套Zabbix軟件系統(tǒng),Dubbo服務(wù)提供者調(diào)用Zabbix系統(tǒng)API實(shí)現(xiàn)監(jiān)控能力,Dubbo服務(wù)消費(fèi)者負(fù)責(zé)處理用戶請(qǐng)求,通過調(diào)用Dubbo服務(wù)提供者響應(yīng)請(qǐng)求,Dubbo服務(wù)消費(fèi)者和服務(wù)提供者都需要首先在服務(wù)注冊(cè)中心完成注冊(cè)。當(dāng)用戶通過portal訪問某一機(jī)器的監(jiān)控信息時(shí),需要根據(jù)區(qū)域標(biāo)識(shí)符來決定由哪個(gè)Zabbix服務(wù)器提供監(jiān)控源,從而引導(dǎo)用戶請(qǐng)求到對(duì)應(yīng)的Zabbix服務(wù)器。
對(duì)于數(shù)據(jù)中心有一個(gè)或多個(gè)云平臺(tái)的情況,首先對(duì)OpenStack云平臺(tái)的監(jiān)控服務(wù)設(shè)置單獨(dú)的Dubbo服務(wù)提供者和服務(wù)消費(fèi)者,將Ceilometer API封裝為實(shí)現(xiàn)Dubbo服務(wù)提供者,用戶請(qǐng)求通過Dubbo的服務(wù)消費(fèi)者模式執(zhí)行。每增加一個(gè)OpenStack云平臺(tái),新增相應(yīng)的Dubbo服務(wù)消費(fèi)者和服務(wù)提供者,從而實(shí)現(xiàn)對(duì)多個(gè)云平臺(tái)資源池的監(jiān)控。分布式監(jiān)控系統(tǒng)架構(gòu)如圖3所示。
圖2 Dubbo架構(gòu)示意
圖3 分布式監(jiān)控系統(tǒng)架構(gòu)
圖3描繪了兩個(gè)數(shù)據(jù)中心的場(chǎng)景,每個(gè)數(shù)據(jù)中心部署有一套OpenStack云平臺(tái),虛擬機(jī)的監(jiān)控?cái)?shù)據(jù)由OpenStack Ceilometer組件進(jìn)行采集和存儲(chǔ)。在每個(gè)數(shù)據(jù)中心部署一套Zabbix監(jiān)控系統(tǒng),通過Zabbix agent采集服務(wù)器的運(yùn)行狀態(tài)。來自portal的用戶請(qǐng)求通過Dubbo層轉(zhuǎn)發(fā)到相應(yīng)的Zabbix服務(wù)器和云平臺(tái),以獲取相應(yīng)的數(shù)據(jù)。
數(shù)據(jù)中心之間可通過公網(wǎng)或者VPN進(jìn)行連接,網(wǎng)絡(luò)應(yīng)提供足夠的帶寬和質(zhì)量保障。系統(tǒng)對(duì)監(jiān)控?cái)?shù)據(jù)的處理主要在本數(shù)據(jù)中心完成,監(jiān)控?cái)?shù)據(jù)的采集分別由各自數(shù)據(jù)中心的Zabbix服務(wù)器和云平臺(tái)完成,Dubbo的服務(wù)消費(fèi)者和服務(wù)提供者負(fù)責(zé)將處理好的數(shù)據(jù)返回給portal。數(shù)據(jù)中心間僅傳送必要的數(shù)據(jù)和Dubbo控制的數(shù)據(jù),大部分?jǐn)?shù)據(jù)流量限制在本地?cái)?shù)據(jù)中心。
圖4是其中服務(wù)器1 h內(nèi)的監(jiān)控情況。
本文提出了一種能夠支撐多數(shù)據(jù)中心IT資源統(tǒng)一監(jiān)控的系統(tǒng),同時(shí)實(shí)現(xiàn)了云平臺(tái)環(huán)境下物理與虛擬資源的統(tǒng)一監(jiān)控。本文將監(jiān)控系統(tǒng)搭建在Dubbo架構(gòu)上,很好地解決了原來集中系統(tǒng)的性能問題和管理分布式環(huán)境問題。該系統(tǒng)已上線運(yùn)行,從結(jié)果上看符合設(shè)計(jì)目標(biāo)。該方案對(duì)于研究類似的分布式集群調(diào)度系統(tǒng)具有重要的意義。
圖4 服務(wù)器的運(yùn)行狀態(tài)監(jiān)控
[1] Alibaba open sesame [EB/OL]. [2015-10-08].http://dubbo.io/Home-zh.htm.
[2]Zabbix:the enterprise-class open source network monitoring solution [EB/OL]. [2015-09-29]. http://www.zabbix.com/documentation.php.
[3]郭曉慧,李潤(rùn)知,張茜,等.基于Zabbix的分布式服務(wù)器監(jiān)控應(yīng)用研究[J].通信學(xué)報(bào),2013,34(Z2):94-98.GUO X H,LI R Z,ZHANG Q,et al.Application research on distributed Zabbix network monitoring system [J].Journal on Communications,2013,34(Z2):94-98.
[4]陳天,陳楠,黃志蘭,等.基于OpenStack的異構(gòu)混合云解決方案[J].電信科學(xué),2015,31(7):132-138.CHEN T,CHEN N,HUANG Z L,et al.OpenStack-based heterogeneous hybrid cloud solution [J].Telecommunications Science,2015,31(7):132-138.
[5]和榮,肖海力.基于 Nagios的監(jiān)控平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].科研信息化技術(shù)與應(yīng)用,2014,5(5):77-85.HE R,XIAO H L.A monitor platform based on Nagios [J].E-Science Technology&Application,2014,5(5):77-85.
Research and implementation of unified monitoring system for multi-datacenters
JIA Baojun,XU Lei,GUO Yuhua,XIONG Wei,LI Sufen
Research Institute,China United Network Communications Co.,Ltd.,Beijing 100032,China
A monitoring system solution of supporting multi-datacenter and multiple private cloud environments were proposed.In order to achieve load balancing and easy scale-out,the unified monitoring system adopted a distributed framework and encapsulated Zabbix API and OpenStack API.This solution was significant for the study of similar distributed cluster scheduling system.
unified monitoring system,virtualization,resource pool
TP393
A
10.11959/j.issn.1000-0801.2016095
2015-10-08;
2016-03-09
賈寶軍(1974-),男,中國(guó)聯(lián)合網(wǎng)絡(luò)通信有限公司研究院工程師,主要研究方向?yàn)樵朴?jì)算、IDC、互聯(lián)網(wǎng)應(yīng)用。
徐雷(1978-),男,中國(guó)聯(lián)合網(wǎng)絡(luò)通信有限公司研究院高級(jí)工程師,主要研究方向?yàn)樵朴?jì)算、SDN、NFV。
郭玉華(1987-),女,中國(guó)聯(lián)合網(wǎng)絡(luò)通信有限公司研究院工程師,主要研究方向?yàn)樵朴?jì)算、監(jiān)控、虛擬化等。
熊微(1988-),女,中國(guó)聯(lián)合網(wǎng)絡(luò)通信有限公司研究院工程師,主要研究方向?yàn)樵朴?jì)算、移動(dòng)核心網(wǎng)、SDN/NFV。
李素粉(1979-),女,博士,中國(guó)聯(lián)合網(wǎng)絡(luò)通信有限公司研究院工程師,主要研究方向?yàn)樵朴?jì)算、核心網(wǎng)等。