一個(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)用的容器的時(shí)序信息并可視化分析與展示!
動(dòng)手了,動(dòng)手了...
注: 本文首發(fā)于 My 公眾號 CodeSheep ,可 長按 或 掃描 下面的 小心心 來訂閱 ↓ ↓ ↓
adviser:負(fù)責(zé)收集容器的隨時(shí)間變化的數(shù)據(jù)
influxdb:負(fù)責(zé)存儲(chǔ)時(shí)序數(shù)據(jù)
grafana:負(fù)責(zé)分析和展示時(shí)序數(shù)據(jù)
可以將其視為一個(gè)數(shù)據(jù)庫服務(wù),其確實(shí)用于存儲(chǔ)數(shù)據(jù)。之所以選用該數(shù)據(jù)庫,原因正如官網(wǎng)所說:
Open Source Time Series DB Platform for Metrics & Events (Time Series Data)
下面我們將該服務(wù)部署起來
docker run -d -p 8086:8086 -v ~/influxdb:/var/lib/influxdb --name influxdb tutum/influxdb
進(jìn)入influxdb容器內(nèi)部,并執(zhí)行influx命令:
docker exec -it influxdb influx
創(chuàng)建數(shù)據(jù)庫test和root用戶用于本次試驗(yàn)測試
CREATE DATABASE "test"
CREATE USER "root" WITH PASSWORD "root" WITH ALL PRIVILEGES
谷歌的cadvisor可以用于收集Docker容器的時(shí)序信息,包括容器運(yùn)行過程中的資源使用情況和性能數(shù)據(jù)。
運(yùn)行cadvisor服務(wù)
docker run -d -v /:/rootfs -v /var/run:/var/run -v /sys:/sys -v /var/lib/docker:/var/lib/docker --link=influxdb:influxdb --name cadvisor google/cadvisor:v0.27.3 --storage_driver=influxdb --storage_driver_host=influxdb:8086 --storage_driver_db=test --storage_driver_user=root --storage_driver_password=root
特別注意項(xiàng):
在運(yùn)行上述docker時(shí),這里有可能兩個(gè)其他配置項(xiàng)需要添加(CentOS, RHEL需要):
--privileged=true
設(shè)置為true之后,容器內(nèi)的root才擁有真正的root權(quán)限,可以看到host上的設(shè)備,并且可以執(zhí)行mount;否者容器內(nèi)的root只是外部的一個(gè)普通用戶權(quán)限。由于cadvisor需要通過socket訪問docker守護(hù)進(jìn)程,在CentOs和RHEL系統(tǒng)中需要這個(gè)這個(gè)選項(xiàng)。
--volume=/cgroup:/cgroup:ro
對于CentOS和RHEL系統(tǒng)的某些版本(比如CentOS6),cgroup的層級掛在/cgroup目錄,所以運(yùn)行cadvisor時(shí)需要額外添加–volume=/cgroup:/cgroup:ro選項(xiàng)。
grafana則是一款開源的時(shí)序數(shù)據(jù)分析工具,而且界面專業(yè)易用,等下等部署好了,大家就能感受到:
docker run -d -p 5000:3000 -v ~/grafana:/var/lib/grafana --link=influxdb:influxdb --name grafana grafana/grafana
至此3個(gè)容器都已經(jīng)啟動(dòng)了:
下面開始具體實(shí)驗(yàn)了
訪問grafana服務(wù)
打開localhost:5000來訪問grafana的web服務(wù),此時(shí)提示你需要登錄,注意用戶名和密碼都是admin
登錄后可以看到grafana的主頁面:
看的很明顯,在Grafana上有好幾個(gè)步驟需要做,這里Install Grafana已經(jīng)完成了,接下來我們需要:
Add data source
Create dashboard
…...
Add Data Source
點(diǎn)擊Add data source進(jìn)入
然后主要是Setting選項(xiàng)卡設(shè)置
我們需要根據(jù)實(shí)際情況來填寫各項(xiàng)內(nèi)容:
Data source添加成功會(huì)予以提示
數(shù)據(jù)源添加完成以后,我們需要添加儀表盤(Dashboard)
Add Dashboard
點(diǎn)擊Add dashboard進(jìn)入
這里有很多類型的儀表盤供選擇,我們選用最常用的Graph就好
進(jìn)入之后,點(diǎn)擊Panel Title下拉列表,再選擇Edit進(jìn)行編輯即可
在Edit里面主要的就是需要添加查詢的條件,繼續(xù)看下文
Add Query Editor
查詢條件中我們可以選擇要監(jiān)控的指標(biāo):
這里選一個(gè)memory usage好了,然后要監(jiān)控的容器選擇grafana自身好了。
當(dāng)然這里不止可以監(jiān)控一個(gè)指標(biāo),也不止可以監(jiān)控一個(gè)容器,更多組合我們只需要在下面并列著一個(gè)一個(gè)添加query條目就好!
最后我添加了三個(gè)監(jiān)控條件,分別用于監(jiān)控grafana、influxdb和cadvisor三個(gè)容器的memory usage指標(biāo),并將其同時(shí)顯示于圖中,怎么樣是不是很直觀!
這里可以摸索的設(shè)置項(xiàng)還有很多,比如一些坐標(biāo)自定義、顯示策略自定義,甚至我們還可以自定義報(bào)警策略等等
作者更多的原創(chuàng)文章在此,歡迎觀賞
My Personal Blog
作者更多的SpringBt實(shí)踐文章在此:
Spring Boot應(yīng)用監(jiān)控實(shí)戰(zhàn)
SpringBoot應(yīng)用部署于外置Tomcat容器
ElasticSearch搜索引擎在SpringBt中的實(shí)踐
初探Kotlin+SpringBoot聯(lián)合編程
Spring Boot日志框架實(shí)踐
SpringBoot優(yōu)雅編碼之:Lombok加持
如果有興趣,也可以抽點(diǎn)時(shí)間看看作者一些關(guān)于容器化、微服務(wù)化方面的文章:
利用K8S技術(shù)棧打造個(gè)人私有云 連載文章
從一份配置清單詳解Nginx服務(wù)器配置
Docker容器可視化監(jiān)控中心搭建
利用ELK搭建Docker容器化應(yīng)用日志中心
RPC框架實(shí)踐之:Apache Thrift
RPC框架實(shí)踐之:Google gRPC
微服務(wù)調(diào)用鏈追蹤中心搭建
Docker容器跨主機(jī)通信
Docker Swarm集群初探
高效編寫Dockerfile的幾條準(zhǔn)則
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/27278.html
摘要:在我的前文容器可視化監(jiān)控中心搭建之中我們就實(shí)踐過容器的可視化監(jiān)控,在那篇文章中我們是使用了技術(shù)棧來完成的。 showImg(https://segmentfault.com/img/remote/1460000015484084); 概述 性能監(jiān)控是容器服務(wù)必不可少的基礎(chǔ)設(shè)施,容器化應(yīng)用運(yùn)行于宿主機(jī)上,我們需要知道該容器的運(yùn)行情況,包括 CPU使用率、內(nèi)存占用、網(wǎng)絡(luò)狀況以及磁盤空間等...
摘要:概述應(yīng)用一旦容器化以后,需要考慮的就是如何采集位于容器中的應(yīng)用程序的打印日志供運(yùn)維分析。 showImg(https://segmentfault.com/img/remote/1460000014146680); 概述 應(yīng)用一旦容器化以后,需要考慮的就是如何采集位于Docker容器中的應(yīng)用程序的打印日志供運(yùn)維分析。典型的比如 SpringBoot應(yīng)用的日志 收集。本文即將闡述如何利...
摘要:概述在我之前的應(yīng)用監(jiān)控實(shí)戰(zhàn)一文中,講述了如何利用版本來可視化地監(jiān)控應(yīng)用。接下來我們就來創(chuàng)建一個(gè)待監(jiān)控的示例。 showImg(https://segmentfault.com/img/remote/1460000015671446); 概述 在我之前的 《Spring Boot應(yīng)用監(jiān)控實(shí)戰(zhàn)》 一文中,講述了如何利用 Spring Boot Admin 1.5.X 版本來可視化地監(jiān)控 ...
摘要:概述之前講過容器的可視化監(jiān)控,即監(jiān)控容器的運(yùn)行情況,包括使用率內(nèi)存占用網(wǎng)絡(luò)狀況以及磁盤空間等等一系列信息。實(shí)戰(zhàn)一下中添加依賴啟動(dòng)應(yīng)用程序之后,只要在瀏覽器中輸入端點(diǎn)信息就能獲得應(yīng)用的一些狀態(tài)信息。 showImg(https://segmentfault.com/img/remote/1460000014684947); 概述 之前講過Docker容器的可視化監(jiān)控,即監(jiān)控容器的運(yùn)行情...
閱讀 2815·2021-10-13 09:48
閱讀 3776·2021-10-13 09:39
閱讀 3586·2021-09-22 16:04
閱讀 1816·2021-09-03 10:48
閱讀 837·2021-08-03 14:04
閱讀 2358·2019-08-29 15:18
閱讀 3400·2019-08-26 12:19
閱讀 2869·2019-08-26 12:08