數(shù)人云|淺論P(yáng)rometheus容器監(jiān)控優(yōu)缺點(diǎn)万栅,2.0版本哪項(xiàng)改進(jìn)受關(guān)注?

Markdown

關(guān)于容器監(jiān)控烦粒,數(shù)人云之前給大家分享了《解惑|你是否為容器監(jiān)控操碎了心休溶?》,就有有Prometheus的身影扰她,那么它都有哪些優(yōu)缺點(diǎn)兽掰?近日發(fā)布的2.0版本又有哪些改進(jìn)?本文見分曉~

Prometheus解決了Devs如何監(jiān)控高動(dòng)態(tài)容器環(huán)境的問(wèn)題徒役,在本文中孽尽,F(xiàn)rederick Ryckbosch講述了使用Prometheus的優(yōu)點(diǎn)和缺點(diǎn),以及它到底有多大的伸縮性忧勿。

Prometheus是一個(gè)基于時(shí)間序列的數(shù)值數(shù)據(jù)的監(jiān)控解決方案杉女,這是一個(gè)開源項(xiàng)目,由前Google員工在SoundCloud啟動(dòng)鸳吸,他們希望監(jiān)控一個(gè)高度動(dòng)態(tài)的容器環(huán)境熏挎,因?yàn)閷?duì)傳統(tǒng)的監(jiān)控工具不甚滿意,所以開發(fā)出Prometheus晌砾,并在上面進(jìn)行工作坎拐。

在本文中,我們將討論P(yáng)rometheus的重要設(shè)計(jì)決策及其影響,將重點(diǎn)討論“ Digital Ocean”如何成功地將Prometheus擴(kuò)展到100萬(wàn)臺(tái)機(jī)器哼勇,以及在使用Coscale時(shí)如何利用Prometheus都伪。

Prometheus是如何工作的

要使用Prometheus監(jiān)控服務(wù),服務(wù)需要公開一個(gè)Prometheus端點(diǎn)积担,這端點(diǎn)是一個(gè)HTTP借口院溺,它公開了度量的列表和當(dāng)前的值。

Prometheus提供了廣泛的服務(wù)發(fā)現(xiàn)選項(xiàng)磅轻,以查找您的服務(wù)并從它們開始檢索度量數(shù)據(jù)。Prometheus服務(wù)器輪詢服務(wù)的指標(biāo)接口并存儲(chǔ)數(shù)據(jù)逐虚。

在Prometheus UI中聋溜,用戶可以在PromQL語(yǔ)言中編寫查詢以提取度量信息。

例如:

topk(3, sum(rate(container_cpu_time[5m]) by (app, proc)))

將返回最上面的3個(gè)CPU消費(fèi)服務(wù)叭爱。

告警可以在Alertmanager中配置撮躁,再次使用PromQL語(yǔ)言。Grafana 是一個(gè)流行的選項(xiàng)买雾,為Prometheus的指標(biāo)創(chuàng)建儀表盤把曼。

Markdown

Prometheus的設(shè)計(jì)決策

這里從Prometheus的度量終點(diǎn)開始,這些端點(diǎn)定義度量標(biāo)準(zhǔn)和值漓穿,并通過(guò)HTTP公開嗤军,它們?yōu)槭謾C(jī)度量標(biāo)準(zhǔn)提供了一種標(biāo)準(zhǔn)化的方法,Prometheus度量遵循了度量2.0所指定的許多準(zhǔn)則:度量標(biāo)準(zhǔn)有名稱晃危、描述叙赚、維度和值。唯一缺少的是度量單位僚饭。

許多服務(wù)度暴露了Prometheus端點(diǎn)震叮,這使得收集它們非常容易,對(duì)沒(méi)有本地Prometheus端點(diǎn)的其他服務(wù)鳍鸵,則需要轉(zhuǎn)換器苇瓣。這意味著對(duì)于這些服務(wù),必須部署一個(gè)額外的Sidecar容器偿乖,以公開Prometheus格式的字表击罪。

