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

資訊專欄INFORMATION COLUMN

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

andycall / 1111人閱讀

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

概述

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

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

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

安裝

1.使用二進(jìn)制部署

下載二進(jìn)制:https://github.com/google/cadvisor/releases/latest
本地運(yùn)行:./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ù),因?yàn)?SELinux 加強(qiáng)了安全策略:

--privileged=true
  
啟動(dòng)后訪問:http://127.0.0.1:8080查看頁(yè)面,/metric查看指標(biāo)

* 常見指標(biāo):http://yjph83.iteye.com/blog/2394091
* 指標(biāo)分析: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é)點(diǎn),可以設(shè)置--cadvisor-port=8080指定端口(默認(rèn)為4194)
* kubernetes 在2015-03-10 這個(gè)提交(Run cAdvisor inside the Kubelet. Victor Marmol 2015/3/10 13:39)中cAdvisor開始集成在kubelet中,目前的1.6及以后均存在

注意:

從 v1.7 開始,Kubelet metrics API 不再包含 cadvisor metrics,而是提供了一個(gè)獨(dú)立的 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多,卻全,而且存儲(chǔ)在influxdb的也少。

Heapster將每個(gè)Node上的cAdvisor的數(shù)據(jù)進(jìn)行匯總,然后導(dǎo)到InfluxDB。

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

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

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

Grafana:提供了WEB控制臺(tái),自定義查詢指標(biāo),從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實(shí)例,創(chuàng)建一個(gè)manager實(shí)例,manager的interface中定義了許多用于獲取容器和machine信息的函數(shù)

核心函數(shù):

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

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

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

因?yàn)樾枰┞斗?wù),所以在handler文件中,將上面生成的containerManager注冊(cè)進(jìn)去(cadvisor/http/handler.go),之后就是啟動(dòng)manager,運(yùn)行其Start方法,開始搜集信息,存儲(chǔ)信息的循環(huán)操作。

以memory采集為例:

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

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

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

總結(jié)

優(yōu)缺點(diǎn):

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

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

備注:

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

    aboutU 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<