首页 >PC >正文

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

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

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

 

原生命令

查看正在运行的容器

[root@flexusx-251f ~]# docker psCONTAINER ID   IMAGE                                                                      COMMAND                  CREATED        STATUS        PORTS                                                                                            NAMES3a888d70efa6   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 statsCONTAINER ID   NAME        CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O     PIDS3a888d70efa6   portainer   0.00%     23.55MiB / 11.53GiB   0.20%     597kB / 937kB     0B / 1.27MB   7e837cf780e7d   blog        0.01%     268.7MiB / 11.53GiB   2.28%     68.3MB / 22.4MB   0B / 76.3MB   13b08207cf4067   Mysql-db    0.02%     205.8MiB / 11.53GiB   1.74%     3.63MB / 33.7MB   0B / 92.7MB   33

通过 docker stats 命令可以很方便的看到当前宿主机上的所有容器的 cpu,内存以及网络流量等数据。一般适用于小公司

docker stats 统计结果只是当前宿主机的全部容器,数据资料是实时的 ,没有地方存储,没有健康指标、过线预警等功能

容器监控三剑客

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

 

CAdvisor

CAdvisor 是一个容器资源监控工具,包括 CPU、网络 IO、磁盘 IO 等监控,同时提供了一个 WEB 页面用于查看容器的实时运行状态。CAdvisor 默认存储两分钟的数据,而且只是针对单核物理机。不过 CAdvisor 提供了很多数据集成接口 ,支持 InfluxDB、Redis、Kafka、Elasticsearch 等集成,可以加上对应配置将监控数据发往这些数据库存储起来。

CAdvisor 功能主要有两点:

展示 Host 和 容器 两个层次的监控数据

展示历史变化数据

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

 

InfluxDB

InfluxDB 使用 Go 语言编写的一个开源分布式时序、时间和指标数据库,无需外部依赖。

CAdvisor 默认只能在本机保存最近两分钟的数据,为了持久化数据存储和统一收集展示监控数据,需要将数据存储到 InfluxDB 中。InfluxDB 是一个时序数据库,专门用于数据时序相关数据,很适合存储 CAdvisor 的数据。而且,CAdvisor 本身已经提供了 InfluxDB 的集成方法,启动容器时指定配置即可。

InfluxDB 主要功能:

基于时间序列,支持与时间有关的相关函数(如最大、最小、求和等)

可度量性:可以实时对大量数据进行计算

基于实践:支持任意的实践数据

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

 

Granfana

Grafana 是一个开源的数据监控分析可视化平台,支持多种数据源配置(支持的数据源包括 InfluxDB、MySQL、Elasticsearch、OpenTSDB、Graphite 等)和丰富的插件及模版功能,支持图表权限控制和报警。

Grafana 主要特性:

灵活丰富的图像化选项

可以混合多种风格

支持白天和夜间模式

多个数据源

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

 

环境规划

搭建流程

需要了解:

• 采用 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 --versionDocker 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 psCONTAINER ID   IMAGE                                                                      COMMAND                  CREATED          STATUS          PORTS                                                                                            NAMES504ad3c17d38   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-1d46793983d47   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-1c72b95d62bc4   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

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

 

测试访问

CAdvisor 收集服务

浏览器访问:http://localhost:8081

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

 

可以看到 CPU、网络 IO、磁盘 IO 等监控的可视化

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

 

influxdb 存储服务

浏览器访问:http://localhost:8083

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

 

grafana 展现服务

浏览器访问:http://localhost:3000

我们在 docker-compose 中指定过账号密码

进去需要修改新密码,在这我们将密码修改为 Huawei12#$

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

 

配置步骤

配置数据源

添加数据库

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

 

选择 influxdb 数据源

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

 

配置数据库文件

http://InfluxDB:8086

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

 

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

 

配置面板 panel

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

 

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

 

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

 

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

 

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

 

至此,容器监控三剑客搭建成功

关闭和开启一定要在对应 yaml 文件路径下

[root@flexusx-251f ~]# cd cig/[root@flexusx-251f cig]# 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-251f cig]# docker-compose lsNAME                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实例直播建站服务器-华为云

在华为云 FlexusX 实例上实现Docker 容器的实时监控与可视化分析

网友评论

验证码 换一张
取 消
暂无评论...
三日内热门评论文章
为您推荐
  • 相关阅读
  • 业界资讯
  • 手机通讯
  • 电脑办公
  • 新奇数码
  • 软件游戏
  • 科学探索