摘要:本文已獲得原作者霸都民工哥授權(quán)。對于容器的監(jiān)控方案可謂多種多樣,本身自帶命令。今天民工哥要介紹的是一款開源方案。所以我們要使用將這些實時監(jiān)控到的信息存放起來。
本文已獲得原作者霸都民工哥授權(quán)。
為什么需要監(jiān)控??對于一個物理機(jī)上運(yùn)行多個容器應(yīng)用時,容器的運(yùn)行情況如:CPU使用率、內(nèi)存使用率、網(wǎng)絡(luò)狀態(tài)、磁盤空間等信息,都是需要去了解的,因此監(jiān)控是必須的。對于容器的監(jiān)控方案可謂多種多樣,本身自帶命令docker stats。
[root@docker ~]# docker stats CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS bd96d72ed9c7 0.04% 14.97 MiB / 7.64 GiB 0.19% 8.22 MB / 805 MB 0 B / 0 B 9 665563143eb7 0.01% 18.12 MiB / 7.64 GiB 0.23% 19.7 MB / 18.5 MB 0 B / 39.4 MB 8 f2304dad5855 0.18% 98.45 MiB / 7.64 GiB 1.26% 1.07 GB / 9.97 MB 0 B / 2.13 GB 9
今天民工哥要介紹的是一款開源方案 cAdvisor+InfluxDB+Grafana。
組件簡介 cAdvisor:用于數(shù)據(jù)采集cadvisor谷歌公司自己用來監(jiān)控他們基礎(chǔ)設(shè)施的一款工具,這個工具厲害之處不僅能監(jiān)控docker容器的實時信息,而且還能將你的cadvisor這容器所在的主機(jī)的系統(tǒng)的實時信息,但是由于cadvisor只是能監(jiān)控到實時的信息而不能保存。
InfluxDB 是用 Go 語言編寫的一個開源分布式時序、事件和指標(biāo)數(shù)據(jù)庫,無需外部依賴。所以我們要使用 influxdb 將這些實時監(jiān)控到的信息存放起來。
基于時間序列,支持與時間有關(guān)的相關(guān)函數(shù)(如最大,最小,求和等);
可度量性:你可以實時對大量數(shù)據(jù)進(jìn)行計算;
基于事件:它支持任意的事件數(shù)據(jù);
Grafana: 用于數(shù)據(jù)展示無結(jié)構(gòu)(無模式);
可以是任意數(shù)量的列;
可拓展的;
支持 min, max, sum, count, mean, median 等一系列函數(shù),方便統(tǒng)計;
原生的 HTTP 支持,內(nèi)置 HTTP API;
強(qiáng)大的類 SQL 語法;
自帶管理界面,方便使用
參考文章:https://www.influxdata.com/pr...
Grafana 是一個可視化面板(Dashboard),有著非常漂亮的圖表和布局展示,功能齊全的度量儀表盤和圖形編輯器,支持 Graphite、zabbix、InfluxDB、Prometheus 和 OpenTSDB 作為數(shù)據(jù)源。
靈活豐富的圖形化選項
可以混合多種風(fēng)格
支持白天和夜間模式
多個數(shù)據(jù)源
首先得有 docker 環(huán)境,這個就不用介紹了吧,請參考前面的文章
Docker 容器技術(shù)入門(一)
1、部署 influxDB 服務(wù)[root@master ~]# docker run -d --name influxdb -p 8086:8086 tutum/influxdb Unable to find image "tutum/influxdb:latest" locally Trying to pull repository docker.io/tutum/influxdb ... latest: Pulling from docker.io/tutum/influxdb a3ed95caeb02: Pull complete 23efb549476f: Pull complete aa2f8df21433: Pull complete ef072d3c9b41: Pull complete c9f371853f28: Pull complete a248b0871c3c: Pull complete 749db6d368d0: Pull complete db2492acfcc3: Pull complete b7e7d2e12d53: Pull complete 4272a53eef10: Pull complete 9b2fefdb5321: Pull complete Digest: sha256:5b7c5e318303ad059f3d1a73d084c12cb39ae4f35f7391b79b0ff2c0ba45304b Status: Downloaded newer image for docker.io/tutum/influxdb:latest f384db08ffc78e01fc27bf4c35dc6503b0fd2473cd8d5114b4d8a5475f928b53
說明:
-d :后臺運(yùn)行此容器
--name :啟運(yùn)容器分配名字influxdb
-p :映射端口,8083端口為infuxdb管理端口,8086端口是infuxdb的數(shù)據(jù)端口
tutum/influxdb:通過這個容器來運(yùn)行的,默認(rèn)會在docker官方倉庫pull下來
查看容器
[root@master ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f2304dad5855 tutum/influxdb "/run.sh" 4 seconds ago Up 4 seconds 0.0.0.0:8083->8083/tcp, 0.0.0.0:8086->8086/tcp influxdb
現(xiàn)在可以通過瀏覽器去訪問influxdb的管理端了
接下來創(chuàng)建cadvisor的數(shù)據(jù)庫與用戶,這個用于后期配置granfa
回車直接創(chuàng)建完成如下圖
創(chuàng)建管理用戶
創(chuàng)建完成如下圖
同時也是可以使用CLI命令行界面來創(chuàng)建的,命令一樣
2、布署cadvisor服務(wù)[root@master ~]# docker run -d --name=cadvisor -p 8082:8080 -v /:/rootfs,ro -v /var/run:/var/run -v /sys:/sys,ro -v /var/lib/docker/:/var/lib/docker,ro google/cadvisor -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086 Unable to find image "google/cadvisor:latest" locally Trying to pull repository docker.io/google/cadvisor ... latest: Pulling from docker.io/google/cadvisor ab7e51e37a18: Pull complete a2dc2f1bce51: Pull complete 3b017de60d4f: Pull complete Digest: sha256:9e347affc725efd3bfe95aa69362cf833aa810f84e6cb9eed1cb65c35216632a Status: Downloaded newer image for docker.io/google/cadvisor:latest a212dc33c9424b6e36485334511e6317bdebc06977b9af374b81b0cab113e724
說明:
-d :后臺運(yùn)行此容器
--name :啟運(yùn)容器分配名字cadvisor
-p :映射端口8082:8080(由于環(huán)境8080端口被占用,cadvisor默認(rèn)端口是8080不建議修改)
-v:把宿主機(jī)的目錄映射到容器中,這些目錄都是cadviso需要采集的目錄文件和監(jiān)控內(nèi)容
-storage_driver:需要指定cadvisor的存儲驅(qū)動、數(shù)據(jù)庫主機(jī)、數(shù)據(jù)庫名
google/cadvisor:通過cadvisor這個鏡像來運(yùn)行容器,默認(rèn)會在docker官方倉庫把鏡像pull下來;
查看cadvisor容器:
[root@master ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a212dc33c942 google/cadvisor "/usr/bin/cadvisor..." 2 minutes ago Up 2 minutes 0.0.0.0:8082->8080/tcp cadvisor
現(xiàn)在可以通過瀏覽訪問cadisor的管理頁面
cadvisor的基礎(chǔ)圖形功能也酷炫的
測試是否寫入influxdb數(shù)據(jù)庫
3、部署granafa[root@master ~]# docker run -d --name grafana -p 3000:3000 grafana/grafana Unable to find image "grafana/grafana:latest" locally Trying to pull repository docker.io/grafana/grafana ... latest: Pulling from docker.io/grafana/grafana f2aa67a397c4: Pull complete 89573effc7c8: Pull complete b55c103da375: Pull complete Digest: sha256:364bec4a39ecbec744ea4270aae35f6554eb6f2047b3ee08f7b5f1134857c32c Status: Downloaded newer image for docker.io/grafana/grafana:latest 665563143eb74e5e2e76b7a1533cbf67a68590d355b0b22d453eac07e0e0b616 [root@master ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 665563143eb7 grafana/grafana "/run.sh" 48 seconds ago Up 47 seconds 0.0.0.0:3000->3000/tcp grafana
訪問WEB管理端
用戶名:密碼 admin:admin
添加數(shù)據(jù)源
之后保存并測試連接
新建New dashboard
這里隨便選擇一個容器做為測試使用,實際環(huán)境可根據(jù)實際環(huán)境填寫
保存返回到HOME界面后,如下圖
最終的效果圖如下
作者:霸都民工哥
鏈接:https://mp.weixin.qq.com/s?...
來源:微信公眾號
更多相關(guān)閱讀:
docker容器監(jiān)控初探
docker底層技術(shù)
從零開始了解docker
如果你還想了解更多,想和技術(shù)同僚分享切磋,可掃下方二維碼加好友,回復(fù)yw,加入掘金運(yùn)維技術(shù)交流群
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/27363.html
摘要:本文已獲得原作者霸都民工哥授權(quán)。對于容器的監(jiān)控方案可謂多種多樣,本身自帶命令。今天民工哥要介紹的是一款開源方案。所以我們要使用將這些實時監(jiān)控到的信息存放起來。 本文已獲得原作者霸都民工哥授權(quán)。 showImg(https://segmentfault.com/img/bVbdbrr?w=709&h=300); 為什么需要監(jiān)控?? 對于一個物理機(jī)上運(yùn)行多個容器應(yīng)用時,容器的運(yùn)行情況如:C...
摘要:就是那個將要全權(quán)代管你所有組件的那家伙用的自述來說就是是狀態(tài)容器,提供可預(yù)測化的狀態(tài)管理。 你若裝逼,請帶我飛! I love React ! 從前,從前,聽說React只負(fù)責(zé)UI,話說寫Angular代碼就像寫后端,現(xiàn)在看來,React贏在情懷上了; 我認(rèn)為沒必要老是拿React和Angular做比較,Angular是一套大而全的相對完備的框架;而React確實是只負(fù)責(zé)UI,只是多出...
摘要:在阿里云服務(wù)器安裝好操作系統(tǒng)之后,安裝好軟件。所以,如果你家路由器自帶接口,且提供動態(tài)域名解析服務(wù),可以將自家路由器打造成私有的網(wǎng)盤。于是很多公司想辦法搭建公司服務(wù)器,存放在公司內(nèi)部服務(wù)器是啥?就是一個24小時不斷電的電腦,有l(wèi)inux系統(tǒng),windows2003-2013,你可以用他來掛qq,掛軟件,掛一切你想掛的,除了游戲,因為他本身是用來為大家提供遠(yuǎn)程信息處理服務(wù)的,那么話又說回來了,...
摘要:景深屬性定義元素距視圖的距離,以像素計。當(dāng)為元素定義屬性時,其子元素會獲得透視效果,而不是元素本身。默認(rèn)都是圍繞元素中心點變化的位移不受中心點影響先寫的后執(zhí)行的執(zhí)行順序變化原點默認(rèn)不會受原點影響,也不會改變變化原點關(guān)鍵字長度單位 景深 perspective: perspective 屬性定義 3D 元素距視圖的距離,以像素計。當(dāng)為元素定義 perspective 屬性時,其子元素會獲...
閱讀 1617·2021-11-22 14:45
閱讀 1063·2021-11-17 09:33
閱讀 3322·2021-09-02 09:48
閱讀 969·2019-08-30 15:54
閱讀 2767·2019-08-30 15:53
閱讀 2553·2019-08-30 12:54
閱讀 2241·2019-08-29 12:37
閱讀 2421·2019-08-26 13:58