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

資訊專欄INFORMATION COLUMN

容器監(jiān)控實踐—cAdvisor

kbyyd24 / 2185人閱讀

摘要:在中包含大量的了相關(guān)的信息參考原生監(jiān)控文章的收集器更多源碼參考文章總結(jié)優(yōu)缺點優(yōu)點谷歌開源產(chǎn)品,監(jiān)控指標齊全,部署方便,而且有官方的鏡像。

概述

為了解決docker stats的問題(存儲、展示),谷歌開源的cadvisor誕生了,cadvisor不僅可以搜集一臺機器上所有運行的容器信息,還提供基礎(chǔ)查詢界面和http接口,方便其他組件如Prometheus進行數(shù)據(jù)抓取,或者cadvisor + influxdb + grafna搭配使用。

cAdvisor可以對節(jié)點機器上的資源及容器進行實時監(jiān)控和性能數(shù)據(jù)采集,包括CPU使用情況、內(nèi)存使用情況、網(wǎng)絡吞吐量及文件系統(tǒng)使用情況

Cadvisor使用Go語言開發(fā),利用Linux的cgroups獲取容器的資源使用信息,在K8S中集成在Kubelet里作為默認啟動項,官方標配。

安裝

1.使用二進制部署

下載二進制:https://github.com/google/cadvisor/releases/latest
本地運行:./cadvisor  -port=8080 &>>/var/log/cadvisor.log

2.使用docker部署

docker run 
  --volume=/:/rootfs:ro 
  --volume=/var/run:/var/run:rw 
  --volume=/sys:/sys:ro 
  --volume=/var/lib/docker/:/var/lib/docker:ro 
  --volume=/dev/disk/:/dev/disk:ro 
  --publish=8080:8080 
  --detach=true 
  --name=cadvisor 
  google/cadvisor:latest
注意:

在Ret Hat,CentOS, Fedora 等發(fā)行版上需要傳遞如下參數(shù),因為 SELinux 加強了安全策略:

--privileged=true
  
啟動后訪問:http://127.0.0.1:8080查看頁面,/metric查看指標

* 常見指標:http://yjph83.iteye.com/blog/2394091
* 指標分析:https://luoji.live/cadvisor/cadvisor-source-code-metrics-20160927.html`

3.kubernetes中使用

* Daemonset部署: https://github.com/google/cadvisor/tree/master/deploy/kubernetes
* kubelet自帶cadvisor監(jiān)控所有節(jié)點,可以設(shè)置--cadvisor-port=8080指定端口(默認為4194)
* kubernetes 在2015-03-10 這個提交(Run cAdvisor inside the Kubelet. Victor Marmol 2015/3/10 13:39)中cAdvisor開始集成在kubelet中,目前的1.6及以后均存在

注意:

從 v1.7 開始,Kubelet metrics API 不再包含 cadvisor metrics,而是提供了一個獨立的 API 接口:

* Kubelet metrics: http://127.0.0.1:8001/api/v1/proxy/nodes//metrics

* Cadvisor metrics: http://127.0.0.1:8001/api/v1/proxy/nodes//metrics/cadvisor

cadvisor 監(jiān)聽的端口將在 v1.12 中刪除,建議所有外部工具使用 Kubelet Metrics API 替代。
常用搭配 1.cAdvisor+Heapster+influxdb

Heapster:在k8s集群中獲取metrics和事件數(shù)據(jù),寫入InfluxDB,heapster收集的數(shù)據(jù)比cadvisor多,卻全,而且存儲在influxdb的也少。

Heapster將每個Node上的cAdvisor的數(shù)據(jù)進行匯總,然后導到InfluxDB。

Heapster的前提是使用cAdvisor采集每個node上主機和容器資源的使用情況,
再將所有node上的數(shù)據(jù)進行聚合。

這樣不僅可以看到Kubernetes集群的資源情況,
還可以分別查看每個node/namespace及每個node/namespace下pod的資源情況。
可以從cluster,node,pod的各個層面提供詳細的資源使用情況。

InfluxDB:時序數(shù)據(jù)庫,提供數(shù)據(jù)的存儲,存儲在指定的目錄下。

Grafana:提供了WEB控制臺,自定義查詢指標,從InfluxDB查詢數(shù)據(jù)并展示。

cAdvisor+Prometheus+Grafana

訪問http://localhost:8080/metrics,可以拿到cAdvisor暴露給 Prometheus的數(shù)據(jù)

其他內(nèi)容參考后續(xù)的prometheus文章

深入解析

cAdvisor結(jié)構(gòu)圖

cadvisor地址:https://github.com/google/cad...

主函數(shù)邏輯:(cadvisor/cadvisor.go)

通過new出來的memoryStorage以及sysfs實例,創(chuàng)建一個manager實例,manager的interface中定義了許多用于獲取容器和machine信息的函數(shù)

核心函數(shù):

生成manager實例的時候,還需要傳遞兩個額外的參數(shù),分別是

