828华为云征文 | 华为云Flexus X实例上实现Docker容器的实时监控与可视化分析
前言
华为云Flexus X,以顶尖算力与智能调度,引领Docker容器管理新风尚。828企业上云节之际,Flexus X携手前沿技术,实现容器运行的实时监控与数据可视化,让管理变得直观高效。无论是性能瓶颈的精准定位,还是资源利用的优化调整,Flexus X都是您的得力助手。立即拥抱华为云Flexus X,开启Docker容器管理新篇章,让云端之旅更加顺畅无忧!
链接直达:华为云Flexus云服务器X实例

原生命令
查看正在运行的容器
[root@flexusx-251f ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3a888d70efa6 swr.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 stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
3a888d70efa6 portainer 0.00% 23.55MiB / 11.53GiB 0.20% 597kB / 937kB 0B / 1.27MB 7
e837cf780e7d blog 0.01% 268.7MiB / 11.53GiB 2.28% 68.3MB / 22.4MB 0B / 76.3MB 13
b08207cf4067 Mysql-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主要特性:
- 灵活丰富的图像化选项
- 可以混合多种风格
- 支持白天和夜间模式
- 多个数据源

环境规划
| 操作系统 | influxdb | cadvisor | grafana | docker | docker-compose | 连接方式 |
|---|---|---|---|---|---|---|
| Huawei Cloud EulerOS 2.0 | tutum/influxdb:latest | google/cadvisor:latest | grafana/grafana:latest | 27.1.1 | 2.29.1 | 本地shell |
搭建流程
需要了解:
- 采用
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 --version
Docker Compose 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-251f cig]# docker-compose up[root@flexusx-251f ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
504ad3c17d38 swr.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-1
d46793983d47 swr.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-1
c72b95d62bc4 swr.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-251f cig]# docker-compose stop
WARN[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-251f cig]# docker-compose ls
NAME STATUS 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实例_直播_建站服务器-华为云

