Ceilometer介绍

时间:2024-03-16 19:05:58

Ceilometer简介

Ceilometer是OpenStack中的一个子项目,像漏斗一样,把OpenStack内部发生的几乎所有的事件都收集起来,为计费、监控以及其他的服务提供数据支撑。OpenStack作为一个开源的IaaS平台,发展速度加快。越来越多的公司在基于OpenStack做自己的公有云平台,而作为公有云,计量和监控这两个基础的服务是必不可少的。计量是为了获取平台中用户对各种资源的使用情况,监控是为了确保资源处于健康的状态,因此,ceilometer在项目提出之初就只是专注计量计费而生。

Ceilometer核心概念

Ceilometer中有五个重要组件和一个Message Bus组成

Ceilometer-agent-compute:收集计算节点上信息的代理,运行在计算节点上,是计算节点上数据收集的代理

Ceilometer-agent-central:运行在控制节点上,轮询服务的非持续化数据

Ceilometer-collector:运行在一个或多个控制节点上,监听信息总线Message Bus,将收到的消息以及相关数据写入到数据库中

Storage:数据存储,支持MongDB、MySQL等,用于存储收集到的样本数据

API server:运行在控制节点上,提供对数据库数据的访问

Message Bus:计量数据的消息总线,收集数据提供给Ceilometer-collector

Ceilometer架构原理

Ceilometer使用了两种数据采集的方式,其中一种是消费了OpenStack内各个服务自动发出的notification消息,对应图中的蓝色箭头,另一种是通过调用各个服务的API去主动轮询获取数据,对应图中的黑色箭头。在OpenStack内部,大部分事件都会发出notification消息,比如创建、删除instance实例时,这些计量、计费的重要信息都会发出对应的notification消息,而作为ceilometer组件,就是notification消息的最大消费者,因此第一种方式是ceilometer组件的首要数据来源,但也有一些计量消息通过notification获取不到,如实例的CPU运行时间,CPU一些计量消息通过notification获取不到,如实例的CPU运行时间,CPU使用率等,这些信息不会通过notification发出,因此ceilometer增加了第二种方式,周期性的调用相关的API去轮询这些消息

Ceilometer介绍