maxHousekeepingInterval:存在內(nèi)存的時間,默認60s

allowDynamicHousekeeping:是否允許動態(tài)配置housekeeping,也就是下一次開始搜集容器信息的時間,默認true

因為需要暴露服務,所以在handler文件中,將上面生成的containerManager注冊進去(cadvisor/http/handler.go),之后就是啟動manager,運行其Start方法,開始搜集信息,存儲信息的循環(huán)操作。

以memory采集為例:

具體的信息還是通過runc/libcontainer獲得,libcontainer是對cgroup的封裝。在/sys/fs/cgroup/memory中包含大量的了memory相關(guān)的信息(參考docker原生監(jiān)控文章)

Prometheus的收集器(cadvisor/metrics/prometheus.go)

更多源碼參考文章:https://luoji.live/categories...

總結(jié)

優(yōu)缺點:

優(yōu)點:谷歌開源產(chǎn)品,監(jiān)控指標齊全,部署方便,而且有官方的docker鏡像。

缺點:是集成度不高,默認只在本地保存1分鐘數(shù)據(jù),但可以集成InfluxDB等存儲

備注:

愛奇藝參照cadvisor開發(fā)的dadvisor,數(shù)據(jù)寫入graphite,
等同于cadvisor+influxdb,但dadvisor并沒有開源

本文為容器監(jiān)控實踐系列文章,完整內(nèi)容見:container-monitor-book

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

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

相關(guān)文章

  • 容器監(jiān)控實踐cAdvisor

    摘要:在中包含大量的了相關(guān)的信息參考原生監(jiān)控文章的收集器更多源碼參考文章總結(jié)優(yōu)缺點優(yōu)點谷歌開源產(chǎn)品,監(jiān)控指標齊全,部署方便,而且有官方的鏡像。 概述 為了解決docker stats的問題(存儲、展示),谷歌開源的cadvisor誕生了,cadvisor不僅可以搜集一臺機器上所有運行的容器信息,還提供基礎(chǔ)查詢界面和http接口,方便其他組件如Prometheus進行數(shù)據(jù)抓取,或者cadvis...

    andycall 評論0 收藏0
  • Docker容器可視化監(jiān)控中心搭建

    showImg(https://segmentfault.com/img/remote/1460000014421849); 概述 一個宿主機上可以運行多個容器化應用,容器化應用運行于宿主機上,我們需要知道該容器的運行情況,包括 CPU使用率、內(nèi)存占用、網(wǎng)絡狀況以及磁盤空間等等一系列信息,而且這些信息隨時間變化,我們稱其為時序數(shù)據(jù),本文將實操 如何搭建一個可視化的監(jiān)控中心 來收集這些承載著具體應...

    yunhao 評論0 收藏0
  • 容器監(jiān)控實踐—Heapster

    摘要:還可以把數(shù)據(jù)導入到第三方工具展示或使用場景共同組成了一個流行的監(jiān)控解決方案原生的監(jiān)控圖表信息來自在中也用到了,將作為,向其獲取,作為水平擴縮容的監(jiān)控依據(jù)監(jiān)控指標流程首先從獲取集群中所有的信息。 概述 該項目將被廢棄(RETIRED) Heapster是Kubernetes旗下的一個項目,Heapster是一個收集者,并不是采集 1.Heapster可以收集Node節(jié)點上的cAdvis...

    DDreach 評論0 收藏0
  • 容器監(jiān)控實踐—Heapster

    摘要:還可以把數(shù)據(jù)導入到第三方工具展示或使用場景共同組成了一個流行的監(jiān)控解決方案原生的監(jiān)控圖表信息來自在中也用到了,將作為,向其獲取,作為水平擴縮容的監(jiān)控依據(jù)監(jiān)控指標流程首先從獲取集群中所有的信息。 概述 該項目將被廢棄(RETIRED) Heapster是Kubernetes旗下的一個項目,Heapster是一個收集者,并不是采集 1.Heapster可以收集Node節(jié)點上的cAdvis...

    寵來也 評論0 收藏0
  • Docker 容器監(jiān)控系統(tǒng)初探

    摘要:是一個時序數(shù)據(jù)庫,專門用于存儲時序相關(guān)數(shù)據(jù),很適合存儲的數(shù)據(jù)。容器監(jiān)控數(shù)據(jù)存儲配置和運行是一個開源的分布式時序數(shù)據(jù)庫,使用語言開發(fā)。的特色功能作為時序數(shù)據(jù)庫,相比傳統(tǒng)數(shù)據(jù)庫它有很多特色功能,比如獨有的一些特色函數(shù)和連續(xù)查詢功能。 本文已獲得原作者__七把刀__授權(quán)。 隨著線上服務的全面 docker 化,對 docker 容器的監(jiān)控就很重要了。SA 的監(jiān)控系統(tǒng)是物理機的監(jiān)控,在一個物理...

    aboutU 評論0 收藏0

發(fā)表評論

0條評論

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