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

《OpenStack系统架构设计实战》第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 关键的服务组件