Ceilometer原理及介紹


本博客所有文章采用的授權(quán)方式為 自由轉(zhuǎn)載-非商用-非衍生-保持署名 狈惫,轉(zhuǎn)載請務(wù)必注明出處,謝謝仆邓。

聲明:
本博客歡迎轉(zhuǎn)發(fā),但請注明出處廓握,保留原作者信息
博客地址:孟阿龍的博客
所有內(nèi)容為本人學習搭独、研究婴削、總結(jié)。如有雷同牙肝,實屬榮幸


注: 本文基于當前Openstack的Q版本進行分析

1. 背景

ceilometer項目是openstack中用來做計量計費功能的一個組件唉俗,后來又逐步發(fā)展增加了部分監(jiān)控采集、告警的功能配椭。由于種種原因虫溜,ceilometer項目在Openstack中已經(jīng)處于一種沒落的狀態(tài),基本沒有什么新的特性開發(fā)了股缸,原本該項目的PTL也另起爐灶開始在做Gnocchi項目(ceilometer的后端存儲系統(tǒng))衡楞。雖然該項目已經(jīng)沒有前幾年活躍,但是還是在很多公有云場景中有比較多的應(yīng)用敦姻,而生產(chǎn)環(huán)境中瘾境,可能很多公司還用的是M歧杏、N版本。

2. 基本概念

  • meter:
    針對一個資源的某些測量值迷守,比如犬绒,一個虛擬機可以有多個meters:虛擬機在一段時間內(nèi)cpu的使用時間、磁盤的請求次數(shù)等兑凿。在ceilometer中針對這些meter定義了三種類型:
    • Cumulative(累積型): 隨著時間會不斷增長(eg. disk I/O)
    • Gauge(測量型):離散型的值(eg. floating IPs)和浮動的值(eg. swift對象的數(shù)量)
    • Delta(變化量):一段時間內(nèi)某個采集值的變化量(eg. 帶寬變化量)
  • sample:
    針對一個特定的meter的具體數(shù)據(jù)結(jié)構(gòu)
  • event:
    在某個特定時間凯力,發(fā)生的一個動作,比如:19:09:08 創(chuàng)建了一個虛擬機
  • resource:
    資源礼华,比如instance(虛擬機)咐鹤、disk(磁盤)都是資源

3. High-Level 架構(gòu)

ceilo-arch.png

如上,是當前Ceilometer的一個全局概覽邏輯圖.
以上ceilometer的每一個服務(wù)都是基于可橫向擴展來設(shè)計的卓嫂。實際生產(chǎn)環(huán)境中慷暂,可以根據(jù)系統(tǒng)的負載,決定來增加實例或者增加單個實例的worker數(shù)晨雳。當前Ceilometer主要提供兩個核心服務(wù):

  1. polling agent:輪詢agent行瑞,是一個deamon服務(wù),通過周期性調(diào)用Openstack內(nèi)部服務(wù)的接口或者一些外部接口獲取指定resource的meter數(shù)據(jù)
  2. notification agent:一個deamon服務(wù)餐禁,通過監(jiān)聽消息隊列獲取相關(guān)數(shù)據(jù)血久,將其轉(zhuǎn)換為event和sample,并根據(jù)pipeline中定義的方法將數(shù)據(jù)發(fā)送出去
    這和以前的版本相比帮非,簡化了不少氧吐,以前ceilometer包含了(polling-agent,notification-agent,collector,ceilometer-api)
    通過Ceilometer收集到的數(shù)據(jù)可以被發(fā)送到不同的后端末盔。Gnocchi是用來提供對捕獲到的時間序列的測量數(shù)據(jù)的存儲和查詢筑舅。Gnocchi未來的趨勢是取代當前現(xiàn)存的metering數(shù)據(jù)存儲接口(當前存儲在mongodb、mysql等存儲后端)陨舱。Aodh是一個告警服務(wù)翠拣,在滿足用戶設(shè)置的告警條件時,可以發(fā)送告警信息游盲,其后端可以對接不同的數(shù)據(jù)庫误墓。Panko是用來獲取系統(tǒng)中的各類事件并將其存儲到對應(yīng)后端數(shù)據(jù)庫。

4. 數(shù)據(jù)獲取的過程

