讀古今文學網 > OpenStack系統架構設計實戰 > 5.3 Ceilometer告警 >

5.3 Ceilometer告警

Ceilometer告警是Ceilometer利用保存的眾多關於計量和監控的測量值通過比較而產生的,並執行某些動作。簡單來說,Ceilometer告警的功能就是監控某一個或多個測量值,若高於或者低於預先設定的閾值就執行相應的動作,比如,發送郵件、短信報警,或者直接調用某個接口進行彈性伸縮操作等。

Ceilometer中,根據報警器狀態的評估判定方式不同實現了兩種報警器。

·邊界觸髮型(Threshold):根據監控指標的閾值去判斷告警的狀態,它只針對某一個監控指標創建告警。

·組合型(Combination):可以理解為告警的告警,它是根據多個告警的狀態來判斷自己的狀態,多個告警之間是或/與的關係,相當於對多個監控指標創建一個告警。

一般情況下,只需要邊界觸髮型的告警就足夠了。但對於一些特殊情況,比如Heat要執行自動縮放操作,可能就要對多個監控指標進行衡量,然後再採取操作。此時就需要組合告警。

Ceilometer中和報警功能相關的服務有如下3種。

·Alarm Evaluator:Ceilometer通過Alarm Evaluator服務來週期性地檢查用戶所創建的報警器的狀態。

·Alarm Notifier:當Alarm Evaluator服務檢查到某個報警器符合觸發條件時,用來執行該報警器所定義的報警動作。

·API Server:用戶通過API Server來對報警器進行操作(新建、讀取、更新、刪除),同時,Alarm Evaluator服務也會通過API Server來獲得要檢查的報警器列表。

Ceilometer報警器的3種狀態如表5-3所示。

表5-3 Ceilometer報警器狀態

對於每一種報警器的狀態,用戶在新建或者修改報警器的時候,都可以為其設置不同的報警動作,用於告警觸發時被Alarm Notifier服務調用。Ceilometer要求用戶所設置的報警動作是符合URL格式的字符串,Alarm Notifier服務會根據這個URL字符串解析的結果來執行不同的報警動作。目前,Ceilometer支持的報警動作如表5-4所示。

Ceilometer對這些報警動作的支持也是通過插件的方式實現的。Alarm Notifier服務初始化過程中會加載命名空間ceilometer.alarm.notifier所定義的所有插件,確定所支持的報警動作的實現方式。

表5-4 Ceilometer支持的報警動作

ceilometer.alarm.notifier = log = ceilometer.alarm.notifier.log:LogAlarmNotifiertest = ceilometer.alarm.notifier.test:TestAlarmNotifierhttp = ceilometer.alarm.notifier.rest:RestAlarmNotifierhttps = ceilometer.alarm.notifier.rest:RestAlarmNotifiertrust+http = ceilometer.alarm.notifier.trust:TrustRestAlarmNotifiertrust+https = ceilometer.alarm.notifier.trust:TrustRestAlarmNotifier