成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用 Prometheus 監(jiān)控 Docker 容器

big_cat / 1632人閱讀

摘要:傳統(tǒng)方法比如說你想監(jiān)控你容器的內(nèi)存使用率。不支持維度數(shù)據(jù),這樣一個名為的容器的指標(biāo),可能被稱為。這是非常偉大并且有用的,但是有限制性。這個輸出器使用容器的名字,和鏡像作為維度。

  

本文的原作者是 johannes-fish-ziemke,原文地址是 http://5pi.de/2015/01/26/monitor-docker-containers-with-prometheus/

  

該文中介紹的 Prometheus 的項目地址是 https://prometheus.github.io/

監(jiān)控 Docker

在容器中運行你所有的服務(wù)使得獲取深度資源和運行特性成為可能,因為每個容器運行在它們自己的 cgroup 中并且 Linux 內(nèi)核給我們提供了各種各樣的指標(biāo)(metrics)。

盡管有一些其他的 Docker 監(jiān)控工具,我將給你們展示我為什么認為 SoundCloud 最新發(fā)布的 Prometheus 是最適合監(jiān)控基于容器的基礎(chǔ)架構(gòu)。

Prometheus 特點是高維度數(shù)據(jù)模型,時間序列是通過一個度量值名字和一套鍵值對識別。靈活的查詢語言允許查詢和繪制數(shù)據(jù)。它采用了先進的度量標(biāo)準(zhǔn)類型像匯總(summaries),從指定時間跨度的總數(shù)構(gòu)建比率或者是在任何異常的時候報警并且沒有任何依賴,中斷期間使它成為一個可靠的系統(tǒng)進行調(diào)試。

我會集中講為什么該數(shù)據(jù)模型和查詢語言如此貼合容器式和動態(tài)基礎(chǔ)設(shè)施,對于這些基礎(chǔ)設(shè)施,你應(yīng)該想著整個服務(wù)集群而不是單個服務(wù)器實例,把服務(wù)器想成牛群中的牛而不是各家自養(yǎng)分散開的寵物。

傳統(tǒng)方法

比如說你想監(jiān)控你容器的內(nèi)存使用率。不支持維度數(shù)據(jù),這樣一個名為 webapp123 的容器的指標(biāo),可能被稱為 container_memory_usage_bytes_webapp123。

但是如果你想展示所有你的 webapp123 容器的內(nèi)存利用率?更先進的監(jiān)控解決方案像 graphite 支持這樣。它的特性是層次,樹狀數(shù)據(jù)模型,這樣的指標(biāo)可能被稱為 container.memory_usage_bytes.webapp123。現(xiàn)在你可以使用正則表達式像 container.memory_usage_bytes.webapp* 來繪制所有你的 ‘webapp’ 容器的內(nèi)存使用率。Graphite 也支持函數(shù)像 sum() 來通過使用一個表達式像 sum(container.memory_usage_bytes.webapp*) 聚合你所有服務(wù)器上的應(yīng)用的內(nèi)存使用率。

這是非常偉大并且有用的,但是有限制性。如果你不想聚合一個給定名字的所有容器而是一個給定鏡像的?或者你想把部署你的 canary 同在你生產(chǎn)環(huán)境的服務(wù)器對比?

可以為每個用例想出一個層次結(jié)構(gòu),但是沒有一個支持它們?,F(xiàn)實情況顯示,你預(yù)先往往不知道哪個問題需要從新回答一次并且你開始研究。

Prometheus

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

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

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

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"}  
...
...

如果你運行了許多容器,這個看起來像這樣

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

切片 & 切塊(Slice & Dice)

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

Prometheus 也支持正則表達式,因此匹配完整的腳本你可以這樣做 container_memory_usage_bytes{name=~"^consul"},這將展示起來像這樣:

你也使用使用任何維度過濾,因此你可以獲取在一個給定主機,給定環(huán)境和給定區(qū)域上所有容器的指標(biāo)。

聚合(Aggregation)

和 Graphite 類似,Prometheus 支持聚合函數(shù)但是它的維度更加豐富。使用 sum(container_memory_usage_bytes{name=~"^consul"}) 按預(yù)期匯總你所有 "consul-*" 的內(nèi)存使用率。

現(xiàn)在比如說你想看你的 "consul" 和 "consul-server" 容器平均內(nèi)存使用率的不同,這可以通過提供維度保存這聚合結(jié)果像 avg(container_memory_usage_bytes{name=~"^consul"}) by (name) 來實現(xiàn):

如果你在多個區(qū)域有服務(wù)并且配置了區(qū)域名作為一個額外的標(biāo)簽對,你也可以保存維度來展示每個名字和區(qū)域的內(nèi)存使用率,通過使用一個像這樣的表達式 avg(container_memory_usage_bytes{name=~"^consul"}) by (name,zone)。

