前言
華為云 Flexus X,以頂尖算力與智能調度,引領 Docker 容器管理新風尚。828 企業上云節之際,Flexus X 攜手前沿技術,實現容器運行的實時監控與數據可視化,讓管理變得直觀高效。無論是性能瓶頸的精準定位,還是資源利用的優化調整,Flexus 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,內存以及網絡流量等數據。一般適用于小公司
docker stats統計結果只是當前宿主機的全部容器,數據資料是實時的,沒有地方存儲,沒有健康指標、過線預警等功能
容器監控三劍客
CAdvisor
CAdvisor 是一個容器資源監控工具,包括 CPU、網絡 IO、磁盤 IO 等監控,同時提供了一個 WEB 頁面用于查看容器的實時運行狀態。CAdvisor 默認存儲兩分鐘的數據,而且只是針對單核物理機。不過 CAdvisor 提供了很多數據集成接口,支持 InfluxDB、Redis、Kafka、Elasticsearch 等集成,可以加上對應配置將監控數據發往這些數據庫存儲起來。
CAdvisor 功能主要有兩點:
展示 Host 和 容器 兩個層次的監控數據
展示歷史變化數據
InfluxDB
InfluxDB 使用 Go 語言編寫的一個開源分布式時序、時間和指標數據庫,無需外部依賴。
CAdvisor 默認只能在本機保存最近兩分鐘的數據,為了持久化數據存儲和統一收集展示監控數據,需要將數據存儲到 InfluxDB 中。InfluxDB 是一個時序數據庫,專門用于數據時序相關數據,很適合存儲 CAdvisor 的數據。而且,CAdvisor 本身已經提供了 InfluxDB 的集成方法,啟動容器時指定配置即可。
InfluxDB 主要功能:
基于時間序列,支持與時間有關的相關函數(如最大、最小、求和等)
可度量性:可以實時對大量數據進行計算
基于實踐:支持任意的實踐數據
Granfana
Grafana 是一個開源的數據監控分析可視化平臺,支持多種數據源配置(支持的數據源包括 InfluxDB、MySQL、Elasticsearch、OpenTSDB、Graphite 等)和豐富的插件及模版功能,支持圖表權限控制和報警。
Grafana 主要特性:
靈活豐富的圖像化選項
可以混合多種風格
支持白天和夜間模式
多個數據源
環境規劃
搭建流程
需要了解:
?采用 docker 方式進行部署容器監控三劍客
?詳細購買配置實例可參考文章:快速部署華為云Flexus X實例,開啟您的云端之旅
?部署 docker 服務請參考文章:華為FlexusX與Docker+Nginx的高效整合之路
拉取鏡像(由于網絡原因,我已經提前將鏡像上傳至華為云鏡像倉庫,可直接進行拉取)
[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
創建文件夾,編寫 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:{}#創建一個名為 grafana_data 的卷,用于 Grafana 的數據持久化 #定義服務(容器) services: # InfluxDB 服務 influxdb:image:swr.cn-north-4.myhuaweicloud.com/cloud-wzs/tutum/influxdb:latest#使用 tutum 提供的 InfluxDB 0.9 版本鏡像 restart:always#容器總是重啟,無論退出狀態如何 environment: -PRE_CREATE_DB=cadvisor#在 InfluxDB 啟動時預創建名為 cadvisor 的數據庫 ports: -"8083:8083"#將容器的 8083 端口映射到宿主機的 8083 端口(InfluxDB 的 Web 管理界面) -"8086:8086"#將容器的 8086 端口映射到宿主機的 8086 端口(InfluxDB 的 HTTP API) volumes: -./data/influxdb:/data#將宿主機的./data/influxdb 目錄掛載到容器的/data 目錄,用于數據持久化 # 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,并指定數據庫和主機 restart:always#容器總是重啟 ports: -"8081:8080"#將容器的 8080 端口映射到宿主機的 8081 端口(cAdvisor 的 Web 界面) volumes: -/:/rootfs:ro#將宿主機的根文件系統掛載為只讀,供 cAdvisor 監控 -/var/run:/var/run:rw#掛載宿主機的/var/run 目錄為讀寫,供 cAdvisor 訪問某些運行時數據 -/sys:/sys:ro#掛載宿主機的/sys 目錄為只讀,供 cAdvisor 獲取系統信息 -/var/lib/docker/:/var/lib/docker:ro#掛載宿主機的 Docker 數據目錄為只讀,供 cAdvisor 監控 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 的數據持久化 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 數據庫為 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、網絡 IO、磁盤 IO 等監控的可視化
influxdb 存儲服務
瀏覽器訪問:http://localhost:8083
grafana 展現服務
瀏覽器訪問:http://localhost:3000
我們在 docker-compose 中指定過賬號密碼
進去需要修改新密碼,在這我們將密碼修改為 Huawei12#$
配置步驟
配置數據源
添加數據庫
選擇 influxdb 數據源
配置數據庫文件
http://InfluxDB:8086
配置面板 panel
至此,容器監控三劍客搭建成功
關閉和開啟一定要在對應 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
體驗和感受
在云計算的快速發展中,Docker 容器的廣泛應用為企業帶來了前所未有的靈活性和效率。然而,如何實時監控這些容器的性能并進行可視化分析,成為了企業運維團隊面臨的重要挑戰。華為 Flexus X 服務器,憑借其卓越的性能和強大的擴展性,為企業用戶提供了理想的云端平臺。結合 CAdvisor、InfluxDB 與 Grafana,Flexus X 實例實現了 Docker 容器的實時監控與可視化分析新突破。
CAdvisor,作為 Google 開源的容器資源監控工具,能夠收集 Docker 容器的資源使用情況和性能指標。InfluxDB,作為高性能的時序數據庫,能夠高效地存儲和查詢這些監控數據。而 Grafana,則以其強大的數據可視化能力,將復雜的監控數據轉化為直觀的圖表和儀表盤,幫助運維人員快速洞察容器運行狀態。
在 828 華為云企業上云節之際,在 Flexus X 實例上部署這一強大的監控與分析。通過 CAdvisor 的實時數據采集、InfluxDB 的高效存儲以及 Grafana 的精美可視化,您將能夠輕松掌握 Docker 容器的性能瓶頸,優化資源配置,提升業務運行效率。
選擇 Flexus X 實例與 CAdvisor+InfluxDB+Grafana 的組合,就是選擇了 Docker 容器管理的未來。點擊下方鏈接,在 828 上云節的特惠期間,讓我們攜手共進,共同開啟云端容器管理的新篇章。
產品鏈接:華為云Flexus云服務器X實例直播建站服務器-華為云
審核編輯 黃宇
-
實時監控
+關注
關注
1文章
89瀏覽量
13601 -
Docker
+關注
關注
0文章
472瀏覽量
11865 -
華為云
+關注
關注
3文章
2566瀏覽量
17464
發布評論請先 登錄
相關推薦
評論