在這里討論的第二個(gè)設(shè)計(jì)決定是拉力和推力,Prometheus調(diào)查服務(wù)的指標(biāo)贪薪,這意味著如果您想要使用Prometheus監(jiān)控的所有服務(wù)都應(yīng)該公開Prometheus度量端點(diǎn)外邓,Prometheus使用服務(wù)發(fā)現(xiàn),它與Kubernetes很好的集成在一起古掏,以找到所有的服務(wù)一旦它找到了所有服務(wù)损话,將通過(guò)輪詢其他Prometheus度量端點(diǎn)收集所有這些服務(wù)的指標(biāo)。

容器

Pull方法的優(yōu)點(diǎn)是不需要安裝代理,而且可以通過(guò)多個(gè)Prometheus實(shí)例來(lái)提取指標(biāo)丧枪。

而缺點(diǎn)同樣明顯:

對(duì)于Prometheus的使用者來(lái)說(shuō)光涂,所有的公制端點(diǎn)都必須是可達(dá)的,這意味著一個(gè)更加復(fù)雜的安全網(wǎng)絡(luò)配置拧烦。

在大型部署中忘闻,擴(kuò)展成為一個(gè)問(wèn)題,Prometheus建議采用一種基于推特的方法來(lái)收集短期的工作指標(biāo)恋博。

Prometheus的主要設(shè)計(jì)目標(biāo)之一是操作簡(jiǎn)單性齐佳。這樣,Prometheus就限制了監(jiān)控系統(tǒng)的可能失效模式數(shù)量债沮,遵循著一原則炼吴,Prometheus目前只局限于單個(gè)點(diǎn),因?yàn)榧簬?lái)了額外的操作復(fù)雜性疫衩,使用單個(gè)節(jié)點(diǎn)不那么復(fù)雜硅蹦,但是對(duì)可以由Prometheus監(jiān)控的度量指標(biāo)適量有著嚴(yán)格的限制。

Prometheus不解決的問(wèn)題

Prometheus并不打算解決幾個(gè)方面的問(wèn)題:

首先是對(duì)日志的支持:這兩個(gè)指標(biāo)和日志都是為用戶的應(yīng)用程序提供完全可見性的必要部分闷煤,但是已經(jīng)有大量的開源和閉源日志聚合器來(lái)管理日志童芹。

Prometheus也不提供持久的長(zhǎng)期存儲(chǔ)、異常檢測(cè)鲤拿、自動(dòng)水平縮放和用戶管理假褪,但從作者的客戶基礎(chǔ)上,看到在多數(shù)企業(yè)環(huán)境中都需要這些特性近顷。

Prometheus不是一個(gè)Dashboarding解決方案嗜价,它提供了一個(gè)簡(jiǎn)單的UI來(lái)進(jìn)行PromQL查詢,但它依賴于移植物的操作幕庐,增加了一些額外的設(shè)置復(fù)雜度久锥。

Prometheus與Digital Ocean

在2016年的PromCon演講中,來(lái)自Digital Ocean的Matthew Campbell解釋了它們?nèi)绾螌rometheus擴(kuò)展到100萬(wàn)臺(tái)的异剥,在演講當(dāng)中瑟由,他解釋了他們是怎樣從一個(gè)默認(rèn)的Prometheus裝置開始的,以及他們必須改變什么冤寿,才能讓它變得更大歹苦。

他們以每天數(shù)據(jù)中心的一臺(tái)Prometheus機(jī)開始,遇到了可伸縮性問(wèn)題督怜,并創(chuàng)建了更大的機(jī)器來(lái)運(yùn)行Prometheus殴瘦。一旦他們將機(jī)器按最大尺寸縮放,他們將系統(tǒng)保留時(shí)間減少到3天号杠,并決定放棄某些指標(biāo)蚪腋。這種方法只能到目前為止丰歌,因此他們決定根據(jù)節(jié)點(diǎn)標(biāo)簽進(jìn)一步提高他們的Prometheus,這種方法的困難在于屉凯,查詢變得更加困難立帖,他們最終實(shí)現(xiàn)了一個(gè)從多個(gè)碎片收集數(shù)據(jù)的Prometheus代理,他們無(wú)法用這種方法解決更大的問(wèn)題是碎片重新分配和過(guò)度供應(yīng)悠砚。

