前言
華為云 Flexus X,以頂尖算力與智能調度,引領 Docker 容器管理新風尚。828 企業(yè)上云節(jié)之際,F(xiàn)lexus X 攜手前沿技術,實現(xiàn)容器運行的實時監(jiān)控與數(shù)據(jù)可視化,讓管理變得直觀高效。無論是性能瓶頸的精準定位,還是資源利用的優(yōu)化調整,F(xiàn)lexus X 都是您的得力助手。立即擁抱華為云 Flexus X,開啟 Docker 容器管理新篇章,讓云端之旅更加順暢無憂!
鏈接直達:華為云Flexus云服務器X實例

原生命令
查看正在運行的容器
[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
實時顯示 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
通過 docker stats命令可以很方便的看到當前宿主機上的所有容器的 cpu,內存以及網(wǎng)絡流量等數(shù)據(jù)。一般適用于小公司
docker stats統(tǒng)計結果只是當前宿主機的全部容器,數(shù)據(jù)資料是實時的,沒有地方存儲,沒有健康指標、過線預警等功能
容器監(jiān)控三劍客

CAdvisor
CAdvisor 是一個容器資源監(jiān)控工具,包括 CPU、網(wǎng)絡 IO、磁盤 IO 等監(jiān)控,同時提供了一個 WEB 頁面用于查看容器的實時運行狀態(tài)。CAdvisor 默認存儲兩分鐘的數(shù)據(jù),而且只是針對單核物理機。不過 CAdvisor 提供了很多數(shù)據(jù)集成接口,支持 InfluxDB、Redis、Kafka、Elasticsearch 等集成,可以加上對應配置將監(jiān)控數(shù)據(jù)發(fā)往這些數(shù)據(jù)庫存儲起來。
CAdvisor 功能主要有兩點:
展示 Host 和 容器 兩個層次的監(jiān)控數(shù)據(jù)
展示歷史變化數(shù)據(jù)

InfluxDB
InfluxDB 使用 Go 語言編寫的一個開源分布式時序、時間和指標數(shù)據(jù)庫,無需外部依賴。
CAdvisor 默認只能在本機保存最近兩分鐘的數(shù)據(jù),為了持久化數(shù)據(jù)存儲和統(tǒng)一收集展示監(jiān)控數(shù)據(jù),需要將數(shù)據(jù)存儲到 InfluxDB 中。InfluxDB 是一個時序數(shù)據(jù)庫,專門用于數(shù)據(jù)時序相關數(shù)據(jù),很適合存儲 CAdvisor 的數(shù)據(jù)。而且,CAdvisor 本身已經提供了 InfluxDB 的集成方法,啟動容器時指定配置即可。
InfluxDB 主要功能:
基于時間序列,支持與時間有關的相關函數(shù)(如最大、最小、求和等)
可度量性:可以實時對大量數(shù)據(jù)進行計算
基于實踐:支持任意的實踐數(shù)據(jù)

Granfana
Grafana 是一個開源的數(shù)據(jù)監(jiān)控分析可視化平臺,支持多種數(shù)據(jù)源配置(支持的數(shù)據(jù)源包括 InfluxDB、MySQL、Elasticsearch、OpenTSDB、Graphite 等)和豐富的插件及模版功能,支持圖表權限控制和報警。
Grafana 主要特性:
靈活豐富的圖像化選項
可以混合多種風格
支持白天和夜間模式
多個數(shù)據(jù)源

環(huán)境規(guī)劃
搭建流程
需要了解:
?采用 docker 方式進行部署容器監(jiān)控三劍客
?詳細購買配置實例可參考文章:快速部署華為云Flexus X實例,開啟您的云端之旅
?部署 docker 服務請參考文章:華為FlexusX與Docker+Nginx的高效整合之路
拉取鏡像(由于網(wǎng)絡原因,我已經提前將鏡像上傳至華為云鏡像倉庫,可直接進行拉取)
[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
我們通過 docker-compose 容器編排一套帶走
#查看版本[root@flexusx-251f~]# docker-compose --versionDockerCompose version v2.29.1
創(chuàng)建文件夾,編寫 yaml 文件,以下是 yaml 文件內容
[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)建一個名為 grafana_data 的卷,用于 Grafana 的數(shù)據(jù)持久化 #定義服務(容器) services: # InfluxDB 服務 influxdb:image:swr.cn-north-4.myhuaweicloud.com/cloud-wzs/tutum/influxdb:latest#使用 tutum 提供的 InfluxDB 0.9 版本鏡像 restart:always#容器總是重啟,無論退出狀態(tài)如何 environment: -PRE_CREATE_DB=cadvisor#在 InfluxDB 啟動時預創(chuàng)建名為 cadvisor 的數(shù)據(jù)庫 ports: -"8083:8083"#將容器的 8083 端口映射到宿主機的 8083 端口(InfluxDB 的 Web 管理界面) -"8086:8086"#將容器的 8086 端口映射到宿主機的 8086 端口(InfluxDB 的 HTTP API) volumes: -./data/influxdb:/data#將宿主機的./data/influxdb 目錄掛載到容器的/data 目錄,用于數(shù)據(jù)持久化 # cAdvisor 服務 cadvisor:image:swr.cn-north-4.myhuaweicloud.com/cloud-wzs/google/cadvisor:latest#使用 google 提供的 cAdvisor 最新版本鏡像 links: -influxdb:influxsrv#將 influxdb 服務鏈接到 cadvisor,并在 cadvisor 中設置別名 influxsrv command:-storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086#設置 cAdvisor 的存儲驅動為 InfluxDB,并指定數(shù)據(jù)庫和主機 restart:always#容器總是重啟 ports: -"8081:8080"#將容器的 8080 端口映射到宿主機的 8081 端口(cAdvisor 的 Web 界面) volumes: -/:/rootfs:ro#將宿主機的根文件系統(tǒng)掛載為只讀,供 cAdvisor 監(jiān)控 -/var/run:/var/run:rw#掛載宿主機的/var/run 目錄為讀寫,供 cAdvisor 訪問某些運行時數(shù)據(jù) -/sys:/sys:ro#掛載宿主機的/sys 目錄為只讀,供 cAdvisor 獲取系統(tǒng)信息 -/var/lib/docker/:/var/lib/docker:ro#掛載宿主機的 Docker 數(shù)據(jù)目錄為只讀,供 cAdvisor 監(jiān)控 Docker 容器 # Grafana 服務 grafana:user:"104"#設置容器內運行用戶為 UID 104(可能需要確保 UID 在宿主機上存在或配置正確) image:swr.cn-north-4.myhuaweicloud.com/cloud-wzs/grafana/grafana:latest#使用 grafana 提供的 Grafana 最新版本鏡像 restart:always#容器總是重啟 links: -influxdb:influxsrv#將 influxdb 服務鏈接到 grafana,并在 grafana 中設置別名 influxsrv ports: -"3000:3000"#將容器的 3000 端口映射到宿主機的 3000 端口(Grafana 的 Web 界面) volumes: -grafana_data:/var/lib/grafana#將之前定義的 grafana_data 卷掛載到容器的/var/lib/grafana 目錄,用于 Grafana 的數(shù)據(jù)持久化 environment: -GF_SECURITY_ADMIN_USER=admin#設置 Grafana 的管理員用戶名為 admin -GF_SECURITY_ADMIN_PASSWORD=admin#設置 Grafana 的管理員密碼為 admin -INFLUXDB_HOST=influxsrv#設置 Grafana 連接 InfluxDB 的主機名為 influxsrv(通過 links 別名) -INFLUXDB_PORT=8086#設置 Grafana 連接 InfluxDB 的端口為 8086 -INFLUXDB_DB=cadvisor#設置 Grafana 要連接的 InfluxDB 數(shù)據(jù)庫為 cadvisor -INFLUXDB_USER=root#設置 Grafana 連接 InfluxDB 的用戶名為 root(注意:實際部署時可能需要更改) -INFLUXDB_PASS=root#設置 Grafana 連接 InfluxDB 的密碼為 root(注意:實際部署時強烈建議更改)
運行 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

測試訪問
CAdvisor 收集服務
瀏覽器訪問:http://localhost:8081

可以看到 CPU、網(wǎng)絡 IO、磁盤 IO 等監(jiān)控的可視化

influxdb 存儲服務
瀏覽器訪問:http://localhost:8083

grafana 展現(xiàn)服務
瀏覽器訪問:http://localhost:3000
我們在 docker-compose 中指定過賬號密碼
進去需要修改新密碼,在這我們將密碼修改為 Huawei12#$

配置步驟
配置數(shù)據(jù)源
添加數(shù)據(jù)庫

選擇 influxdb 數(shù)據(jù)源

配置數(shù)據(jù)庫文件
http://InfluxDB:8086


配置面板 panel





至此,容器監(jiān)控三劍客搭建成功
關閉和開啟一定要在對應 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
體驗和感受
在云計算的快速發(fā)展中,Docker 容器的廣泛應用為企業(yè)帶來了前所未有的靈活性和效率。然而,如何實時監(jiān)控這些容器的性能并進行可視化分析,成為了企業(yè)運維團隊面臨的重要挑戰(zhàn)。華為 Flexus X 服務器,憑借其卓越的性能和強大的擴展性,為企業(yè)用戶提供了理想的云端平臺。結合 CAdvisor、InfluxDB 與 Grafana,F(xiàn)lexus X 實例實現(xiàn)了 Docker 容器的實時監(jiān)控與可視化分析新突破。
CAdvisor,作為 Google 開源的容器資源監(jiān)控工具,能夠收集 Docker 容器的資源使用情況和性能指標。InfluxDB,作為高性能的時序數(shù)據(jù)庫,能夠高效地存儲和查詢這些監(jiān)控數(shù)據(jù)。而 Grafana,則以其強大的數(shù)據(jù)可視化能力,將復雜的監(jiān)控數(shù)據(jù)轉化為直觀的圖表和儀表盤,幫助運維人員快速洞察容器運行狀態(tài)。
在 828 華為云企業(yè)上云節(jié)之際,在 Flexus X 實例上部署這一強大的監(jiān)控與分析。通過 CAdvisor 的實時數(shù)據(jù)采集、InfluxDB 的高效存儲以及 Grafana 的精美可視化,您將能夠輕松掌握 Docker 容器的性能瓶頸,優(yōu)化資源配置,提升業(yè)務運行效率。
選擇 Flexus X 實例與 CAdvisor+InfluxDB+Grafana 的組合,就是選擇了 Docker 容器管理的未來。點擊下方鏈接,在 828 上云節(jié)的特惠期間,讓我們攜手共進,共同開啟云端容器管理的新篇章。
產品鏈接:華為云Flexus云服務器X實例直播建站服務器-華為云
審核編輯 黃宇
-
實時監(jiān)控
+關注
關注
1文章
128瀏覽量
14290 -
Docker
+關注
關注
0文章
532瀏覽量
14246 -
華為云
+關注
關注
3文章
2832瀏覽量
19251
發(fā)布評論請先 登錄
芯科科技免費提供SystemView可視化分析工具
CANDTU設備上云實戰(zhàn):兩步完成接入,三步玩轉數(shù)據(jù)
KubePi:開源Kubernetes可視化管理面板,讓集群管理如此簡單
工業(yè)組態(tài)云平臺實現(xiàn)多設備遠程監(jiān)控與數(shù)據(jù)可視化
移動BI可視化分析助力決策分析應用
工業(yè)MQTT上云網(wǎng)關有哪些應用場景
工業(yè)物聯(lián)網(wǎng)可視化平臺是什么?有什么功能?
光伏電站可視化的實現(xiàn)
終端塔可視化監(jiān)測裝置(帶云臺功能):電網(wǎng)智能監(jiān)控的全景衛(wèi)士
如何使用協(xié)議分析儀進行數(shù)據(jù)分析與可視化
如何實現(xiàn)光伏數(shù)字孿生可視化?
工業(yè)設備可視化管理系統(tǒng)是什么
組態(tài)可視化平臺如何監(jiān)控歐姆龍PLC的數(shù)據(jù)變量
在華為云 FlexusX 實例上實現(xiàn) Docker 容器的實時監(jiān)控與可視化分析
評論