Docker监控——Cadvisor+InfluxDB+Grafana搭建

本文介绍了一种基于Docker的容器监控方案,包括使用cAdvisor采集数据、InfluxDB存储数据及Grafana展示数据的方法。
FLUX.1-dev

FLUX.1-dev

图片生成
FLUX

FLUX.1-dev 是一个由 Black Forest Labs 创立的开源 AI 图像生成模型版本,它以其高质量和类似照片的真实感而闻名,并且比其他模型更有效率

为什么需要监控??

对于一个物理机上运行多个容器应用时,容器的运行情况如:CPU使用率、内存使用率、网络状态、磁盘空间等信息,都是需要去了解的,因此监控是必须的。对于容器的监控方案可谓多种多样,本身自带命令docker stats。

[root@docker ~]# docker stats
CONTAINER      CPU %    MEM USAGE / LIMIT    MEM %      NET I/O         BLOCK I/O    PIDS
bd96d72ed9c7   0.04%  14.97 MiB / 7.64 GiB  0.19%    8.22 MB / 805 MB   0 B / 0 B      9
665563143eb7   0.01%  18.12 MiB / 7.64 GiB   0.23%  19.7 MB / 18.5 MB   0 B / 39.4 MB  8
f2304dad5855  0.18%  98.45 MiB / 7.64 GiB   1.26%   1.07 GB / 9.97 MB   0 B / 2.13 GB  9

组件简介

cAdvisor:用于数据采集

cadvisor谷歌公司自己用来监控他们基础设施的一款工具,这个工具厉害之处不仅能监控docker容器的实时信息,而且还能将你的cadvisor这容器所在的主机的系统的实时信息,但是由于cadvisor只是能监控到实时的信息而不能保存。


InfluxDB:用于数据存储

InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。所以我们要使用influxdb将这些实时监控到的信息存放起来。

InfluxDB主要特色功能

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

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

  • 基于事件:它支持任意的事件数据;

InfluxDB主要特点

  • 无结构(无模式)

  • 可以是任意数量的列

  • 可拓展的;

  • 支持min, max, sum, count, mean, median 等一系列函数,方便统计

  • 原生的HTTP支持,内置HTTP API

  • 强大的类SQL语法

  • 自带管理界面,方便使用

  • 参考文章:https://www.influxdata.com/products/


Grafana: 用于数据展示

Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。

Grafana主要特性:

  • 灵活丰富的图形化选项

  • 可以混合多种风格

  • 支持白天和夜间模式

  • 多个数据源。


安装布署过程

首先得有docker环境,这个就不用介绍了吧,请参考前面的文章Centos7安装Docker最新版

1、部署influxDB服务

[root@master ~]# docker run -d --name influxdb -p 8086:8086 tutum/influxdb

说明:

  • -d :后台运行此容器

  • --name :启运容器分配名字influxdb

  • -p :映射端口,8083端口为infuxdb管理端口,8086端口是infuxdb的数据端口

  • tutum/influxdb:通过这个容器来运行的,默认会在docker官方仓库pull下来

容器部署成功即可现在可以通过浏览器去访问influxdb的管理端了

接下来创建cadvisor的数据库与用户,创建cadvisor数据库cadvisor、用户root,用户和数据库大家可以自行随意定义,不一定要跟我一样,只是用于后期grafana的配置:

CREATE USER "root" WITH PASSWORD '123456' WITH ALL PRIVILEGES

回车直接创建完成如下图

创建管理用户

创建完成如下图

同时也是可以使用CLI命令行界面来创建的,命令一样

> CREATE DATABASE cadvisor
> use cadvisor
> CREATE USER "root" WITH PASSWORD 'root' WITH ALL PRIVILEGES
> exit

2、布署cadvisor服务

docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro --publish=8082:8080 --detach=true \
--link influxdb:influxdb --name=cadvisor google/cadvisor:latest \
-storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086

说明:

  • -d :后台运行此容器

  • --name :启运容器分配名字cadvisor

  • -p :映射端口8082:8080(由于环境8080端口被占用,cadvisor默认端口是8080不建议修改)

  • -v:把宿主机的目录映射到容器中,这些目录都是cadviso需要采集的目录文件和监控内容

  • -storage_driver:需要指定cadvisor的存储驱动、数据库主机、数据库名

  • google/cadvisor:通过cadvisor这个镜像来运行容器,默认会在docker官方仓库把镜像pull下来;