當(dāng)從1萬(wàn)個(gè)服務(wù)器擴(kuò)展到100萬(wàn)個(gè)虛擬機(jī)時(shí)晓勇,他們決定采取不同的方法,創(chuàng)建了一個(gè)“反向節(jié)點(diǎn)出口商”灌旧,它基本上是安裝在節(jié)點(diǎn)上的代理绑咱,并將數(shù)據(jù)推到一個(gè)中心點(diǎn),在后端方面枢泰,他們也做了重大的改變:保留了Prometheus API描融,但添加了一個(gè)Kafka集群,用于傳入的指標(biāo)和Cassandra的度量存儲(chǔ)宗苍,他們還介紹了采樣,這個(gè)項(xiàng)目被稱為Vulcan薄榛,可用作開源讳窟。

Vulcan所采取的方法看起來(lái)很像CoScale所采取的方法,還使用代理和可伸縮敞恋、高可用的后端丽啡。

CoScal在哪里合適?

我們相信有一個(gè)標(biāo)準(zhǔn)化的度量格式有很大的價(jià)值硬猫,這使得從不同類型的服務(wù)中心收集指標(biāo)變得很容易补箍,CoScale提供了一個(gè)Prometheus插件,它收集了在Prometheus格式中暴露的指標(biāo)啸蜜,這使得您可以輕松地從已啟動(dòng)的服務(wù)中獲得指標(biāo)坑雅。

但是仍然有很多服務(wù)沒(méi)有暴露出Prometheus端點(diǎn)。為這些服務(wù)部署一個(gè)轉(zhuǎn)換器非常麻煩衬横,CoScale有廣泛的插件裹粤,支持多種服務(wù)的本地度量機(jī)制;錄用日志蜂林、Api和其他線程的度量計(jì)數(shù)器遥诉。我們還提供了收集自定義指標(biāo)的不同選項(xiàng)。

CoScale提供了一個(gè)可擴(kuò)展的插件噪叙,包括一個(gè)代理和和一個(gè)可擴(kuò)展的矮锈、高可用的后端作為SaaS和On-Premise,CoScale提供了Metrics睁蕾,指標(biāo)苞笨,和事件存儲(chǔ)(短期和長(zhǎng)期),直觀的儀表盤,告警和異常檢測(cè)猫缭。

Prometheus 2.0

Prometheus 1.0于2016年7月發(fā)布葱弟,就在前幾天,Prometheus發(fā)布了2.0的版本猜丹,帶來(lái)了巨大的性能改進(jìn)芝加,并變得更容易操作,下面讓我們看看這個(gè)版本都有哪些方面的改進(jìn)射窒。

許多公司和組織都采用了Prometheus藏杖,這個(gè)項(xiàng)目很快就擁有了一大批的活躍粉絲(開發(fā)人員)以及技術(shù)社區(qū)。5月的時(shí)候就傳出Prometheus 2.0版本的前瞻預(yù)測(cè)脉顿,據(jù)說(shuō)會(huì)有一個(gè)很大的改進(jìn)是蝌麸,有新的存儲(chǔ)層,這意味著極大地提高了Kubernetes和其他分布式系統(tǒng)的監(jiān)控可伸縮性艾疟。

Prometheus有一個(gè)簡(jiǎn)單而健壯的操作模式来吩,然而,基礎(chǔ)設(shè)施領(lǐng)域也在逐步發(fā)展蔽莱,如Kubernetes何Mesos這樣的項(xiàng)目迅速地改變了應(yīng)用部署和管理的方式弟疆,受監(jiān)控的環(huán)境變得越來(lái)越動(dòng)態(tài)化。

Prometheus存儲(chǔ)子系統(tǒng)需要仔細(xì)配置預(yù)期負(fù)載盗冷,雖然在Prometheus 1.6中怠苔,自動(dòng)調(diào)諧能力讓其大為減輕,但用戶仍然會(huì)遇到一些不可避免的硬限制仪糖。

存儲(chǔ)

