Docker容器监控-CIG

2024-02-08 19:28
文章标签 docker 容器 监控 cig

本文主要是介绍Docker容器监控-CIG,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、CIG说明

1. CAdvisor

2. InfluxDB

3. Grafana

二、环境搭建

1. 创建目录

2. 编写 docker-compose.yml

3. 检查并运行容器

三、进行测试

1. 查看 influxdb 存储服务 是否能正常访问

2. 查看 cAdvisor 收集服务能否正常访问

3. 查看 grafana 展现服务,并且配置展现模板

1. 进行登录

2 .配置数据源

3. 配置面板panel


一、CIG说明

CAdvisor+InfluxDB+Granfana 组成的CIG的监控。

1. CAdvisor

CAdvisor 是由 Google 开源的一个用于监控容器资源使用情况的工具。它能够实时收集 Docker 容器的 CPU 使用率内存使用量磁盘 I/O网络流量 等指标,并将这些数据暴露为 Prometheus 格式的监控端点,供 Prometheus 或其他监控系统使用。cAdvisor 还提供了一个简单的 Web 界面,可以用于实时查看容器的监控数据。

2. InfluxDB

InfluxDB 是一个开源的时序数据库,专门设计用于处理时间序列数据。在 CIG 监控系统中,InfluxDB 用于存储由 cAdvisor 收集的容器监控数据。用户可以通过查询 InfluxDB 数据库来获取 历史的容器监控指标,并利用其强大的时序查询语言进行数据分析和可视化。

3. Grafana

Grafana 是一个开源的数据可视化工具,用于创建、查看和共享监控仪表盘。在 CIG 监控系统中,Grafana 与 InfluxDB 集成,可以直接从 InfluxDB 中查询容器监控数据,并通过可视化方式展示在用户界面上。用户可以根据自己的需求定制仪表盘,选择合适的 图表类型、添加 告警规则,并将仪表盘分享给其他用户。

        通过将 cAdvisorInfluxDBGrafana 这三个组件结合在一起,用户可以构建一个强大而灵活的容器监控系统,实现对 Docker 容器的全面监控和管理。该系统具有 实时性可扩展性易用性 等特点,适用于各种规模的容器化环境。

二、环境搭建

1. 创建目录

mkdir /mydocker/cig
cd /mydocker/cig

2. 编写 docker-compose.yml

vim docker-compose.yml
version: '3.1'volumes:grafana_data: {}services:influxdb:image: tutum/influxdb:0.9restart: alwaysenvironment:- PRE_CREATE_DB=cadvisorports:- "8083:8083"- "8086:8086"volumes:- ./data/influxdb:/datacadvisor:image: google/cadvisorlinks:- influxdb:influxsrvcommand: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086restart: alwaysports:- "8080:8080"volumes:- /:/rootfs:ro- /var/run:/var/run:rw- /sys:/sys:ro- /var/lib/docker/:/var/lib/docker:rografana:user: "104"image: grafana/grafanauser: "104"restart: alwayslinks:- influxdb:influxsrvports:- "3000:3000"volumes:- grafana_data:/var/lib/grafanaenvironment:- HTTP_USER=admin- HTTP_PASS=admin- INFLUXDB_HOST=influxsrv- INFLUXDB_PORT=8086- INFLUXDB_NAME=cadvisor- INFLUXDB_USER=root- INFLUXDB_PASS=root

ps:配置注释

