Docker系列之搭建容器监控CAdvisor+InfluxDB+Granfana

本文介绍了如何通过CAdvisor监控Docker容器的资源使用,结合InfluxDB进行数据持久化存储,并利用Grafana进行可视化展示。通过docker-compose部署,实现对CPU、内存、网络等指标的实时监控和历史数据查看。
摘要由CSDN通过智能技术生成

1. 概述

使用docker stats命令可以查看到当前宿主机上所有容器的CPU、内存以及网络流量等数据。但是其统计结果只能是当前宿主机的全部容器,数据资料是实时的,没有地方存储,也没有健康指标过线预警等。因此需要将这些信息进行持久化,常用的方案是CAdvisor监控收集+InfluxDB存储数据+Granfana展示图表。

1.1. CAdvisor

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

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

1.2. InfluxDB

InfluxDB是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。InfluxDB是一个时序数据库,专门用于存储时序相关数据,很适合存储CAdvisor的数据,而且CAdvisor已经提供了InfluxDB的集成方法,只需要在启动容器时指定配置即可
InfluxDB主要功能

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

1.3. Granfana

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

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

2. 使用compose安装

在/opt目录下新建compose目录,在其下新建文件docker-compose.yml,具体内容如下:

version: '3.1'
volumes:
  grafana_data: {}
services:
  influxdb:
    image: tutum/influxdb:0.9
    restart: always
    environment:
      - PRE_CREATE_DB=cadvisor
    ports:
      - "8083:8083"
      - "8086:8086"
    volumes:
      - ./data/influxdb:/data
  cadvisor:
    image: google/cadvisor
    links:
      - influxdb:influxsrv
    command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086
    restart: always
    ports:
      - "8080:8080"
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:rw
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
  grafana:
    user: "104"
    image: grafana/grafana
    restart: always
    links:
      - influxdb:influxsrv
    ports:
      - "3000:3000"
    volumes:
      - grafana_data:/var/lib/grafana
    environment:
      - HTTP_USER=admin
      - HTTP_PASS=admin
      - INFLUXDB_HOST=influxsrv
      - INFLUXDB_PORT=8086
      - INFLUXDB_NAME=cadvisor
      - INFLUXDB_USER=root
      - INFLUXDB_PASS=root

使用命令docker-compose up启动
启动docker-compose
使用命令docker ps或者docker ps -a查看以上三个服务容器运行状态
查看运行状态

3. 验证

在浏览器输入地址:http://ip:8080/,验证cadvisor
cadvisor首页
浏览器地址输入:http://ip:3000/,验证grafana
grafana登录页
用户名/密码为:admin/admin,第一次登录时会提示修改密码
grafana首页
浏览器输入地址:http://ip:8083/,验证InfluxDB
influxDB首页

4. Grafana配置

4.1. 配置数据源

配置数据源
新增数据库
添加数据库
选择数据库
选择数据库
配置数据库信息
配置数据库信息
配置数据库链接信息
配置数据库链接信息

4.2. 配置面板Panel

添加面板
添加新面板
添加新面板
选择模板
选择模板
配置模板
配置模板
配置模板数据源信息
配置数据源信息
查看模板信息
查看模板信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值