Docker 監(jiān)控- Prometheus VS Cloud Insight

如今铜幽,越來越多的公司開始使用 Docker 了,2 / 3 的公司在嘗試了 Docker 后最終使用了它。為了能夠更精確的分配每個容器能使用的資源,我們想要實時獲取容器運行時使用資源的情況锭汛,怎樣對 Docker 上的應用進行監(jiān)控呢?Docker 的結構會不會加大監(jiān)控難度袭蝗?

可是在沒有專業(yè)運維團隊來監(jiān)控 Docker 的情況下唤殴,并且還想加快 Docker 監(jiān)控的日程,怎么辦呢到腥?

我們通過調查了解到幾種不錯的 Docker 監(jiān)控方法眨八,其中 Prometheus 和 Cloud Insight 讓人很感興趣。

Prometheis

先來說說一套開源的 Docker 監(jiān)控方案:Prometheus左电;而此篇文字的原文地址:Monitor Docker Containers with Prometheus

Prometheus 由 SoundCloud 發(fā)明,適合于監(jiān)控基于容器的基礎架構篓足。Prometheus 特點是高維度數(shù)據(jù)模型段誊,時間序列是通過一個度量值名字和一套鍵值對識別。靈活的查詢語言允許查詢和繪制數(shù)據(jù)栈拖。它采用了先進的度量標準類型像匯總(summaries)连舍,從指定時間跨度的總數(shù)構建比率或者是在任何異常的時候報警并且沒有任何依賴,中斷期間使它成為一個可靠的系統(tǒng)進行調試涩哟。

Prometheus 支持維度數(shù)據(jù)索赏,你可以擁有全局和簡單的指標名像 container_memory_usage_bytes ,使用多個維度來標識你服務的指定實例贴彼。

我已經創(chuàng)建了一個簡單的 container-exporter 來收集 Docker 容器的指標以及輸出給 Prometheus 來消費潜腻。這個輸出器使用容器的名字,id 和 鏡像作為維度器仗。額外的 per-exporter 維度可以在 prometheus.conf 中設置融涣。

如果你使用指標名字直接作為一個查詢表達式,它將返回有這個使用這個指標名字作為標簽的所有時間序列精钮。

container_memory_usage_bytes{env="prod",id="23f731ee29ae12fef1ef6726e2fce60e5e37342ee9e35cb47e3c7a24422f9e88",instance="http://1.2.3.4:9088/metrics",job="container-exporter",name="haproxy-exporter-int",image="prom/haproxy-exporter:latest"} 11468800.000000

container_memory_usage_bytes{env="prod",id="57690ddfd3bb954d59b2d9dcd7379b308fbe999bce057951aa3d45211c0b5f8c",instance="http://1.2.3.5:9088/metrics",job="container-exporter",name="haproxy-exporter",image="prom/haproxy-exporter:latest"} 16809984.000000

container_memory_usage_bytes{env="prod",id="907ac267ebb3299af08a276e4ea6fd7bf3cb26632889d9394900adc832a302b4",instance="http://1.2.3.2:9088/metrics",job="container-exporter",name="node-exporter",image="prom/container-exporter:latest"}
... ...
如果你運行了許多容器威鹿,這個看起來像這樣:

Docker 監(jiān)控- Prometheus VS Cloud Insight

為了幫助你使得這數(shù)據(jù)更有意義,你可以過濾(filter) and/or 聚合(aggregate) 這些指標轨香。

使用 Prometheus 的查詢語言忽你,你可以對你想的任何維度的數(shù)據(jù)切片和切塊。如果你對一個給定名字的所有容器感興趣臂容,你可以使用一個表達式像 container_memory_usage_bytes{name="consul-server"}科雳,這個將僅僅顯示 name == "consul-server"的時間序列。

像多維度的數(shù)據(jù)模型策橘,來實現(xiàn)數(shù)據(jù)聚合炸渡、分組、過濾丽已,不單單是 Prometheus蚌堵。OpenTSDB 和 InfluxDB 這些時間序列數(shù)據(jù)庫和系統(tǒng)監(jiān)控工具的結合,讓系統(tǒng)監(jiān)控這件事情變得更加的多元沛婴。

接下來吼畏,我們?yōu)榇蠹医榻B國內一家同樣提供該功能的監(jiān)控方案:Cloud Insight。有關其數(shù)據(jù)聚合的功能可以閱讀:數(shù)據(jù)聚合 & 分組:新一代系統(tǒng)監(jiān)控的核心功能嘁灯。

現(xiàn)在我們來對比 Prometheus 和 Cloud Insight 在數(shù)據(jù)聚合泻蚊、分組(切片)上的展現(xiàn)效果和功能。

數(shù)據(jù)聚合

根據(jù)不同的 Container Name 或 Image Name 對內存使用量或 Memeory Cache 進行聚合丑婿。

Docker 監(jiān)控- Prometheus VS Cloud Insight

數(shù)據(jù)分組(切片)

根據(jù)不同的 Container Name 或 Image Name 對內存使用量或 Memeory Cache進行分組(切片)性雄。

Docker 監(jiān)控- Prometheus VS Cloud Insight

Cloud Insight

Cloud Insight 支持多種操作系統(tǒng)没卸、云主機、數(shù)據(jù)庫和中間件的監(jiān)控秒旋,原理是在平臺服務儀表盤和自定義儀表盤中约计,采集并處理 Metric,對數(shù)據(jù)進行聚合與分組等計算迁筛,提供曲線圖煤蚌、柱狀圖等多樣化的展現(xiàn)形式。優(yōu)點是監(jiān)控的指標很全细卧,簡單易用尉桩,也可以期待一下。