使用 Prometheus + Container-Exporter

正如你所知,我喜歡在容器中運行一切,包括 container-exporter 和 Prometheus,運行 container-exporter 應(yīng)該是非常容易的:

docker run -p 8080:8080 -v /sys/fs/cgroup:/cgroup   
           -v /var/run/docker.sock:/var/run/docker.sock prom/container-exporter

現(xiàn)在你需要安裝 Prometheus。關(guān)于這個參考官方文檔。為了使得 Prometheus 從 container-exporter 拉取指標(biāo),你需要把它作為目標(biāo)添加到配置。比如:

job: {  
  name: "container-exporter"
  scrape_interval: "1m"
  target_group: {
      labels: {
        label: {
            name: "zone"
            value: "us-east-1"
        }
        label: {
            name: "env"
            value: "prod"
        }
    }
    target: "http://1.2.3.4:8080/metrics"
  }
}

現(xiàn)在從新構(gòu)建你的鏡像如文檔中描述的那樣并啟動它。Prometheus 現(xiàn)在應(yīng)該每 60s 輪詢你的 container-exporter。

總結(jié)

因為 Prometheus 的靈活性,它的性能和最小化依賴,它是我選擇的監(jiān)控系統(tǒng)。這就是為什么從去年起我介紹了 Prometheus 作為我們監(jiān)控 Docker 的主要監(jiān)控系統(tǒng)。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/26362.html

相關(guān)文章

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

    摘要:由發(fā)明,適合于監(jiān)控基于容器的基礎(chǔ)架構(gòu)。有關(guān)其數(shù)據(jù)聚合的功能可以閱讀數(shù)據(jù)聚合分組新一代系統(tǒng)監(jiān)控的核心功能。所抓取的性能指標(biāo)算是較為全面,部署和展現(xiàn)方式都是相當(dāng)簡單易懂的。 如今,越來越多的公司開始使用 Docker 了,2 / 3 的公司在嘗試了 Docker 后最終使用了它。為了能夠更精確的分配每個容器能使用的資源,我們想要實時獲取容器運行時使用資源的情況,怎樣對 Docker 上的應(yīng)...

    liuyix 評論0 收藏0
  • Docker 監(jiān)控實戰(zhàn)

    摘要:監(jiān)控告警是運營系統(tǒng)最核心的功能之一,騰訊內(nèi)部有一套很成熟的監(jiān)控告警平臺,而且開發(fā)運維同學(xué)已經(jīng)習(xí)慣這套平臺,如果我們針對容器再開發(fā)一個監(jiān)控告警平臺,會花費很多精力,而且沒有太大的意義。也是一款付費監(jiān)控解決方案,計劃收費方案是美分小時。 如今,越來越多的公司開始使用 Docker 了,現(xiàn)在來給大家看幾組數(shù)據(jù): 2 / 3 的公司在嘗試了 Docker 后最終使用了它 也就是說 Docker...

    william 評論0 收藏0
  • 容器監(jiān)控實踐—Prometheus數(shù)據(jù)可視化

    摘要:二可視化是一個開源的圖表可視化系統(tǒng),簡單說圖表配置比較方便生成的圖表比較漂亮。 一. 概述 Prometheus自帶了一個web服務(wù),包括一個默認的dashboard,可以使用表達式查詢并進行圖表可視化,默認服務(wù)的地址為:http://prometheus_ip:9090 如下圖: showImg(https://segmentfault.com/img/remote/14600000...

    URLOS 評論0 收藏0
  • 容器監(jiān)控實踐—Prometheus數(shù)據(jù)可視化

    摘要:二可視化是一個開源的圖表可視化系統(tǒng),簡單說圖表配置比較方便生成的圖表比較漂亮。 一. 概述 Prometheus自帶了一個web服務(wù),包括一個默認的dashboard,可以使用表達式查詢并進行圖表可視化,默認服務(wù)的地址為:http://prometheus_ip:9090 如下圖: showImg(https://segmentfault.com/img/remote/14600000...

    趙連江 評論0 收藏0
  • 容器監(jiān)控實踐—Prometheus數(shù)據(jù)可視化

    摘要:二可視化是一個開源的圖表可視化系統(tǒng),簡單說圖表配置比較方便生成的圖表比較漂亮。 一. 概述 Prometheus自帶了一個web服務(wù),包括一個默認的dashboard,可以使用表達式查詢并進行圖表可視化,默認服務(wù)的地址為:http://prometheus_ip:9090 如下圖: showImg(https://segmentfault.com/img/remote/14600000...

    dayday_up 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<