前言
華為云 Flexus X,以頂尖算力與智能調(diào)度,引領(lǐng) Docker 容器管理新風(fēng)尚。828 企業(yè)上云節(jié)之際,F(xiàn)lexus X 攜手前沿技術(shù),實(shí)現(xiàn)容器運(yùn)行的實(shí)時(shí)監(jiān)控與數(shù)據(jù)可視化,讓管理變得直觀高效。無(wú)論是性能瓶頸的精準(zhǔn)定位,還是資源利用的優(yōu)化調(diào)整,F(xiàn)lexus X 都是您的得力助手。立即擁抱華為云 Flexus X,開(kāi)啟 Docker 容器管理新篇章,讓云端之旅更加順暢無(wú)憂!
鏈接直達(dá):華為云Flexus云服務(wù)器X實(shí)例
原生命令
查看正在運(yùn)行的容器
[root@flexusx-251f~]# docker psCONTAINERID IMAGE COMMAND CREATED STATUS PORTS NAMES3a888d70efa6swr.cn-north-4.myhuaweicloud.com/cloud-wzs/portainer/portainer-ce:latest "/portainer"3 hours ago Up 3 hours 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9443->9443/tcp, :::9443->9443/tcp, 9000/tcp portainer
實(shí)時(shí)顯示 Docker 容器的資源使用情況
[root@flexusx-251f~]# docker statsCONTAINERID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS3a888d70efa6portainer 0.00% 23.55MiB / 11.53GiB 0.20% 597kB / 937kB 0B / 1.27MB 7e837cf780e7dblog 0.01% 268.7MiB / 11.53GiB 2.28% 68.3MB / 22.4MB 0B / 76.3MB 13b08207cf4067Mysql-db 0.02% 205.8MiB / 11.53GiB 1.74% 3.63MB / 33.7MB 0B / 92.7MB 33
通過(guò) docker stats命令可以很方便的看到當(dāng)前宿主機(jī)上的所有容器的 cpu,內(nèi)存以及網(wǎng)絡(luò)流量等數(shù)據(jù)。一般適用于小公司
docker stats統(tǒng)計(jì)結(jié)果只是當(dāng)前宿主機(jī)的全部容器,數(shù)據(jù)資料是實(shí)時(shí)的,沒(méi)有地方存儲(chǔ),沒(méi)有健康指標(biāo)、過(guò)線預(yù)警等功能
容器監(jiān)控三劍客
CAdvisor
CAdvisor 是一個(gè)容器資源監(jiān)控工具,包括 CPU、網(wǎng)絡(luò) IO、磁盤 IO 等監(jiān)控,同時(shí)提供了一個(gè) WEB 頁(yè)面用于查看容器的實(shí)時(shí)運(yùn)行狀態(tài)。CAdvisor 默認(rèn)存儲(chǔ)兩分鐘的數(shù)據(jù),而且只是針對(duì)單核物理機(jī)。不過(guò) CAdvisor 提供了很多數(shù)據(jù)集成接口,支持 InfluxDB、Redis、Kafka、Elasticsearch 等集成,可以加上對(duì)應(yīng)配置將監(jiān)控?cái)?shù)據(jù)發(fā)往這些數(shù)據(jù)庫(kù)存儲(chǔ)起來(lái)。
CAdvisor 功能主要有兩點(diǎn):
展示 Host 和 容器 兩個(gè)層次的監(jiān)控?cái)?shù)據(jù)
展示歷史變化數(shù)據(jù)
InfluxDB
InfluxDB 使用 Go 語(yǔ)言編寫(xiě)的一個(gè)開(kāi)源分布式時(shí)序、時(shí)間和指標(biāo)數(shù)據(jù)庫(kù),無(wú)需外部依賴。
CAdvisor 默認(rèn)只能在本機(jī)保存最近兩分鐘的數(shù)據(jù),為了持久化數(shù)據(jù)存儲(chǔ)和統(tǒng)一收集展示監(jiān)控?cái)?shù)據(jù),需要將數(shù)據(jù)存儲(chǔ)到 InfluxDB 中。InfluxDB 是一個(gè)時(shí)序數(shù)據(jù)庫(kù),專門用于數(shù)據(jù)時(shí)序相關(guān)數(shù)據(jù),很適合存儲(chǔ) CAdvisor 的數(shù)據(jù)。而且,CAdvisor 本身已經(jīng)提供了 InfluxDB 的集成方法,啟動(dòng)容器時(shí)指定配置即可。
InfluxDB 主要功能:
基于時(shí)間序列,支持與時(shí)間有關(guān)的相關(guān)函數(shù)(如最大、最小、求和等)
可度量性:可以實(shí)時(shí)對(duì)大量數(shù)據(jù)進(jìn)行計(jì)算
基于實(shí)踐:支持任意的實(shí)踐數(shù)據(jù)
Granfana
Grafana 是一個(gè)開(kāi)源的數(shù)據(jù)監(jiān)控分析可視化平臺(tái),支持多種數(shù)據(jù)源配置(支持的數(shù)據(jù)源包括 InfluxDB、MySQL、Elasticsearch、OpenTSDB、Graphite 等)和豐富的插件及模版功能,支持圖表權(quán)限控制和報(bào)警。
Grafana 主要特性:
靈活豐富的圖像化選項(xiàng)
可以混合多種風(fēng)格
支持白天和夜間模式
多個(gè)數(shù)據(jù)源
環(huán)境規(guī)劃
搭建流程
需要了解:
?采用 docker 方式進(jìn)行部署容器監(jiān)控三劍客
?詳細(xì)購(gòu)買配置實(shí)例可參考文章:快速部署華為云Flexus X實(shí)例,開(kāi)啟您的云端之旅
?部署 docker 服務(wù)請(qǐng)參考文章:華為FlexusX與Docker+Nginx的高效整合之路
拉取鏡像(由于網(wǎng)絡(luò)原因,我已經(jīng)提前將鏡像上傳至華為云鏡像倉(cāng)庫(kù),可直接進(jìn)行拉?。?/p>
[root@flexusx-251f~]# docker pull swr.cn-north-4.myhuaweicloud.com/cloud-wzs/tutum/influxdb:latest[root@flexusx-251f~]# docker pull swr.cn-north-4.myhuaweicloud.com/cloud-wzs/google/cadvisor:latest[root@flexusx-251f~]# docker pull swr.cn-north-4.myhuaweicloud.com/cloud-wzs/grafana/grafana:latest
我們通過(guò) docker-compose 容器編排一套帶走
#查看版本[root@flexusx-251f~]# docker-compose --versionDockerCompose version v2.29.1
創(chuàng)建文件夾,編寫(xiě) yaml 文件,以下是 yaml 文件內(nèi)容
[root@flexusx-251f~]# mkdir cig[root@flexusx-251f~]# cd cig/[root@flexusx-251f cig]# vim docker-compose.yml[root@flexusx-251f cig]# cat docker-compose.yml#指定 Compose 文件的版本 version:'2.29.1' #定義要使用的卷 volumes:grafana_data:{}#創(chuàng)建一個(gè)名為 grafana_data 的卷,用于 Grafana 的數(shù)據(jù)持久化 #定義服務(wù)(容器) services: # InfluxDB 服務(wù) influxdb:image:swr.cn-north-4.myhuaweicloud.com/cloud-wzs/tutum/influxdb:latest#使用 tutum 提供的 InfluxDB 0.9 版本鏡像 restart:always#容器總是重啟,無(wú)論退出狀態(tài)如何 environment: -PRE_CREATE_DB=cadvisor#在 InfluxDB 啟動(dòng)時(shí)預(yù)創(chuàng)建名為 cadvisor 的數(shù)據(jù)庫(kù) ports: -"8083:8083"#將容器的 8083 端口映射到宿主機(jī)的 8083 端口(InfluxDB 的 Web 管理界面) -"8086:8086"#將容器的 8086 端口映射到宿主機(jī)的 8086 端口(InfluxDB 的 HTTP API) volumes: -./data/influxdb:/data#將宿主機(jī)的./data/influxdb 目錄掛載到容器的/data 目錄,用于數(shù)據(jù)持久化 # cAdvisor 服務(wù) cadvisor:image:swr.cn-north-4.myhuaweicloud.com/cloud-wzs/google/cadvisor:latest#使用 google 提供的 cAdvisor 最新版本鏡像 links: -influxdb:influxsrv#將 influxdb 服務(wù)鏈接到 cadvisor,并在 cadvisor 中設(shè)置別名 influxsrv command:-storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086#設(shè)置 cAdvisor 的存儲(chǔ)驅(qū)動(dòng)為 InfluxDB,并指定數(shù)據(jù)庫(kù)和主機(jī) restart:always#容器總是重啟 ports: -"8081:8080"#將容器的 8080 端口映射到宿主機(jī)的 8081 端口(cAdvisor 的 Web 界面) volumes: -/:/rootfs:ro#將宿主機(jī)的根文件系統(tǒng)掛載為只讀,供 cAdvisor 監(jiān)控 -/var/run:/var/run:rw#掛載宿主機(jī)的/var/run 目錄為讀寫(xiě),供 cAdvisor 訪問(wèn)某些運(yùn)行時(shí)數(shù)據(jù) -/sys:/sys:ro#掛載宿主機(jī)的/sys 目錄為只讀,供 cAdvisor 獲取系統(tǒng)信息 -/var/lib/docker/:/var/lib/docker:ro#掛載宿主機(jī)的 Docker 數(shù)據(jù)目錄為只讀,供 cAdvisor 監(jiān)控 Docker 容器 # Grafana 服務(wù) grafana:user:"104"#設(shè)置容器內(nèi)運(yùn)行用戶為 UID 104(可能需要確保 UID 在宿主機(jī)上存在或配置正確) image:swr.cn-north-4.myhuaweicloud.com/cloud-wzs/grafana/grafana:latest#使用 grafana 提供的 Grafana 最新版本鏡像 restart:always#容器總是重啟 links: -influxdb:influxsrv#將 influxdb 服務(wù)鏈接到 grafana,并在 grafana 中設(shè)置別名 influxsrv ports: -"3000:3000"#將容器的 3000 端口映射到宿主機(jī)的 3000 端口(Grafana 的 Web 界面) volumes: -grafana_data:/var/lib/grafana#將之前定義的 grafana_data 卷掛載到容器的/var/lib/grafana 目錄,用于 Grafana 的數(shù)據(jù)持久化 environment: -GF_SECURITY_ADMIN_USER=admin#設(shè)置 Grafana 的管理員用戶名為 admin -GF_SECURITY_ADMIN_PASSWORD=admin#設(shè)置 Grafana 的管理員密碼為 admin -INFLUXDB_HOST=influxsrv#設(shè)置 Grafana 連接 InfluxDB 的主機(jī)名為 influxsrv(通過(guò) links 別名) -INFLUXDB_PORT=8086#設(shè)置 Grafana 連接 InfluxDB 的端口為 8086 -INFLUXDB_DB=cadvisor#設(shè)置 Grafana 要連接的 InfluxDB 數(shù)據(jù)庫(kù)為 cadvisor -INFLUXDB_USER=root#設(shè)置 Grafana 連接 InfluxDB 的用戶名為 root(注意:實(shí)際部署時(shí)可能需要更改) -INFLUXDB_PASS=root#設(shè)置 Grafana 連接 InfluxDB 的密碼為 root(注意:實(shí)際部署時(shí)強(qiáng)烈建議更改)
運(yùn)行 docker-compose
[root@flexusx-251fcig]# docker-compose up[root@flexusx-251f~]# docker psCONTAINERID IMAGE COMMAND CREATED STATUS PORTS NAMES504ad3c17d38swr.cn-north-4.myhuaweicloud.com/cloud-wzs/grafana/grafana:latest "/run.sh"42 seconds ago Up 42 seconds 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp cig-grafana-1d46793983d47swr.cn-north-4.myhuaweicloud.com/cloud-wzs/google/cadvisor:latest "/usr/bin/cadvisor -…"42 seconds ago Up 42 seconds 0.0.0.0:8081->8080/tcp, :::8081->8080/tcp cig-cadvisor-1c72b95d62bc4swr.cn-north-4.myhuaweicloud.com/cloud-wzs/tutum/influxdb:latest "/run.sh"42 seconds ago Up 42 seconds 0.0.0.0:8083->8083/tcp, :::8083->8083/tcp, 0.0.0.0:8086->8086/tcp, :::8086->8086/tcp cig-influxdb-1
放行安全組
放行端口 3000,8081,8083
測(cè)試訪問(wèn)
CAdvisor 收集服務(wù)
瀏覽器訪問(wèn):http://localhost:8081
可以看到 CPU、網(wǎng)絡(luò) IO、磁盤 IO 等監(jiān)控的可視化
influxdb 存儲(chǔ)服務(wù)
瀏覽器訪問(wèn):http://localhost:8083
grafana 展現(xiàn)服務(wù)
瀏覽器訪問(wèn):http://localhost:3000
我們?cè)?docker-compose 中指定過(guò)賬號(hào)密碼
進(jìn)去需要修改新密碼,在這我們將密碼修改為 Huawei12#$
配置步驟
配置數(shù)據(jù)源
添加數(shù)據(jù)庫(kù)
選擇 influxdb 數(shù)據(jù)源
配置數(shù)據(jù)庫(kù)文件
http://InfluxDB:8086
配置面板 panel
至此,容器監(jiān)控三劍客搭建成功
關(guān)閉和開(kāi)啟一定要在對(duì)應(yīng) yaml 文件路徑下
[root@flexusx-251f~]# cd cig/[root@flexusx-251fcig]# docker-compose stopWARN[0000]/root/cig/docker-compose.yml:the attribute `version`is obsolete, it will be ignored, please remove it to avoid potential confusion[+]Stopping 3/3?Container cig-grafana-1 Stopped 0.1s?Container cig-cadvisor-1 Stopped 0.1s?Container cig-influxdb-1 Stopped 10.1s[root@flexusx-251fcig]# docker-compose lsNAMESTATUS CONFIG FILES
體驗(yàn)和感受
在云計(jì)算的快速發(fā)展中,Docker 容器的廣泛應(yīng)用為企業(yè)帶來(lái)了前所未有的靈活性和效率。然而,如何實(shí)時(shí)監(jiān)控這些容器的性能并進(jìn)行可視化分析,成為了企業(yè)運(yùn)維團(tuán)隊(duì)面臨的重要挑戰(zhàn)。華為 Flexus X 服務(wù)器,憑借其卓越的性能和強(qiáng)大的擴(kuò)展性,為企業(yè)用戶提供了理想的云端平臺(tái)。結(jié)合 CAdvisor、InfluxDB 與 Grafana,F(xiàn)lexus X 實(shí)例實(shí)現(xiàn)了 Docker 容器的實(shí)時(shí)監(jiān)控與可視化分析新突破。
CAdvisor,作為 Google 開(kāi)源的容器資源監(jiān)控工具,能夠收集 Docker 容器的資源使用情況和性能指標(biāo)。InfluxDB,作為高性能的時(shí)序數(shù)據(jù)庫(kù),能夠高效地存儲(chǔ)和查詢這些監(jiān)控?cái)?shù)據(jù)。而 Grafana,則以其強(qiáng)大的數(shù)據(jù)可視化能力,將復(fù)雜的監(jiān)控?cái)?shù)據(jù)轉(zhuǎn)化為直觀的圖表和儀表盤,幫助運(yùn)維人員快速洞察容器運(yùn)行狀態(tài)。
在 828 華為云企業(yè)上云節(jié)之際,在 Flexus X 實(shí)例上部署這一強(qiáng)大的監(jiān)控與分析。通過(guò) CAdvisor 的實(shí)時(shí)數(shù)據(jù)采集、InfluxDB 的高效存儲(chǔ)以及 Grafana 的精美可視化,您將能夠輕松掌握 Docker 容器的性能瓶頸,優(yōu)化資源配置,提升業(yè)務(wù)運(yùn)行效率。
選擇 Flexus X 實(shí)例與 CAdvisor+InfluxDB+Grafana 的組合,就是選擇了 Docker 容器管理的未來(lái)。點(diǎn)擊下方鏈接,在 828 上云節(jié)的特惠期間,讓我們攜手共進(jìn),共同開(kāi)啟云端容器管理的新篇章。
產(chǎn)品鏈接:華為云Flexus云服務(wù)器X實(shí)例直播建站服務(wù)器-華為云
審核編輯 黃宇
-
實(shí)時(shí)監(jiān)控
+關(guān)注
關(guān)注
1文章
91瀏覽量
13632 -
Docker
+關(guān)注
關(guān)注
0文章
489瀏覽量
11910 -
華為云
+關(guān)注
關(guān)注
3文章
2676瀏覽量
17517
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論