version: '3.1'volumes:grafana_data: {}  # 定义 Grafana 数据卷,用于持久化数据services:influxdb:image: tutum/influxdb:0.9  # 使用 InfluxDB 0.9 版本镜像restart: always  # 总是重启容器environment:- PRE_CREATE_DB=cadvisor  # 预创建名为 cadvisor 的数据库ports:- "8083:8083"  # InfluxDB Web 可视化页面端口- "8086:8086"  # InfluxDB API 端口volumes:- ./data/influxdb:/data  # 挂载 InfluxDB 数据到本地目录cadvisor:image: google/cadvisor  # 使用 Google/cAdvisor 镜像links:- influxdb:influxsrv  # 链接到 InfluxDB 服务command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086  # 定义 cadvisor 启动命令restart: always  # 总是重启容器ports:- "8080:8080"  # cAdvisor 端口volumes:- /:/rootfs:ro  # 挂载根目录为只读- /var/run:/var/run:rw  # 挂载/var/run目录为读写- /sys:/sys:ro  # 挂载/sys目录为只读- /var/lib/docker/:/var/lib/docker:ro  # 挂载/var/lib/docker目录为只读grafana:user: "104"  # 指定容器用户image: grafana/grafana  # 使用 Grafana 镜像restart: always  # 总是重启容器links:- influxdb:influxsrv  # 链接到 InfluxDB 服务ports:- "3000:3000"  # Grafana 端口volumes:- grafana_data:/var/lib/grafana  # 挂载 Grafana 数据到数据卷environment:- HTTP_USER=admin  # 设置 Grafana 登录用户名- HTTP_PASS=admin  # 设置 Grafana 登录密码- INFLUXDB_HOST=influxsrv  # 设置 InfluxDB 主机- INFLUXDB_PORT=8086  # 设置 InfluxDB 端口- INFLUXDB_NAME=cadvisor  # 设置 InfluxDB 数据库名称- INFLUXDB_USER=root  # 设置 InfluxDB 用户名- INFLUXDB_PASS=root  # 设置 InfluxDB 密码

ps:如果出错记得检查是否有空格没有删除

3. 检查并运行容器

# 检查配置,有问题才有输出
docker compose config -q
# -d 后台启动
docker compose up -d

检查容器是否正常启动

docker ps
# 如果运行出错别忘记了查看日志
docker logs 【容器名称/容器ID】

三、进行测试

1. 查看 influxdb 存储服务 是否能正常访问

http://192.168.xxx.xxx:8083/

进入之后查看我们在 docker-compose.yml 配置文件中默认创建的数据库是否已经创建

Show databases

2. 查看 cAdvisor 收集服务能否正常访问

http://192.168.xxx.xxx:8083/

3. 查看 grafana 展现服务,并且配置展现模板

1. 进行登录

grafana 默认帐户密码(admin/admin),在登录之后需要设置一个新的密码

http://192.168.xxx.xxx:3000/

2 .配置数据源

找到 InfluxDB 数据库

填写数据源链接 http://influxdb:8086

然后向下滑动,配置数据库连接账号密码。

  • Database:cadvisor
  • User:root
  • Password:root

docker-compose.yml 配置文件中在创建 influxdb 时创建

3. 配置面板panel

FROM:cpu_usage_total(Grafana会自动获取InfluxDB数据库中的元数据,可以直接选择对应表名)

WHERE:添加一个条件,container_name=/

ALIAS:配置一个别名,CPU使用情况汇总

这篇关于Docker容器监控-CIG的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/691979

相关文章

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

Spring核心思想之浅谈IoC容器与依赖倒置(DI)

《Spring核心思想之浅谈IoC容器与依赖倒置(DI)》文章介绍了Spring的IoC和DI机制,以及MyBatis的动态代理,通过注解和反射,Spring能够自动管理对象的创建和依赖注入,而MyB... 目录一、控制反转 IoC二、依赖倒置 DI1. 详细概念2. Spring 中 DI 的实现原理三、

使用zabbix进行监控网络设备流量

《使用zabbix进行监控网络设备流量》这篇文章主要为大家详细介绍了如何使用zabbix进行监控网络设备流量,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装zabbix配置ENSP环境配置zabbix实行监控交换机测试一台liunx服务器,这里使用的为Ubuntu22.04(

springboot健康检查监控全过程

《springboot健康检查监控全过程》文章介绍了SpringBoot如何使用Actuator和Micrometer进行健康检查和监控,通过配置和自定义健康指示器,开发者可以实时监控应用组件的状态,... 目录1. 引言重要性2. 配置Spring Boot ActuatorSpring Boot Act

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS