三天入门 Docker - 第三天:实现 Docker 容器监控

一、基本介绍

1.cAdvisor 介绍

cAdvisor 是 Google 开源的一款 用于展示和分析容器有运行状态的可视化工具。通过在主机上运行 cAdvisor 用户,可以轻松的获取到当前主机上容器的运行统计信息,并以图表的形式向用户展示。
在这里插入图片描述
cAdvisor 功能: 可以用来展示 Host 主机和容器的监控数据;并且还可以用来展示历史变化数据。


其实 cAdvisor 主要就是通过利用 Docker 的 stats 命令(可以实时查看 Docker 容器内的资源情况)来实现的数据监控,那么这样的话,我们为什么不直接使用 stats 命令呢,原因是因为,使用 stats 命令我们需要登陆到 Docker 系统上,并且是监控不到历史数据的。

2.InfluxDB 介绍

InfluxDB 是一个开源的 分布式时序、事件和指标数据库,使用 Go 语言开发,无需外部的依赖。 InfluxDB 主要的功能有:基于时间序列(支持与时间有关的相关函数)、可度量性(可以实时对大量数据进行计算)、基于事件(它可以支持任意的事件数据)

InfluxDB 特点:

  • 强大的类 SQL 语法。
  • 自带管理界面,方便我们使用。
  • 原生的 HTTP 支持,并且内置 HTTP API。
  • 支持 min max sum count mean median 等一系列函数,方便我们统计使用。

3.Grafana 介绍

Grafana 是一个用 Go 语言开发的 数据度量分析和可视化工具,可以通过将采集过来的数据查询后 通过界面的形式进行展示,并及时通知我们(因为 Grafana 可以配置告警功能);支持 Prometheus、Zabbix、InfluxDB 和 OpenTSDB 等作为数据源。

Grafana 特点:

  • 可视化: Grafana 官方为我们提供了多种面板插件,来让我们选择,每个面板展示的指标都是有所不同的(官方面板插件地址
  • 通知: 我们可以在 Grafana 上配置告警,即,当条件达到告警标准时,将自动进行发送告警邮件等。
  • 混合数据源: 即,我们可以在 Grafana 的监控界面,选择不同的数据源来对指标进行监控。

我们这里主要用 cAdvisor 来采集 Docker 容器内的数据,使用 InfluxDB 来存储数据,最后由 Grafana 来进行数据展示。
在这里插入图片描述

二、实现 Docker 容器监控

准备工作:

主机名操作系统IP 地址
DockerCentOS 7.x192.168.1.4
  • 这里我是直接使用的前面文章中的 Docker 环境:传送门

下载所需镜像

[root@Docker ~]# docker pull tutum/influxdb && docker pull google/cadvisor && docker pull grafana/grafana
  • 这里你们可以选择性的下载镜像,因为我们运行容器时,Docker 会检测是否下载对应镜像,未下载时会自动进行下载。

1.创建 InfluxDB 容器

1)运行 InfluxDB 容器

[root@Docker ~]# docker run -itd --name influxdb -p 8083:8083 -p 8086:8086 tutum/influxdb
  • itd:通过交互模式运行容器,并分配伪终端,并在后台启动容器;
  • -p:给 InfluxDB 容器做端口映射(8083 是 InfluxDB 的后台控制端口,8086 是 InfluxDB 的数据端口)

2)查看 InfluxDB 容器运行状态

[root@Docker ~]# docker ps -a | grep influxdb

在这里插入图片描述
3)配置 InfluxDB(http://192.168.1.4:8083
在这里插入图片描述
在这里插入图片描述

3.创建 cAdvisor 容器

1)运行 cAdvisor 容器

[root@Docker ~]# docker run -itd --name cadvisor -p 8080:8080 \
-v /:/rootfs:ro \
-v /sys:/sys:ro \
-v /var/run:/var/run \
-v /var/lib/docker:/var/lib/docker:ro google/cadvisor \
-storage_driver=influxdb \
-storage_driver_db=cadvisor \
-storage_driver_user=root \
-storage_driver_password=123123 \
-storage_driver_host=192.168.1.4:8086
  • -v:创建数据卷,可以将宿主机目录挂载到容器内(后面的 ro 表示只读,rw 表示读写)
  • -storage_driver:指定 cadvisor 的存储驱动,我们这里用的是 InfluxDB
  • -storage_driver_db:指定存储的数据库。
  • -storage_driver_user:指定存储数据库的用户名。
  • -storage_driver_password:指定存储数据库的用户名密码。
  • -storage_driver_host:指定存储数据库的地址和端口(8086 端口是 InfluxDB 的数据端口)

2)查看 cAdvisor 容器运行状态

[root@Docker ~]# docker ps -a | grep cadvisor

在这里插入图片描述
3)配置 cAdvisor(http://192.168.1.4:8080
在这里插入图片描述
在这里插入图片描述
这里就不再过多介绍,因为我们主要还是通过 Grafana 来实现界面监控。

4.创建 Grafana 容器

1)运行 Grafana 容器

[root@Docker ~]# docker run -itd --name=grafana -p 3000:3000 --restart=always grafana/grafana

2)查看 Grafana 容器运行状态

[root@Docker ~]# docker ps -a | grep grafana

在这里插入图片描述
3)配置 Grafana(http://192.168.1.4:3000
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上面只是配置好了数据源,还并没有实现监控,我们可以自定义监控指标,来实现监控效果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.验证

在这里插入图片描述

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

愿许浪尽天涯

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

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

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

打赏作者

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

抵扣说明:

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

余额充值