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功能主要有两点:

  1. 展示Host 和 容器 两个层次的监控数据
  2. 展示历史变化数据

在这里插入图片描述

InfluxDB

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

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

InfluxDB主要功能:

  1. 基于时间序列,支持与时间有关的相关函数(如最大、最小、求和等)
  2. 可度量性:可以实时对大量数据进行计算
  3. 基于实践:支持任意的实践数据

在这里插入图片描述

Granfana

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

Grafana主要特性:

  1. 灵活丰富的图像化选项
  2. 可以混合多种风格
  3. 支持白天和夜间模式
  4. 多个数据源

在这里插入图片描述

环境规划

操作系统influxdbcadvisorgrafanadockerdocker-compose连接方式
Huawei Cloud EulerOS 2.0tutum/influxdb:latestgoogle/cadvisor:latestgrafana/grafana:latest27.1.12.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实例_直播_建站服务器-华为云

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/422165.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TS 常用类型

我们经常说TypeScript是JavaScript的一个超级 TypeScript 常用类型 TypeScript 是 JS 的超集,TS 提供了 JS 的所有功能,并且额外的增加了:类型系统 所有的 JS 代码都是 TS 代码 JS 有类型(比如,number/string 等&…

客厅无主灯设计:灯位布局与灯光灯具的和谐搭配

在现代家居设计中,客厅作为家庭活动的中心区域,其照明设计的重要性不言而喻。无主灯设计以其灵活多变、氛围营造独特的优势,逐渐成为客厅照明的热门选择。然而,如何合理规划灯位布局,并科学搭配灯光与灯具,…

基于java+springboot+vue实现的林业产品推荐系统(文末源码+Lw)135

基于SpringBootVue的实现的林业产品推荐系统(源码数据库万字Lun文流程图ER图结构图演示视频软件包) 系统功能: 林业产品推荐系统是在MySQL中建立数据表保存信息,运用SpringBoot框架和Java语言编写。 并按照软件设计开发流程进行…

ICETEK-DM6437-AICOM—— DMA直接存储器访问设计

#一、设计目的: 1 进一步了解 ICETEK-DM6437-AF 的内部存储器空间的分配及指令寻址方式: 内部存储器空间分配:研究 ICETEK-DM6437-AF 的存储器架构,包括但不限于片内 SRAM、片外 DRAM 和其他存储器模块。了解这些存储器的大小、起…

k8s 资源管理

文章目录 ResourceQuota什么是资源配额定义一个ResourceQuotaResourceQuota的使用 LimitRangeLimitRange的用途示例1:配置默认的requests和limits示例2:配置requests和limits的范围 QoS什么是服务质量保证示例1:实现QoS为Guaranteed的Pod示例…

优化安防视频监控的关键体验:视频质量诊断技术如何应用在监控系统中?

随着科技的不断进步,视频监控平台在公安、司法、教育、基础设施等众多领域得到了广泛应用。然而,视频图像的质量直接关系到监控系统的应用效果,是反映监控系统运维效果的重要指标之一。因此,视频监控平台需要配备一系列先进的视频…

Active Neural SLAM 复现记录

Active Neural SLAM 复现记录 创建虚拟环境安装habitat-sim安装habitat-api安装Pytorch配置项目准备数据先搞Gibson场景数据再搞pointnav任务数据创建软链接 测试训练 创建虚拟环境 conda create -n AVSLAM python3.10 conda activate AVSLAM安装habitat-sim git clone https…

存储课程学习笔记8_spdk的安装以及简单demo测试

已经对相关的基础概念有一定的了解,比如裸盘,文件系统,读写相关裸盘,裸盘挂载使用,内核插入文件系统的方式,相关操作io的库或者函数(io_uring, readv,writev, mmap等)&am…

nlohmann::json中有中文时调用dump转string抛出异常的问题

问题描述 Winodows下C开发想使用一个json库,使用的nlohmann::json,但是遇到json中使用中文时,转成string,会抛出异常。 nlohmann::json contentJson;contentJson["chinese"] "哈哈哈";std::string test con…

前端算法(持续更新)

1、最大的钻石 1楼到n楼的每层电梯口都放着一个钻石,钻石大小不一。你从电梯1楼到n楼,每层楼电梯门都会打开一次,只能拿一次钻石,问怎样才能最大的钻石? 解题思路: 这是一个经典的动态规划问题&#xff…

让人眼前一亮的软件测试简历,收不到面试邀请算我输

不知道大家的简历是不是都写成下面这样 根据需求文档进行需求分析 熟悉业务流程,明确测试点 根据测试点设计测试用例 参与评审测试用例 提交和回归跟踪缺陷,确认修复完成之后关闭Bug 通过使用Fiddler进行抓包分析并定位前后端Bug 使用简单的SQL语…

git一个项目关联多个远程仓库

一行代码就行: git remote set-url origin [想要关联的远程仓库地址]想要关联哪个就切换哪个 或者不用每次切换,集中管理: Git->Manage Remotes 点击“”,填入Name和想要关联的远程库地址 每次push时执行命令 git push [为…

美团OC感想

OC感想 晚上十点拿到美团意向了 到家事业部。,日常实习没过,暑期实习没过,秋招终于意向了,晚上十点发的,整整激动到一点才睡着,不仅因为这是秋招的第一个意向,更因为这是我一直心心念念想去的地…

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录 [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法: [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问…

五款知名国内外OA系统厂商盘点,优缺点一目了然!

本文将推荐五款知名的OA系统,助力企业选型! OA 系统就像是企业办公的智慧枢纽。它整合了流程审批、文档管理、沟通协作等多种功能,让企业的日常办公更加高效有序。就好比一个多功能的办公工具箱,为企业提供各种实用的工具。 然而…

研1日记9

1.理解conv1d和conv2d a. 1和2处理的数据不同,1维数据和图像 b. 例如x输入形状为(32,19,512)时,卷积公式是针对512的,而19应该变换为参数中指定的输出通道。 2.“SE块”(Squeeze-and-Excitation Block)它可以帮助模…

jenkins工具的介绍和gitlab安装

使用方式 替代手动,自动化拉取、集成、构建、测试;是CI/CD持续集成、持续部署主流开发模式中重要工具;必须组件 jenkins-gitlab,代码公共仓库服务器(至少6G内存);jenkins-server,需…

无人机视角-道路目标检测数据集 航拍 8600张 voc yolo

数据集名称: 无人机视角-道路目标检测数据集 数据集规模: 图像数量:8600张拍摄方式:航拍(使用无人机拍摄)标注格式:支持VOC和YOLO格式 数据集内容: 该数据集由无人机从空中拍摄的…

网络安全架构师

网络安全架构师负责构建全面的安全框架,以保护组织的数字资产免受侵害,确保组织在数字化转型的同时维持强大的安全防护。 摩根大通的网络安全运营副总裁兼安全架构总监Lester Nichols强调,成为网络安全架构师对现代企业至关重要,…

源代码防泄密软件的五大特点

在数据防泄密领域,深信达的SDC沙盒软件以其独特的技术和创新应用,为源代码安全提供了强有力的保护。特别是在源代码防泄密方面,SDC沙盒表现出色,其实现方式主要包括以下几个方面: 1. **内核级虚拟沙盒技术**&#xff1…