15 CIG重量级监控

目录

1. docker stats原生命令

2. CIG

CAdvisor

InfluxDB

Granfana

3. 安装部署

4. Grafana配置

4.1. 添加数据源

4.2. 添加工作台


grafana官网文档参考:Grafana documentation | Grafana documentation

influxdb官网文档参考:https://docs.influxdata.com/influxdb/v2/install/

cadvisor官网文档参考:https://github.com/google/cadvisor/blob/master/docs/running.md

1. docker stats原生命令

通过docker stats 命令可以很方便的查看当前宿主机上所有容器的CPU、内存、网络流量等数据,可以满足一些小型应用。

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

2. CIG

CAdvisor(监控收集) + InfluxDB(存储数据) + Granfana(展示图表),合称 CIG

  1. CAdvisor 运行在每个 Docker 主机上,监控所有容器并收集资源使用数据。
  2. CAdvisor 将收集到的数据推送到 InfluxDB,作为时间序列数据进行存储和管理。
  3. GrafanaInfluxDB 中读取时间序列数据,并以可视化图表的形式展示在自定义的仪表盘上,供用户进行监控和分析

CAdvisor

CAdvisor (Container Advisor) 是一个容器资源监控工具

作用:

  • 容器监控:CAdvisor 是一个用于收集、处理、聚合和导出运行中的容器资源使用和性能信息的工具。它能够自动发现容器,并收集 CPU、内存、网络和文件系统使用数据。
  • 实时监控:提供实时监控功能,能够详细展示每个容器的资源消耗情况,帮助识别性能瓶颈和资源利用情况。
  • 数据导出:能够将收集的数据导出到多种存储后端,如 InfluxDB、Prometheus 等,便于进一步分析和可视化。

工作原理:

  • CAdvisor 运行在每个主机上,监控所有在该主机上运行的容器,通过 Docker API 获取容器的资源使用数据。
  • 它能够以 JSON 格式导出这些数据,或者将数据直接推送到指定的存储后端。

CAdvisor默认存储2分钟的数据,而且只是针对单物理机。不过CAdvisor提供了很多数据集成接口,支持 InfluxDB、Redis、Kafka、Elasticsearch等集成,可以加上对应配置将监控数据发往这些数据库存储起来。


CAdvisor主要功能:

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

InfluxDB

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

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

InfluxDB主要功能:

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

Granfana

官网:Grafana: The open observability platform | Grafana Labs

grafana + influxdb使用:InfluxDB data source | Grafana documentation

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

  • 数据可视化:Grafana 是一个开源的分析和监控平台,能够将 InfluxDB 等数据库中的时间序列数据进行可视化。它支持多种图表类型,如折线图、柱状图、热力图等。
  • 仪表盘管理:用户可以创建和管理自定义的仪表盘,展示关键的性能指标和监控数据,便于实时监控和分析系统状态。
  • 告警系统:Grafana 支持配置告警规则,当监控指标超出设定的阈值时,会自动触发告警通知用户。

Granfana主要功能:

  • 灵活丰富的图形化选项
  • 可以混合多种风格
  • 支持白天和夜间模式
  • 多个数据源

3. 安装部署

参考:How to setup Docker Monitoring

📎如何设置 CIG重量级 Docker 监控 .html

  1. 编写docker-compose.yml服务编排文件

ps:使用的tutum/influxdb 相比influxdb多了web可视化视图。但是该镜像已被标记为已过时

新版的1.X 2.X版本的需要查看官网链接编写对应的yml文件(部分不能照搬,某些初始化变量已经失效)

volumes:
   grafana_data: {} #{}使用默认设置创建卷

networks:
   CIG_net: {}

services:
  influxdb:
     image: tutum/influxdb
     container_name: influxdb
     restart: always
     environment:
        - PRE_CREATE_DB=cadvisor
     ports:
        - "8083:8083"
        - "8086:8086"
     volumes:
        - ./data/influxdb:/data
     networks:
        - CIG_net
 #-------------------------------------------------------------------------------------------------------
  cadvisor:
     image: gcr.io/cadvisor/cadvisor
     container_name: cadvisor
     command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086
     restart: always
     ports:
        - "8080:8080"
     volumes:
        - /:/rootfs:ro
        - /var/run:/var/run:rw
        - /sys:/sys:ro
        - /var/lib/docker/:/var/lib/docker:ro
        - /sys/fs/cgroup:/sys/fs/cgroup:ro
     networks:
        - CIG_net
  #--------------------------------------------------------------------------------------------------------
  grafana:
     image: grafana/grafana:latest
     container_name: grafana
     user: "104"
     restart: always
     ports:
        - "3000:3000"
     volumes:
        - grafana_data:/var/lib/grafana
     environment:
        - HTTP_USER=admin
        - HTTP_PASS=admin
        - INFLUXDB_HOST=influxdb
        - INFLUXDB_PORT=8086
        - INFLUXDB_NAME=cadvisor
        - INFLUXDB_USER=root
        - INFLUXDB_PASS=root
     networks:
        - CIG_net
2.检查语法:docker-compose config -q
3.创建并启动容器 docker-compose up -d

安装过程中遇见的问题及解决过程:

无法找到 CPU 的挂载点

换最新的镜像,gcr.io/cadvisor/cadvisor

重新启动 docker-compose up -d


浏览浏览cAdvisor收集服务,http://ip:8080

cadvisor也有基础的图形展现功能,这里主要用它来作数据采集

浏览influxdb存储服务,http://ip:8083/ ,检查我们初始化的数据库cadvisor

浏览grafana,默认账户密码 admin admin

4. Grafana配置

4.1. 添加数据源

关于如何添加源,grafana给出不同influxdb的参考教程InfluxDB data source | Grafana documentation

Configuration(小齿轮)选项卡中,选择Data Sources,添加一个InfluxDB数据源:

  • name:自定义一个数据源名称,例如InfluxDB
  • Query Language:查询语言,默认InfluxQL即可
  • URL:根据compose中的容器服务名连接,http://influxdb:8086
  • database:我们在InfluxDB中创建的数据库实例,cadvisor
  • User:InfluxDB的默认用户,root
  • Password:root

保存并测试

4.2. 添加工作台

  1. Create(加号)选项卡中,选择创建 Dash Board工作台。右上角配置中可以配置创建出来的工作台的标题、文件夹等信息。
  2. 在创建出来的工作台中,选择Add panel中的Add a new panel添加一个新的面板。
    1. 在右上角Time series(时序图)位置可以切换展示的图表样式(柱状图、仪表盘、表格、饼图等等)
    2. 右侧边栏为该图表配置相关信息:标题、描述
    3. 图表下方可以配置该图表展示的数据的查询语句,例如:
      • FROM:cpu_usage_total(Grafana会自动获取InfluxDB数据库中的元数据,可以直接选择对应表名)
      • WHERE:添加一个条件,container_name=cadvisor_v1
      • ALIAS:配置一个别名,CPU使用情况汇总

  • 44
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值