Ceilometer架构分析

    项目计划用Ceilometer做监控和计费, 从前期部署及使用Ceilometer的情况来看,发现Ceilometer存在比较多的问题,如占用大量的内存、请求响应慢等。基于这些问题从代码的角度分析一下Ceilometer的系统架构,跟进ceilometer社区的进展。

基本概念

Ceilometer 的主要概念包括:

  • Meter:计量项
  • Sample:某Resource 某时刻某 Meter 的值
  • Statistics:某区间 Samples 的聚合值
  • Alarm:某区间 Statistics 满足给定条件后发出的告警 

Ceilometer 运行的服务:

  • ceilometer-api:提供查看计量数据、下发告警策略的API
  • ceilometer-agent-central:统计Openstack其它模块服务的运行状态,如NovaServiceAlive、NeutronServiceLogPollster 
  • ceilometer-agent-collector:监听消息队列收集其它agent(如ceilometer-agent-compute和ceilometer-agent-nofication)发送的sample,将收到的sample写入后端存储
  • ceilometer-agent-notification: 监听消息队列收集其它模块(Nova/Neutron)发送的notification,notification转换成sample发送给ceilometer-agent-collection,notification转换成event写入后存储
  • ceilometer-alarm-evaluator:对比数据库中的告警策略和计量的统计结果,将被触发的告警消息通过消息队列发送给ceilometer-alarm-notifier
  • ceilometer-alarm-notifier:监听消息队列收集ceilometer-alarm-evaluator触发的告警,按照配置的告警形式发送告警信息
  • ceilometer-agent-compute:统计本地虚机的资源使用情况,将统计结果发送给ceilometer-agent-collector

后端存储数据的种类:Resource、Sample(带有时间序列)、Event、Alarm。(Resource和Sample使用metric_connection的配置,Event和Alarm使用event_connection的配置)   

数据处理流程:

系统架构

总体架构

社区动态

Gnocchi

Gnocchi (TDBaaS Time Series Database as a Service) 是Ceilometer下一个子项目,目的是优化Ceilometer后端存储性能的方案,Aodh是独立出来的告警模块(分别为meter和event提供告警),目前已发布三个版本。

Gnocchi 架构:

 Ceilometer 整体架构:

详情参见:https://wiki.openstack.org/wiki/Gnocchi

Monasca

Monasca用于整合Openstack支持多租户、可扩展、高可用、可容错的监控系统,HP已在公有云helion部署,其性能比ceilometer高很多。

Ceilometer + Monasca = Ceilosca

Ceilosca整体架构:

Ceilometer与Ceilosca性能对比:

 

详情参见:http://www.slideshare.net/FabioGiannetti/ceilosca

瓶颈问题

后端存储

     在较大规模的场景下,Ceilometer监控采样数据库累积较多,显示监控数据需要依赖后端存储统计结果,后端存储响应请求会明显变慢。

     方案1:后端使用支持时间序列的存储,如SSDB、Influxdb

     方案2:参见Goncchi

消息队列

     Ceilometer服务之间的通信依赖消息队列,监控资源过多会引起RPC请求超时。

     方案1:减少同一个notification进入消息队列的次数,如ceilometer-agent-notification直接将sample写入后端存储

     方案2: 参见Monasca

狂占内存

     Ceilometer服务启动后会占用较多的内存,如ceilometer-agent-computer将采到的sample放入内存,用于转换采样数据

     方案:Ceilometer提供了比较全面的功能,在实际场景下修改配置文件仅初始化需要的实例进行采样,如禁用 NeutronServiceLogPollster

原文地址:https://www.cnblogs.com/gaozhengwei/p/7097605.html