OpenStack與監(jiān)控系統(tǒng)現(xiàn)狀
數(shù)據(jù)監(jiān)控和展示是云平臺中重要的部分,隨著節(jié)點數(shù)目和所需監(jiān)控對象的數(shù)量的增加,一個強大、健全、可擴展的監(jiān)控系統(tǒng)才能滿足各類用戶的需求。它是一個云平臺非常重要的特性,也是評估一個IAAS的可運維程度的參考。
首先我們需要看看目前眾多云平臺的監(jiān)控現(xiàn)狀。
***類監(jiān)控服務(wù): 基本數(shù)據(jù)監(jiān)控服務(wù)
阿里云在這方面的工作跟盛大云、Google Cloud Engine類似,主要覆蓋了三個基本指標分別是VM的CPU,存儲帶寬和網(wǎng)絡(luò)流量。但是目前而言,歷史功能都不是太豐富,這些都是基本不可能讓SA依賴這些功能去運維的。
第二類監(jiān)控服務(wù): 多維度數(shù)據(jù)監(jiān)控服務(wù)
AWS一直是將服務(wù)可運維作為一個重要目的,如果AWS在EC2,EBS的努力一樣,數(shù)據(jù)監(jiān)控和報警在AWS的CloudWatch上體現(xiàn)。
AWS的CloudWatch API設(shè)計是作者比較推崇的,它將任意維度、類型的監(jiān)控指標都可以通過一個簡單的模型來集中管理。對CloudWatch不太了解的可以去官方文檔一探究竟Amazon CloudWatch Getting Started Guide 。
從下圖可以發(fā)現(xiàn)CloudWatch的三個重要概念,在Viewing欄是Namspace,在表格欄是Metric,它可以通過不同的dimension來定位。***是一個Metric在時間維度和統(tǒng)計方法、不同時間粒度的展現(xiàn)。在這里我們可以發(fā)現(xiàn)AWS支持的數(shù)據(jù)監(jiān)控和展示優(yōu)點有: 1.數(shù)據(jù)監(jiān)控和報表的基本功能覆蓋,如時間維度,統(tǒng)計粒度。2. 增加服務(wù)或者監(jiān)控項目非常方便。
上面提到的僅僅是數(shù)據(jù)收集的方式,CloudWatch的API無疑是非常好的設(shè)計。但在顯示上CloudWatch無疑還有更多工作,AWS在自己的CloudWatch上并沒有太多工作是為了將顯示交給用戶。這給很多用戶帶來的不便,提供一個類型多樣的顯示模板或許能做的更好。
第三類監(jiān)控服務(wù): 特定類型數(shù)據(jù)監(jiān)控服務(wù)
ScaleIO是一家致力于與Amazon EBS競爭的存儲Startup,同樣是寄希望于打破傳統(tǒng)存儲廠商的壁壘和綁定,ScaleIO提供了軟件層面的塊存儲,并且對SSD,HDD,Network做到了不可知。
不過,現(xiàn)在我們主要關(guān)注ScaleIO提供的非常酷炫的監(jiān)控Dashboard。
通過對存儲服務(wù)的定制化展示來達到驚艷的效果,把監(jiān)控當做一個系統(tǒng)的重要亮點。不過,顯而易見的是,這類展示是需要額外工作的,在用戶方面很難復(fù)用這類展示。
在OpenStack如何實現(xiàn)強大的監(jiān)控系統(tǒng)
從以上不同類型甚至不同產(chǎn)品的監(jiān)控展示系統(tǒng)上我們可以理出一個對IAAS平臺的思路。在IAAS平臺上,數(shù)據(jù)監(jiān)控從架構(gòu)角度分為三層,物理機、虛擬機和應(yīng)用。然后從用戶角度可以分為三類需求,普通用戶,定制用戶和高級用戶。普通用戶希望直接能使用默認監(jiān)控項,并且能大部分滿足需求。定制用戶會適當修改默認監(jiān)控項顯示或者位置。高級用戶希望自定義輸入,輸出,組合監(jiān)控項。
在數(shù)據(jù)收集方面,利用OpenStack現(xiàn)有項目Ceilometer的工作,它提供了OpenStack所有Core Project的支持并且具備一個與CloudWatch類似的存儲設(shè)計和API支持。但是由于Ceilometer目前的局限和CloudWatch API的良好設(shè)計上,我們可以結(jié)合兩者,為Ceilometer同樣實現(xiàn)CloudWatch API,這樣可以大大增加了Ceilometer的兼容性,帶來了CloudWatch社區(qū)的廣大福利(眾多第三方庫和數(shù)據(jù)收集腳本)。目前這個計劃已經(jīng)在社區(qū)的bp中。
在數(shù)據(jù)顯示方面,需要補強AWS CloudWatch在這方面的脆弱點,大大加強數(shù)據(jù)顯示上的選擇和使用。相對于AWS CloudWatch簡單的折線圖和ScaleIO的定制化Dashboard做一個折中,設(shè)計類似于源數(shù)據(jù)->顯示單元的前端解析框架,可以為同樣的數(shù)據(jù)套上不同的顯示單元。通過這一方式,我們將收集和顯示完全解耦,將顯示單元也同樣暴露給用戶可視化復(fù)用。
舉一個例子,用戶在OpenStack上建立一個Redis集群并且希望監(jiān)控給集群,通過CloudWatch社區(qū)對于Redis信息收集腳本的支持,用戶可以快速在VM上部署腳本然后發(fā)送到Ceilometer上。在數(shù)據(jù)顯示上,類似于CloudWatch的查詢頁面來定制化顯示單元,可以為內(nèi)存使用做成餅圖,IOPS做成折線圖,容量做成桶圖(見ScaleIO的設(shè)計)。用戶可以發(fā)現(xiàn)自定義用戶級程序監(jiān)控會變得極其簡單。同理,無論是復(fù)雜的集群狀態(tài)監(jiān)控還是局部的基礎(chǔ)服務(wù)健康都可以通過該方式得到,做到了任何展示都是可定義的。
目前監(jiān)控數(shù)據(jù)中心存儲依賴于Ceilometer的后端存儲支持,而Ceilometer現(xiàn)在支持的MongoDB是最完善的,SQLALchemy和HBase支持都不是社區(qū)重點推薦。而CloudWatch這類數(shù)據(jù)模型的存儲相較于傳統(tǒng)的監(jiān)控數(shù)據(jù)存儲會帶來更多的查詢條件和復(fù)雜性,支持這些功能都會給數(shù)據(jù)存儲后端帶來極大挑戰(zhàn),在監(jiān)控前端建立一個緩存代理是現(xiàn)在穩(wěn)妥的選擇。
原文地址:
http://www.wzxue.com/openstack%E4%B8%8E%E7%9B%91%E6%8E%A7%E7%B3%BB%E7%BB%9F/