詳解Docker容器可視化監(jiān)控中心搭建
概述
一個宿主機上可以運行多個容器化應(yīng)用,容器化應(yīng)用運行于宿主機上,我們需要知道該容器的運行情況,包括 CPU使用率、內(nèi)存占用、網(wǎng)絡(luò)狀況以及磁盤空間等等一系列信息,而且這些信息隨時間變化,我們稱其為時序數(shù)據(jù),本文將實操 如何搭建一個可視化的監(jiān)控中心 來收集這些承載著具體應(yīng)用的容器的時序信息并可視化分析與展示!
動手了,動手了...
準備鏡像
- adviser:負責收集容器的隨時間變化的數(shù)據(jù)
- influxdb:負責存儲時序數(shù)據(jù)
- grafana:負責分析和展示時序數(shù)據(jù)

部署Influxdb服務(wù)
可以將其視為一個數(shù)據(jù)庫服務(wù),其確實用于存儲數(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
進入influxdb容器內(nèi)部,并執(zhí)行influx命令:
docker exec -it influxdb influx

創(chuàng)建數(shù)據(jù)庫test和root用戶用于本次試驗測試
CREATE DATABASE "test"
CREATE USER "root" WITH PASSWORD 'root' WITH ALL PRIVILEGES

部署cAdvisor服務(wù)
谷歌的cadvisor可以用于收集Docker容器的時序信息,包括容器運行過程中的資源使用情況和性能數(shù)據(jù)。
運行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
特別注意項:
在運行上述docker時,這里有可能兩個其他配置項需要添加(CentOS, RHEL需要):
--privileged=true
設(shè)置為true之后,容器內(nèi)的root才擁有真正的root權(quán)限,可以看到host上的設(shè)備,并且可以執(zhí)行mount;否者容器內(nèi)的root只是外部的一個普通用戶權(quán)限。由于cadvisor需要通過socket訪問docker守護進程,在CentOs和RHEL系統(tǒng)中需要這個這個選項。
--volume=/cgroup:/cgroup:ro
對于CentOS和RHEL系統(tǒng)的某些版本(比如CentOS6),cgroup的層級掛在/cgroup目錄,所以運行cadvisor時需要額外添加–volume=/cgroup:/cgroup:ro選項。
部署Grafana服務(wù)
grafana則是一款開源的時序數(shù)據(jù)分析工具,而且界面專業(yè)易用,等下等部署好了,大家就能感受到:
docker run -d -p 5000:3000 \ -v ~/grafana:/var/lib/grafana \ --link=influxdb:influxdb \ --name grafana grafana/grafana
至此3個容器都已經(jīng)啟動了:

下面開始具體實驗了
實戰(zhàn)
訪問grafana服務(wù)
打開localhost:5000來訪問grafana的web服務(wù),此時提示你需要登錄,注意用戶名和密碼都是admin

登錄后可以看到grafana的主頁面:

看的很明顯,在Grafana上有好幾個步驟需要做,這里Install Grafana已經(jīng)完成了,接下來我們需要:
- Add data source
- Create dashboard
- …...
Add Data Source
點擊Add data source進入

然后主要是Setting選項卡設(shè)置

我們需要根據(jù)實際情況來填寫各項內(nèi)容:

Data source添加成功會予以提示

數(shù)據(jù)源添加完成以后,我們需要添加儀表盤(Dashboard)
Add Dashboard
點擊Add dashboard進入

這里有很多類型的儀表盤供選擇,我們選用最常用的Graph就好

進入之后,點擊Panel Title下拉列表,再選擇Edit進行編輯即可

在Edit里面主要的就是需要添加查詢的條件,繼續(xù)看下文
Add Query Editor
查詢條件中我們可以選擇要監(jiān)控的指標:

這里選一個memory usage好了,然后要監(jiān)控的容器選擇grafana自身好了。
當然這里不止可以監(jiān)控一個指標,也不止可以監(jiān)控一個容器,更多組合我們只需要在下面并列著一個一個添加query條目就好!
最后我添加了三個監(jiān)控條件,分別用于監(jiān)控grafana、influxdb和cadvisor三個容器的memory usage指標,并將其同時顯示于圖中,怎么樣是不是很直觀!

這里可以摸索的設(shè)置項還有很多,比如一些坐標自定義、顯示策略自定義,甚至我們還可以自定義報警策略等等
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用 Docker 部署 Apache Spark 集群的過程
本文介紹了如何使用Docker和DockerCompose快速部署一個包含一個Master節(jié)點和兩個Worker節(jié)點的Spark集群,通過創(chuàng)建docker-compose.yml文件并執(zhí)行相關(guān)命令,可以實現(xiàn)集群的構(gòu)建和啟動,感興趣的朋友一起看看吧2025-02-02
Docker部署Jenkins持續(xù)集成(CI)工具的實現(xiàn)
Jenkins 是一個流行的開源自動化工具,廣泛應(yīng)用于持續(xù)集成(CI)和持續(xù)交付(CD)的環(huán)境中,本文介紹了使用Docker部署Jenkins,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
私有云存儲Minio Docker鏡像無法啟動,提示:Adding local Minio
使用Minio在本地搭建私有云存儲時出現(xiàn)無法啟動,查看日志頻繁輸出“Adding local Minio host to 'mc' configuration...”,然后停止了,本文給大家分享私有云存儲Minio Docker鏡像無法啟動,提示:Adding local Minio host to 'mc' configuration,感興趣的朋友一起看看吧2023-11-11
Docker 制作鏡像Dockerfile和commit操作
這篇文章主要介紹了Docker 制作鏡像Dockerfile和commit操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
使用Docker部署MySQL 5.7&8.0主從集群的方法步驟
這篇文章主要介紹了使用Docker部署MySQL 5.7&8.0主從集群的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
Docker 和 Containerd 目錄結(jié)構(gòu)及存儲機制詳解
Docker和Containerd是兩種流行的容器運行時工具,它們都有自己的目錄結(jié)構(gòu)和存儲機制,本文詳細介紹了Docker和Containerd的目錄結(jié)構(gòu)和存儲機制,并對比了它們之間的主要區(qū)別,包括存儲路徑、掛載點管理、配置文件和日志文件,感興趣的朋友一起看看吧2025-02-02