4.1 數(shù)據(jù)采集

1-agents.png

上圖展示了ceilometer-agent怎樣從不同的數(shù)據(jù)源獲取到數(shù)據(jù)
Ceilometer共有兩種方法來收集數(shù)據(jù):

  1. Notification agent益缎,從notification bus上獲取消息谜慌,將其轉(zhuǎn)換為ceilometer的sample或者event數(shù)據(jù)
  2. Polling agent,周期性調(diào)用系統(tǒng)中的一些API或者外部工具來獲取數(shù)據(jù)莺奔。輪詢服務(wù)可能會對API服務(wù)帶來較大的影響欣范,因此對應(yīng)的API服務(wù)需要針對這種輪詢機制做一些優(yōu)化。
    以上第一種方法是ceilometer-agent-notification提供的,他可以監(jiān)控消息隊列上的信息恼琼。第二種方法是通過polling-agent實現(xiàn)杖刷,通過配置可以實現(xiàn)輪詢本地虛擬化層或者遠程API來獲取數(shù)據(jù)。

4.2 notification agent監(jiān)聽數(shù)據(jù)

2-1-collection-notification.png

notification-agent可以消費來自不同服務(wù)上報的消息數(shù)據(jù)驳癌。
這個系統(tǒng)的核心是notification-agent這個deamon服務(wù)滑燃,他可以監(jiān)聽openstack組件(比如nova、glance/cinder/neutron/等)發(fā)送到消息隊列上的數(shù)據(jù)颓鲜,以及ceilometer內(nèi)部發(fā)送過來數(shù)據(jù)

notification-agent加載ceilometer.notification這個namespace下的一個或者多個插件.每個插件都可以監(jiān)聽任何topic表窘,默認的都會監(jiān)聽notifications.info, notifications.sample,notifications.error.監(jiān)聽進程從配置的topic抓取下來消息之后,將其分發(fā)到合適的插件處理成event和sample甜滨。

基于Sample的插件提供了一個方法來獲取他們所關(guān)注的事件類型乐严,然后據(jù)此調(diào)用對應(yīng)的回調(diào)方法來處理消息。注冊的毀掉方法通過notification的pipeline來配置生效與否衣摩。通過插件配置的事件類型對新進來的消息進行過濾昂验,因此回調(diào)接口最終只會收到他們所關(guān)心的數(shù)據(jù)。

4.3 Polling Agent輪詢獲取數(shù)據(jù)

2-2-collection-poll.png

Polling-agent通過主動調(diào)用service接口查詢來獲取數(shù)據(jù)艾扮。

部署在計算節(jié)點上的polling-agent用來輪詢計算資源的數(shù)據(jù)(這樣agent可以更有效的和本地虛擬化層交互)既琴,也被稱為compute-agent。
通過服務(wù)API輪詢查詢非計算資源相關(guān)數(shù)據(jù)的agent部署在控制節(jié)點上泡嘴,也被稱為central-agent甫恩。在all-in-one環(huán)境中,一個agent也支持同時提供以上兩種角色酌予。
相反的磺箕,也可以通過部署多個agent實例來分擔系統(tǒng)負載。Polling-agent進程可以加載ceilometer.poll.compute,ceilometer.poll.central,ceilometer.poll.ipmi這三個namespace中配置的插件抛虫。

4.4 數(shù)據(jù)處理

4.4.1 pipeline manager

3-Pipeline.png

以上組件實現(xiàn)ceiloemter的pipeline松靡。
ceilometer提供抓取數(shù)據(jù)的agent,控制數(shù)據(jù)建椰、通過多重pipeline將數(shù)據(jù)發(fā)送到多種后端的能力雕欺。這種功能通過notification-agent來實現(xiàn)。

4.4.2 數(shù)據(jù)發(fā)送

5-multi-publish.png

