1. 程式人生 > >Ceilometer架構分析

Ceilometer架構分析

p s 容錯 代碼 image 系統架構 collector link 虛機 發的

項目計劃用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的配置)

數據處理流程:

技術分享

系統架構

總體架構

技術分享

瓶頸問題

後端存儲

在較大規模的場景下,Ceilometer監控采樣數據庫累積較多,顯示監控數據需要依賴後端存儲統計結果,後端存儲響應請求會明顯變慢。

參考方案1:後端使用支持時間序列的存儲,如SSDB、Influxdb

參考方案2:參見下面的Goncchi

消息隊列

Ceilometer服務之間的通信依賴消息隊列,監控資源過多會引起RPC請求超時。

參考方案1:減少同一個notification進入消息隊列的次數,如ceilometer-agent-notification直接將sample寫入後端存儲

參考方案2: 參見下面的Monasca

狂占內存

Ceilometer服務啟動後會占用較多的內存,如ceilometer-agent-computer將采到的sample放入內存,用於轉換采樣數據

參考方案:Ceilometer提供了比較全面的功能,在實際場景下修改配置文件僅初始化需要的實例進行采樣,如禁用 NeutronServiceLogPollster

社區動態

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架構分析