Cloud Insight 監(jiān)控 Docker 試驗

我們用 AcmeAir 作為試驗的應用贪庙,AcmeAir 是一款由原 IBM 新技術架構部資深工程師 Andrew Spyker蜘犁,利用 Netflix 開源的 Netflix OSS 打造的開源電子商務應用。

首先插勤,我們要打開 Cloud Insight 監(jiān)控沽瘦,還好 Cloud Insight 安裝簡單,一條命令即可农尖。接著析恋,我們新建一個用于此次監(jiān)控的儀表盤,依次將想要獲取的指標統(tǒng)統(tǒng)添加進去盛卡。

我們添加了以下指標:

  • docker.cpu.user
  • docker.cpu.sysytem
  • docker.containers.running
  • jvm.heap_memory
  • jvm.non_heap_memory
  • jvm.gc.cms.count
  • jvm.heap_memory_max
  • jvm.gc.parnew.time

應用 Acme 部署在四臺 servers 上助隧,我們開啟四臺 servers, 然后用 JMeter 給應用加壓。

Docker 監(jiān)控- Prometheus VS Cloud Insight

隨著時間 JMeter 不斷給應用加壓滑沧,當 users 人數(shù)達到188時并村,我們再來看一下儀表盤的視圖。

Docker 監(jiān)控- Prometheus VS Cloud Insight

從圖中可以看到滓技,性能數(shù)據(jù)發(fā)生了變化哩牍,根據(jù) JMeter 里的數(shù)據(jù),此時 CPU 占用超過了50%令漂,錯誤率也有所提升膝昆;對比來看,根據(jù) Cloud Insight 里的曲線顯示叠必,藍色的線所代表的 Container CPU 占用率已經超過50%荚孵,逐漸接近75%,系統(tǒng)剩余的 CPU 資源逐漸下降纬朝,該 Container 的系統(tǒng) CPU 資源消耗也突然增大收叶。我們可以通過這些定位到 CPU 占用率過高的 Container ,及時而主動地去了解性能瓶頸共苛,從而優(yōu)化性能判没,合理分配資源蜓萄。Cloud Insight 所抓取的性能指標算是較為全面,部署和展現(xiàn)方式都是相當簡單易懂的哆致。

總結

Docker 兼容相比其他的數(shù)據(jù)庫绕德、系統(tǒng)、中間件監(jiān)控摊阀,要復雜一些。由于需要表征不同 Container 的性能消耗踪蹬,來了解不同應用的運行情況胞此,所以數(shù)據(jù)的聚合、切片(分組)和過濾跃捣,在 Docker 監(jiān)控中成為了必備功能漱牵。

所以我們推薦使用了時間序列數(shù)據(jù)庫,或者類似設計邏輯的監(jiān)控方案疚漆,如:Prometheus 和 Cloud Insight酣胀。

而 Docker 單方面的監(jiān)控,可能不太滿足一些大型公司的需求娶聘,如果一個工具在監(jiān)控 Docker 同時能夠監(jiān)控其他組件闻镶,那就更好了。

國外出現(xiàn)了 Graphite丸升、Grafana 和 Host Graphite铆农,能夠讓用戶將不同數(shù)據(jù)來源都集中在同一個地方進行展現(xiàn);而國內 Cloud Insight 似乎也是這樣的思路狡耻。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(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
  • 文/不壞的土叔 我叫張陵坑赡,是天一觀的道長烙如。 經常有香客問我,道長毅否,這世上最難降的妖魔是什么亚铁? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮螟加,結果婚禮上徘溢,老公的妹妹穿的比我還像新娘。我一直安慰自己捆探,他們只是感情好然爆,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著黍图,像睡著了一般曾雕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上助被,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天剖张,我揣著相機與錄音,去河邊找鬼揩环。 笑死搔弄,一個胖子當著我的面吹牛,可吹牛的內容都是我干的检盼。 我是一名探鬼主播肯污,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼吨枉!你這毒婦竟也來了蹦渣?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤貌亭,失蹤者是張志新(化名)和其女友劉穎柬唯,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體圃庭,經...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡锄奢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了剧腻。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拘央。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖书在,靈堂內的尸體忽然破棺而出灰伟,到底是詐尸還是另有隱情,我是刑警寧澤儒旬,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布栏账,位于F島的核電站帖族,受9級特大地震影響,放射性物質發(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

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理窥翩,服務發(fā)現(xiàn),斷路器鳞仙,智...
    卡卡羅2017閱讀 134,711評論 18 139
  • 如今寇蚊,越來越多的公司開始使用 Docker 了,現(xiàn)在來給大家看幾組數(shù)據(jù): 2 / 3 的公司在嘗試了 Docker...
    OneAPM閱讀 1,528評論 0 15
  • 過去的一年中棍好,關于 Docker 的話題從未斷過仗岸,而如今,從嘗試 Docker 到最終決定使用 Docker 的轉...
    OneAPM_Official閱讀 658評論 0 1
  • 輕量級虛擬化容器 Docker借笙,自發(fā)布以來便廣受業(yè)界關注扒怖,在開源界和企業(yè)界掀起了一陣風。Docker 容器相對于 ...
    OneAPM閱讀 1,621評論 0 2
  • OneAPM 作為應用性能領域的新興領軍企業(yè)业稼,近期發(fā)布了重量級新產品—— Cloud Insight 數(shù)據(jù)管理平...
    OneAPM閱讀 38,161評論 2 6