2017年柑司,事情逐步發(fā)生改變,最初作為一種新的锅劝,更高效的時(shí)間序列數(shù)據(jù)庫(kù)的實(shí)驗(yàn)攒驰,在實(shí)際的基準(zhǔn)測(cè)試中得到了驗(yàn)證,在過(guò)去的6個(gè)月當(dāng)中故爵,Prometheus的開發(fā)團(tuán)隊(duì)一直在忙著穩(wěn)定這個(gè)獨(dú)立的時(shí)間序列數(shù)據(jù)庫(kù)讼育,并將其重新整合到Prometheus本身,其結(jié)果上稠集,幾乎所有的維度上都有了改進(jìn)奶段,從而顯著地提高了Prometheus 2.0的性能,查詢延遲更為一致剥纷,特別是在高串?dāng)_的情況下痹籍,在不同的實(shí)際生產(chǎn)場(chǎng)景中,度量的資源消耗也顯著減少:

  • 與Prometheus 1.8相比晦鞋,CPU使用率降低了20%-40%
  • 與Prometheus 1.8相比蹲缠,磁盤空間使用減少到33%-50%
  • 沒(méi)有太多查詢負(fù)載的磁盤I/O通常小于1%
Markdown

在未來(lái)的幾年里棺克,它還可以處理現(xiàn)代計(jì)算環(huán)境日益增長(zhǎng)的動(dòng)態(tài)特性。

Staleness handling

此外线定,許多以小見大的變化使得Prometheus更加直觀娜谊,最值得注意的是Staleness處理,它是最古老和最需要路線圖的項(xiàng)目之一斤讥,隨著新的改進(jìn)纱皆,從這些目標(biāo)中消失的監(jiān)控目標(biāo)或系列已經(jīng)被明確跟蹤,這減少了人工查詢芭商,增強(qiáng)了告警響應(yīng)能力派草。

其他改進(jìn)

Prometheus 2.0還內(nèi)置了對(duì)整個(gè)數(shù)據(jù)庫(kù)快照備份的支持。

同時(shí)铛楣,還將記錄和告警規(guī)則從一個(gè)自定義格式遷移到無(wú)處不在的YAML格式近迁,這使得集成配置管理和模塊變得更加容易。

其他的變動(dòng)改進(jìn)請(qǐng)參看:https://prometheus.io/docs/prometheus/2.0/migration/

未來(lái)計(jì)劃

會(huì)將新的存儲(chǔ)子系統(tǒng)設(shè)計(jì)為可訪問(wèn)和可擴(kuò)展的簸州,這就需要將新特性直接集成到Prometheus中鉴竭,以及可以在它之上構(gòu)建的定制工具,簡(jiǎn)單而開放的存儲(chǔ)格式和庫(kù)也允許用戶輕松構(gòu)建自定義擴(kuò)展岸浑,比如動(dòng)態(tài)保留策略搏存,這使得存儲(chǔ)層能夠滿足廣泛的需求,而無(wú)需將復(fù)雜性引入到Prometheus本身中助琐,讓它專注于它的核心目標(biāo)祭埂。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末面氓,一起剝皮案震驚了整個(gè)濱河市兵钮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌舌界,老刑警劉巖掘譬,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異呻拌,居然都是意外死亡葱轩,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門藐握,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)靴拱,“玉大人,你說(shuō)我怎么就攤上這事猾普⊥嗫唬” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵初家,是天一觀的道長(zhǎng)偎窘。 經(jīng)常有香客問(wèn)我乌助,道長(zhǎng),這世上最難降的妖魔是什么陌知? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任他托,我火速辦了婚禮,結(jié)果婚禮上仆葡,老公的妹妹穿的比我還像新娘赏参。我一直安慰自己,他們只是感情好浙芙,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布登刺。 她就那樣靜靜地躺著,像睡著了一般嗡呼。 火紅的嫁衣襯著肌膚如雪纸俭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天南窗,我揣著相機(jī)與錄音揍很,去河邊找鬼。 笑死万伤,一個(gè)胖子當(dāng)著我的面吹牛窒悔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播敌买,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼简珠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了虹钮?” 一聲冷哼從身側(cè)響起聋庵,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎芙粱,沒(méi)想到半個(gè)月后祭玉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡春畔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年脱货,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片律姨。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡振峻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出择份,到底是詐尸還是另有隱情扣孟,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布缓淹,位于F島的核電站哈打,受9級(jí)特大地震影響塔逃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜料仗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一湾盗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧立轧,春花似錦格粪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至胜卤,卻和暖如春疆导,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背葛躏。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工澈段, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人舰攒。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓败富,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親摩窃。 傳聞我的和親對(duì)象是個(gè)殘疾皇子兽叮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

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