上圖展示了一個sample數(shù)據(jù)怎樣被發(fā)送到多個不同后端
當前處理過的數(shù)據(jù)可以被發(fā)送到8種不同的后端

  1. gnocchi, 發(fā)送samples/event數(shù)據(jù)到Gnocchi-api
  2. notifier, 發(fā)送數(shù)據(jù)到消息隊列广凸,最終可以被內(nèi)部系統(tǒng)消費
  3. udp, 通過UDP包將數(shù)據(jù)發(fā)送出去
  4. http, 發(fā)送數(shù)據(jù)到REST接口
  5. file, 發(fā)送數(shù)據(jù)到指定的文件
  6. zaqar, 一個用于web和移動開發(fā)者的多租戶云消息和通知服務(wù)
  7. https, 通過SSL加密的REST接口HTTP服務(wù)
  8. prometheus, 發(fā)送samples數(shù)據(jù)到 Prometheus Pushgateway

5. 存儲/訪問數(shù)據(jù)

Ceilometer是設(shè)計用來單純的生產(chǎn)和序列化云數(shù)據(jù)阅茶。Ceilometer生產(chǎn)的數(shù)據(jù)可以被發(fā)送到通過pipeline-publishers中定義 的多重后端蛛枚。推薦的方法是將數(shù)據(jù)發(fā)送到Gnocchi用于有效的時間序列存儲以及資源生命周期的追蹤谅海。

參考:
https://docs.openstack.org/ceilometer/latest/contributor/architecture.html

以上我們可以看出,ceilometer關(guān)鍵的組件包含:ceilometer-agent-compute蹦浦,ceilometer-agent-notification扭吁,插件采集數(shù)據(jù)這幾個核心,后邊會分別對其進行分析:

  1. ceilometer-compute-agent(已完成)
  2. 插件采集數(shù)據(jù)的原理和過程分析(已完成)
  3. ceilometer-agent-notification (待分析)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市侥袜,隨后出現(xiàn)的幾起案子蝌诡,更是在濱河造成了極大的恐慌,老刑警劉巖枫吧,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浦旱,死亡現(xiàn)場離奇詭異,居然都是意外死亡九杂,警方通過查閱死者的電腦和手機颁湖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來例隆,“玉大人甥捺,你說我怎么就攤上這事《撇悖” “怎么了镰禾?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長唱逢。 經(jīng)常有香客問我吴侦,道長,這世上最難降的妖魔是什么坞古? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任妈倔,我火速辦了婚禮,結(jié)果婚禮上绸贡,老公的妹妹穿的比我還像新娘盯蝴。我一直安慰自己,他們只是感情好听怕,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布捧挺。 她就那樣靜靜地躺著,像睡著了一般尿瞭。 火紅的嫁衣襯著肌膚如雪闽烙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天声搁,我揣著相機與錄音黑竞,去河邊找鬼。 笑死疏旨,一個胖子當著我的面吹牛很魂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播檐涝,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼遏匆,長吁一口氣:“原來是場噩夢啊……” “哼法挨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起幅聘,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤凡纳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后帝蒿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體荐糜,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年葛超,在試婚紗的時候發(fā)現(xiàn)自己被綠了狞尔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡巩掺,死狀恐怖偏序,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情胖替,我是刑警寧澤研儒,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站独令,受9級特大地震影響端朵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜燃箭,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一冲呢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧招狸,春花似錦敬拓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至累榜,卻和暖如春营勤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背壹罚。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工葛作, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人猖凛。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓赂蠢,卻偏偏與公主長得像,于是被迫代替她去往敵國和親形病。 傳聞我的和親對象是個殘疾皇子客年,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)漠吻,斷路器量瓜,智...
    卡卡羅2017閱讀 134,711評論 18 139
  • Objectives 2012年Ceilometer創(chuàng)建的時候,目的只是為了提供基礎(chǔ)設(shè)施為OpenStack項目收...
    黑加侖妞閱讀 959評論 0 0
  • 第一章 OpenStack基礎(chǔ) OpenStack管理的資源及提供的服務(wù)OpenStack做為一個操作系統(tǒng)途乃,...
    sgt_tiger閱讀 12,947評論 4 72
  • 文/燁子 1 從上周四的晚上起耍共,日子突然變得忙碌起來烫饼。岳母周四上午因為身體不適,被送到省中醫(yī)院试读,診斷結(jié)果為腦梗塞杠纵,...
    燁子人生閱讀 1,303評論 2 3
  • if ()else{} 三目:條件 ?條件成立 : 條件不成立 只有一個語句 if()語句 if(true) a...
    warmT_閱讀 8,754評論 0 3