查看cadvisor容器:

现在可以通过浏览访问cadisor的管理页面

cadvisor的基础图形功能也酷炫的

测试是否写入influxdb数据库

3、布署granafa(granafa使用教程

[root@master ~]# docker run -d --name grafana -p 3000:3000 grafana/grafana

访问WEB管理端,默认用户名,密码 admin:admin
添加数据源

docker:快速构建容器监控系统cAdvisor+InfluxDB+Grafana

  • 新建New dashboard,如下图:
    docker:快速构建容器监控系统cAdvisor+InfluxDB+Grafana

    docker:快速构建容器监控系统cAdvisor+InfluxDB+Grafana

    docker:快速构建容器监控系统cAdvisor+InfluxDB+Grafana

  • 新建了一个监控项之后,回来HOME,可以发现刚才创建的项目:
    docker:快速构建容器监控系统cAdvisor+InfluxDB+Grafana

您可能感兴趣的与本文相关的镜像

FLUX.1-dev

FLUX.1-dev

图片生成
FLUX

FLUX.1-dev 是一个由 Black Forest Labs 创立的开源 AI 图像生成模型版本,它以其高质量和类似照片的真实感而闻名,并且比其他模型更有效率

### 搭建 Docker、JMeter、InfluxDBGrafana 的性能监控平台 为了使用 Docker 部署 JMeter、InfluxDBGrafana 构建性能监控平台,需要完成以下关键步骤。这些步骤涵盖了从安装 Docker 到配置 InfluxDB 数据库以及使用 Grafana 可视化数据的完整过程。 #### 1. 安装 Docker 在开始之前,确保系统上已正确安装 Docker。如果尚未安装 Docker,请参考官方文档或卸载旧版本[^5]。可以使用以下命令检查 Docker 是否已正确安装: ```bash docker --version ``` #### 2. 启动 InfluxDB 容器 启动一个 InfluxDB 容器以存储性能测试数据。可以通过以下命令运行 InfluxDB 容器: ```bash docker run -d --name influxdb -p 8086:8086 influxdb ``` 此命令会拉取并运行 InfluxDB 容器,并将端口 8086 映射到主机上[^3]。 #### 3. 创建 InfluxDB 数据库 进入 InfluxDB 容器并创建一个名为 `jmeter` 的数据库,用于存储 JMeter 的性能测试数据: ```bash docker exec -it influxdb /bin/bash influx CREATE DATABASE jmeter USE jmeter EXIT ``` 上述命令会进入 InfluxDB CLI 并创建所需的数据库[^3]。 #### 4. 启动 Grafana 容器 启动一个 Grafana 容器以可视化性能测试数据。可以通过以下命令运行 Grafana 容器: ```bash docker run -d --name grafana -p 3000:3000 grafana/grafana ``` 此命令会拉取并运行 Grafana 容器,并将端口 3000 映射到主机上[^3]。 #### 5. 配置 Grafana 数据源 访问 Grafana Web 界面(默认地址为 `http://localhost:3000`),登录后添加 InfluxDB 作为数据源。具体步骤如下: - 登录到 Grafana,默认用户名和密码为 `admin`。 - 进入 `Configuration -> Data Sources`。 - 点击 `Add data source`,选择 `InfluxDB`。 - 配置数据源信息,包括 URL (`http://influxdb:8086`) 和数据库名称 (`jmeter`)[^3]。 #### 6. 启动 JMeter 容器 启动一个 JMeter 容器并将测试结果发送到 InfluxDB。可以通过以下命令运行 JMeter 容器: ```bash docker run -d --name jmeter \ -v $(pwd)/test-plan.jmx:/test-plan.jmx \ -v $(pwd)/jmeter.properties:/jmeter.properties \ -e INFLUXDB_URL=http://influxdb:8086 \ -e INFLUXDB_DATABASE=jmeter \ blazemeter/jmeter-influxdb-grafana ``` 此命令会启动 JMeter 容器,并将测试计划文件和配置文件挂载到容器中[^4]。 #### 7. 验证平台功能 运行 JMeter 测试计划后,返回 Grafana 界面查看性能测试数据的可视化图表。通过优化 InfluxDBGrafana 配置,可以更全面地监控性能,并及时发现和解决问题[^2]。 --- ###
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菲宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值