讀古今文學網 > OpenStack系統架構設計實戰 > 第5章 計量與監控(Ceilometer) >

第5章 計量與監控(Ceilometer)

5.1 Ceilometer的體系架構

計量與監控是公有雲運營的一個重要環節,計量是為了獲取系統中用戶對各種資源的使用情況,監控是為了確保資源處於健康的狀態。Ceilometer是OpenStack的計量與監控組件,官方正式名稱為OpenStack Telemetry,用來獲取和保存計量與監控的各種測量值,並根據測量值進行報警。同時這些保存下來的測量值也可以被第三方系統獲取,用來做更進一步的分析、處理或展示。Ceilometer的目標是為OpenStack環境提供一個獲取和保存各種測量值的統一框架。

首先,簡單介紹下Ceilometer的發展歷史和Ceilometer中的幾個重要概念。

1)項目開始於2012年4月,由Julien Danjou、Dreamhost和Canonical等發起。

2)2012年的10月,Ceilometer發佈了它的V1.0版本(Folsom版本),在第一個版本中,Ceilometer主要實現了對一些重要數據的計量,包括Compute、Network、Memory、CPU、Image、Volume等,並且提供了REST API。

3)2013年2月,Ceilometer完成了由Incubation到Integrated的轉變,這意味著Ceilometer將作為OpenStack發行版的一部分而發佈。

4)Grizzly中,Ceilometer添加了對Swift的支持,增加了SQLAlchemy作為存儲後端,開發了Multi Publisher,並且發佈了V2版本的API。

5)Havana中,Ceilometer主要增加了HBase作為存儲後端,報警功能也基本完成,並且增加了UDP Publisher作為取代RPC發送消息的第二選擇,更加高效。還增加了DB2作為存儲後端。

6)IceHouse中,主要是分離collector,增加VMware vcenter server支持等。

7)Juno中,主要是進行優化和測量指標的擴展,包括報警評估負載使用tooz、支持IPMI傳感器獲取監控、支持SNMP監控、提供LBaaS/FWaaS/VPNaa度量服務,以及添加Temptest等。

8)在K版本中,主要是優化事件支持、優化流水線(pipeline)發佈支持、測量指標的擴展等,具體參考5.7節。

Ceilometer中的幾個重要概念如下:

1)resource:被監控的資源對象,可以是一台虛擬機、一台物理機、一塊雲硬盤,或者OpenStack其他服務組件。

2)meter:Ceilometer定義的監控項,這些監控項分為3種類型。

·Cumulative:累計的,隨著時間增長(如磁盤讀寫)。

·Gauge:計量單位,離散的項目(如浮動IP、鏡像上傳)和波動的值(如對像存儲數值)。

·Delta:增量,隨著時間的改變而增加的值(如帶寬變化)。

3)sample:採樣值,是每個採集時間點上meter對應的具體值。

4)alarm:Ceilometer的報警系統,可以通過閾值或者組合條件報警,並設置報警時觸發的動作。

Ceilometer的整體架構如圖5-1所示。

由圖5-1可以看出,Ceilometer通過通知代理和輪詢代理獲取測量值,經流水線的發佈者發佈給收集器或外部系統。收集器繼而將收到的測量值保存到數據庫中,同時,外部系統也可以通過Ceilometer API將測量值送達Ceilometer數據庫。Ceilometer告警由告警評估器觸發,發送給告警通知器,同時調用Ceilometer API,最終將告警保存到Ceilometer數據庫中。此外,告警通知器可以將告警發送給外部系統,外部系統也可以通過Ceilometer API新建告警發送給Ceilometer。

Ceilometer中幾個關鍵的服務組件如表5-1所示。

圖5-1 Ceilometer整體架構

表5-1 關鍵的服務組件