賈寶軍,徐雷,郭玉華,熊微,李素粉
(中國聯合網絡通信有限公司研究院,北京 100032)
跨數據中心的統一監控研究與實現
賈寶軍,徐雷,郭玉華,熊微,李素粉
(中國聯合網絡通信有限公司研究院,北京 100032)
提出了一種能夠支撐多數據中心和多私有云環境的監控系統解決方案。通過采用分布式框架,重新封裝Zabbix API和OpenStack API,實現了壓力分擔、易于擴展的統一監控系統。該方案對于研究類似的分布式集群調度系統具有重要意義。
統一監控系統;虛擬化;資源池
IT系統的監控技術從信息化伊始就一直存在和發展著。小到單獨的IT系統,大到成百上千臺的服務器和網絡設備,都有或大或小的監控系統。開源社區也形成了如Ganglia、Nagios、Splunk的監控軟件,被不少公司的信息化部門采用。近年來,隨著云計算、大數據和互聯網的快速發展,IT基礎設施發生了根本轉變,監控需求從一些獨立的系統要求轉變為整體平臺化的系統要求。服務器不再是孤立的計算單元,而是通過云計算、大數據等平臺將計算、存儲資源統一起來,跨越數據中心范圍形成規模更大、統一管理的資源池,因此需要能夠監控大規模、跨地域的虛擬資源的監控系統。
私有云平臺除了采用商業的VMware和hypervisor作為虛擬化平臺外,還可以采用OpenStack等開源技術。本文提出的云平臺基于OpenStack底層技術進行搭建。為構建一套完整的統一監控系統,需要實現覆蓋全部物理機和虛擬機的監控功能,以實現高效管理大規模軟硬件資源、動態合理分配系統資源的目標。
(1)物理機監控,通過在物理機上安裝一個守護進程,定時收集每個節點的狀態信息,最后匯總到監控系統中,進行存儲、歸納、分析、展示。智能平臺管理接口(IPMI)獲取監控數據。
(2)虛擬機監控,通過底層的 Hypervisor進程和虛擬化管理平臺收集相關的監控項信息,發送給監控系統,存儲、歸納、分析、展示每臺虛擬機的監控信息。
(3)監控系統可以同時展示物理機和虛擬機的監控視圖。
(4)對于多個OpenStack平臺的環境,需要同時監聽多個Ceilometer來源以獲取不同虛擬化平臺下虛擬機的監控數據,匯總上報到監控系統中。
隨著IT資源的虛擬化,數據中心間的區隔也變得日益模糊。用戶不再關心自己的硬件到底部署在什么地方,只關心軟件系統的服務能力是否滿足業務需求,這樣就要求底層資源池能提供一定的QoS保障,或者具有資源使用的調優能力。要實現該要求,必須有縱觀全局的監控能力,依據監控指標制定資源使用策略,實現資源的自動或智能調配,保障軟件系統的能力要求。
因歷史原因遺留下來的一些規模較小的數據中心,也需要納入統一資源池的環境中。當下互聯網的系統需求往往會急劇膨脹,有限的IT資源很難滿足互聯網快速發展的需求,這樣勢必要將以往孤立的小規模數據中心打通,提供統一的服務能力。
Zabbix是開源社區監控軟件的后起之秀,集成了SNMP、agent、IPMI等多種數據采集方式,方便在不同環境中使用,完善了監控和圖形化顯示功能。
Zabbix軟件具備一定的分布式系統管理能力,可以監控小型和大型的分布式環境,并將所有歷史數據、趨勢和配置信息存儲在數據庫中。Zabbix所有的邏輯運算都在服務器端執行,對監控對象的性能影響很小。
Zabbix代理(proxy)支持分布式能力,可以代表Zabbix服務器收集性能和可用數據,承擔采集數據的任務并減輕Zabbix服務器的負載。同時,使用Zabbix代理是實施統一和分布式監控最簡單的方式,因為所有的客戶端和代理向同一個Zabbix服務器報告數據,并且所有數據集中保存在服務器數據庫中。Zabbix代理可在監控遠程區域、擁有不可靠鏈接的區域時使用。當監控數以千計的設備時,Zabbix代理可分擔Zabbix服務器的負載。Zabbix分布式架構如圖1所示。
采用Zabbix作為監控系統可以支持分布式集中管理,用于分布式環境監控,但也存在明顯缺點。首先,Zabbix方案需要在被監控的主機上安裝agent,這樣會侵害用戶的隱私,而且agent也存在被用戶卸載的情況;其次,所有數據都集中保存在數據庫中,Zabbix監控系統產生的數據量很大,數據庫會成為系統發展的瓶頸;最后,Zabbix代理的方案受限于代理性能,當代理服務的監控機器數量較多時,很難滿足資源的監控要求。綜上所述,Zabbix不是一個能夠滿足云平臺和多數據中心統一監控的軟件方案。
Dubbo是一個分布式服務框架,致力于提供高性能和透明化的RPC遠程服務調用方案以及SOA服務治理方案。其核心部分如下所述。
(1)遠程通信
提供對多種基于長連接的NIO框架的抽象封裝,包括多種線程模型、序列化以及“請求—響應”模式的信息交換方式,像調用本地方法一樣調用遠程方法。

