1.Ceilometer的簡介:
Ceilometer是openstack 中的一個子項目。
是數(shù)據(jù)監(jiān)控器,收集所有OpenStack中發(fā)生的事件。
為計費、監(jiān)控等其他的服務提供數(shù)據(jù)支撐。
2. Ceilometer存在的理由:
發(fā)展速度越來越快。更多的公司利用open stack做自己的公有云平臺。
而作為共有云,計量和監(jiān)控,這兩個基礎的服務往往是必不可少的。計量是為了獲取平臺中用戶對自己的使用情況,監(jiān)控是為了確保資源處于一個健康的狀態(tài),因此,Ceilometer在項目提出之處,是為了計量、計費而生。
3. Ceilometer的核心概念
“五個核心組件和一個Message Bus”
Ceilometer-agent-compute:運行在計算節(jié)點上,是計算節(jié)點上數(shù)據(jù)收集的代理
Ceilometer-agent-central:運行在控制節(jié)點上,輪詢服務的非持續(xù)化數(shù)據(jù)
Ceilometer-collector:運行在一個或者多個控制節(jié)點上,監(jiān)聽Message Bus【消息總線】,將收到的信息寫入到數(shù)據(jù)庫中
Storage:數(shù)據(jù)存儲,支持mongo DB,mysql等等。用于存儲收集到的樣本數(shù)據(jù)
API server:運行在控制節(jié)點上,提供對數(shù)據(jù)庫的數(shù)據(jù)的訪問
Message Bus:計量數(shù)據(jù)的消息總線,收集數(shù)據(jù)給Ceilometer-collector
4. Ceilometer架構(gòu)

Ceilometer采用了兩種數(shù)據(jù)采集的方式,其中一種是消費了open stack內(nèi)各個服務自動發(fā)出的notification消息,【圖中的藍色箭頭】,另外一種是調(diào)用各個服務的API,去主動輪詢獲取數(shù)據(jù)?!緢D中的黑色箭頭】
為什么采用兩種數(shù)據(jù)采集的方式?【也是工作架構(gòu)】
因為在open stack 中,大部分事件都會發(fā)出notification消息,比如創(chuàng)建刪除instance實例的時候,這些計量計費的信息時,都會發(fā)出notification消息。而作為Ceilometer組件,就是notification消息的最大的消費者。因此,第一種方式,是Ceilometer的首要的數(shù)據(jù)來源。
但是,也有一些計量的消息,是notification獲取不到的,比如一些instance的CPU的運行時間,或者是CPU的使用率等等。因此,Ceilometer增加了第二種方式,即為周期性的調(diào)用相關(guān)的API,去輪詢這些消息。