相关文章:
828华为云征文 | 华为云Flexus X实例上实现Docker容器的实时监控与可视化分析
前言 华为云Flexus X,以顶尖算力与智能调度,引领Docker容器管理新风尚。828企业上云节之际,Flexus X携手前沿技术,实现容器运行的实时监控与数据可视化,让管理变得直观高效。无论是性能瓶颈的精准定位,还是…...
缓存预热/雪崩/穿透/击穿
1. 缓存预热 预先将MySQL中的数据同步至Redis的过程 2. 缓存雪崩 Redis主机出现故障,或有大量的key同时过期大面积失效导致Redis不可用 Redis中key设置为永不过期,或者过期时间错开Redis缓存集群实现高可用多缓存结合预防雪崩服务降级 3. 缓存穿透 …...
C/C++:优选算法
一、双指针 1.1移动零 链接:283. 移动零 - 力扣(LeetCode) 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操…...
用于大数据分析的数据存储格式:Parquet、Avro 和 ORC 的性能和成本影响
高效的数据处理对于依赖大数据分析做出明智决策的企业和组织至关重要。显著影响数据处理性能的一个关键因素是数据的存储格式。本文探讨了不同存储格式(特别是 Parquet、Avro 和 ORC)对 Google Cloud Platform (GCP) 上大数据环境…...
【Jupyter Notebook】安装与使用
打开Anaconda Navigator点击"Install"(Launch安装前是Install)点击"Launch" 点击"File"-"New"-"Notebook" 5.点击"Select"选择Python版本 6.输入测试代码并按"EnterShift"运…...
默认端口被占用后,如何修改Apache2 端口
你可以通过以下步骤修改 Apache2 的默认端口(80 端口): 1. 修改 Apache2 配置文件 首先,你需要编辑 Apache2 的端口配置文件: sudo nano /etc/apache2/ports.conf在文件中,你会看到类似以下的内容&#…...
Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(2) (*****生成数据结构类的方式特别有趣****)
本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正 Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(1)-CSDN博客 本节内容 实现目标 通过已经得到的Excel表格…...
Idea 中的一些配置
配置 javap jdk 自带的 javap 可以用来查看字节码信息。 配置过程: 打开设置,定位到 Tools,External Tools新建项,Program 中填 javap 的路径Argument 中填 -c $FileClass$Working directory 中填 $OutputPath$ Argument 中也…...
VulnHub DC-1-DC-7靶机WP
VulnHub DC系列靶机:https://vulnhub.com/series/dc,199/ # VulnHub DC-1 nmap开路获取信息 Nmap scan report for 192.168.106.133 Host is up (0.00017s latency). Not shown: 997 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 1…...
基于DPU的容器冷启动加速解决方案
1. 方案背景 1.1. 业务背景 随着容器技术的迅猛发展与广泛应用,一种新的云计算服务模式应运而生-函数即服务(FaaS, Function as a Service)。FaaS作为一种无服务器(Serverless)计算方式,极大地简化了开发…...
SOME/IP 通信协议详细介绍
标签: SOME/IP 通信协议详细介绍; SOME/IP; SOME/IP 通信协议详细介绍 SOME/IP 通信协议详细介绍 官网: https://some-ip.com/ 1. 什么是SOME/IP? SOME/IP(Scalable service-Oriented MiddlewarE over IP…...
基于Boost库的搜索引擎开发实践
目录 1.项目相关背景2.宏观原理3.相关技术栈和环境4.正排、倒排索引原理5.去标签和数据清洗模块parser5.1.认识标签5.2.准备数据源5.3.编写数据清洗代码parser5.3.1.编写读取文件Readfile5.3.2.编写分析文件Anafile5.3.2.编写保存清洗后数据SaveHtml5.3.2.测试parser 6.编写索引…...
【2023年】云计算金砖牛刀小试3
A场次题目:OpenStack平台部署与运维 业务场景: 某企业拟使用OpenStack搭建一个企业云平台,用于部署各类企业应用对外对内服务。云平台可实现IT资源池化,弹性分配,集中管理,性能优化以及统一安全认证等。系统结构如下图: 企业云平台的搭建使用竞赛平台提供的两台云服务…...
在以太坊中不同合约之间相互调用的场景有哪些?
在以太坊中,合约调用合约的场景有很多,以下是一些常见的情况: 一、复杂业务逻辑的拆分 模块化设计: 当一个智能合约的业务逻辑变得复杂时,可以将其拆分为多个较小的合约,每个合约负责特定的功能。例如&…...
关于 PC打开“我的电脑”后有一些快捷如腾讯视频、百度网盘、夸克网盘、迅雷等各种捷方式在磁盘驱动器上面统一删除 的解决方法
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/142029325 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…...
数据结构——初识数据结构
数据结构——初识数据结构 数据结构的概念数据的类型时间复杂度 数据结构的概念 相互之间存在一种或多种特定关系的数据元素的集合。数据结构是计算机科学中的一个基本概念,它是指数据元素之间的关系和组织方式。数据结构是计算机存储、组织数据的方式,…...
每日搜索论坛回顾:2024年9月13日
Google正在测试一个新的广告标签标题,使广告更加明显。Google搜索排名的波动仍然非常剧烈,即使在核心更新完成一周后仍然如此。Google正在向本地服务广告的广告主发送验证通知。Bing正在测试带有评论来源图标的本地包。Google AdSense正在将自动广告扩展…...
猎板PCB大讲堂:PCB设计铺铜技巧与策略全解析
在电子工程领域,PCB的设计不仅仅是连接电子元件的桥梁,更是确保设备性能和稳定性的关键。铺铜,作为PCB设计中的一个微妙而强大的环节,常常被低估。 猎板PCB带您深入了解铺铜的艺术,探讨其背后的科学原理,以…...
Matplotlib - Statistical Distribution作图
1. 前言 在数据分析和统计学中,绘制统计分布图是非常重要的,因为它帮助我们直观地理解数据的特性,并为进一步的分析提供基础。统计分布图能够揭示数据集的结构、趋势、集中趋势和离散程度等信息,从而使我们更容易做出合理的假设、…...
【机器学习】9 ——最大熵模型的直观理解
系列文章目录 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前奏例子硬币垃圾邮件代码 前奏 【机器学习】6 ——最大熵模型 例子 硬币 假设我们有一枚硬币,可能是公平的,…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...
