首页 » OpenStack系统架构设计实战 » OpenStack系统架构设计实战全文在线阅读

《OpenStack系统架构设计实战》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