圖1 Zabbix分布式架構
(2)集群容錯
提供基于接口方法的透明遠程過程的調用,包括多協議支持、軟負載均衡、失敗容錯、地址路由、動態配置等集群支持。
(3)自動發現
基于注冊中心目錄服務,使服務消費方能動態查找服務提供方,使地址透明,使服務提供方可以平滑增加或減少機器。
Dubbo架構示意如圖2所示。
系統包括5種不同的角色:服務提供者、服務消費者、服務注冊中心、服務監控中心和服務運行容器。服務提供者是暴露服務的服務提供方;服務消費者是調用遠程分布式服務的服務使用方;服務注冊中心是系統的基礎和核心,是服務提供者和服務消費者溝通的橋梁;服務監控中心負責統計各服務調用次數、調用時間以及服務提供者的服務運行上報信息等;服務運行容器啟動、加載、運行服務提供者。具體角色功能如下所述。
(1)服務注冊中心提供集中的服務注冊、服務訂閱、服務信息通知及服務監控功能,并提供代理模式的服務調用能力。
(2)服務提供者負責提供具體的服務,并在服務啟動后向集群服務管理系統進行服務注冊,并定期將服務運行統計信息(如服務性能數據、服務使用情況等)上報給監控中心。
(3)服務消費者需要在服務啟動后,主動向集群服務管理系統訂閱所需的服務。當消費者訂購的服務信息發生變化時,向訂閱的消費者發送異步消息通知。
(4)服務提供者及服務消費者采用長連接方式與集群服務管理系統進行通信。
(5)監控中心統計服務消費者和服務提供者的性能指標等,并向服務注冊中心匯報服務提供者的服務運行上報情況。
(6)服務運行容器提供Web服務容器功能,負責啟動、加載、運行服務提供者。
采用Zabbix作為監控能力的提供層,監控系統重新定制portal以滿足跨數據中心的監控以及統一的物理資源和虛擬資源的監控。
采用Dubbo框架對Zabbix API和OpenStack API進行重新封裝,如圖3所示,實現分布式監控系統。這樣監控門戶對數據的訪問變成由Dubbo引導的訪問。Zabbix服務通過API方式由Dubbo服務提供者提供,用戶請求作為Dubbo下的服務消費者向服務器提供者發送請求信息。
當監控多個數據中心時,在每個數據中心部署一套或多套Zabbix軟件系統,Dubbo服務提供者調用Zabbix系統API實現監控能力,Dubbo服務消費者負責處理用戶請求,通過調用Dubbo服務提供者響應請求,Dubbo服務消費者和服務提供者都需要首先在服務注冊中心完成注冊。當用戶通過portal訪問某一機器的監控信息時,需要根據區域標識符來決定由哪個Zabbix服務器提供監控源,從而引導用戶請求到對應的Zabbix服務器。
對于數據中心有一個或多個云平臺的情況,首先對OpenStack云平臺的監控服務設置單獨的Dubbo服務提供者和服務消費者,將Ceilometer API封裝為實現Dubbo服務提供者,用戶請求通過Dubbo的服務消費者模式執行。每增加一個OpenStack云平臺,新增相應的Dubbo服務消費者和服務提供者,從而實現對多個云平臺資源池的監控。分布式監控系統架構如圖3所示。

圖2 Dubbo架構示意

圖3 分布式監控系統架構
圖3描繪了兩個數據中心的場景,每個數據中心部署有一套OpenStack云平臺,虛擬機的監控數據由OpenStack Ceilometer組件進行采集和存儲。在每個數據中心部署一套Zabbix監控系統,通過Zabbix agent采集服務器的運行狀態。來自portal的用戶請求通過Dubbo層轉發到相應的Zabbix服務器和云平臺,以獲取相應的數據。
數據中心之間可通過公網或者VPN進行連接,網絡應提供足夠的帶寬和質量保障。系統對監控數據的處理主要在本數據中心完成,監控數據的采集分別由各自數據中心的Zabbix服務器和云平臺完成,Dubbo的服務消費者和服務提供者負責將處理好的數據返回給portal。數據中心間僅傳送必要的數據和Dubbo控制的數據,大部分數據流量限制在本地數據中心。
圖4是其中服務器1 h內的監控情況。
本文提出了一種能夠支撐多數據中心IT資源統一監控的系統,同時實現了云平臺環境下物理與虛擬資源的統一監控。本文將監控系統搭建在Dubbo架構上,很好地解決了原來集中系統的性能問題和管理分布式環境問題。該系統已上線運行,從結果上看符合設計目標。該方案對于研究類似的分布式集群調度系統具有重要的意義。

圖4 服務器的運行狀態監控
[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]郭曉慧,李潤知,張茜,等.基于Zabbix的分布式服務器監控應用研究[J].通信學報,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的異構混合云解決方案[J].電信科學,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的監控平臺的設計與實現[J].科研信息化技術與應用,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-),男,中國聯合網絡通信有限公司研究院工程師,主要研究方向為云計算、IDC、互聯網應用。

徐雷(1978-),男,中國聯合網絡通信有限公司研究院高級工程師,主要研究方向為云計算、SDN、NFV。

郭玉華(1987-),女,中國聯合網絡通信有限公司研究院工程師,主要研究方向為云計算、監控、虛擬化等。

熊微(1988-),女,中國聯合網絡通信有限公司研究院工程師,主要研究方向為云計算、移動核心網、SDN/NFV。

李素粉(1979-),女,博士,中國聯合網絡通信有限公司研究院工程師,主要研究方向為云計算、核心網等。