一、概述
1、 Cadvisor
Cadvisor 是Google用来监测单节点资源信息的监控工具。 Cadvisor 提供了基础查询界面和http接口,方便其他组件如Grafana 、Prometheus等进行数据抓取。Cadvisor 可以对Docker主机上的资源及容器进行实时监控和性能数据采集,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况等。Cadvisor 使用Go语言开发,利用Linux的Cgroups获取容器的资源使用信息。
Google的Kubernetes中也默认地将其作为单节点的资源监控工具,各个节点默认会安装上Cadvisor组件。
Cadvisor 产品特点:
-
可以展示主机和容器两个层次的监控数据。
-
可以展示历史变化数据。
-
谷歌公司的开源产品。
-
监控指标齐全。
-
方便部署,有官方的docker镜像。
-
默认只在本地保存1分钟数据,可以集成InfluxDB等第三方存储使用。
由于 Cadvisor 提供的操作界面略显简陋,而且需要在不同页面之间跳转,并且只能监控一个 Host,这不免会让人质疑它的实用性。但 Cadvisor 的一个亮点是它可以将监控到的数据导出给第三方工具,由这些工具进一步加工处理。
我们可以把 Cadvisor 定位为一个监控数据收集器,收集和导出数据是它的强项,而非展示数据。
2、InfluxDB
InfluxDB是一个由InfluxData开发的开源非关系型时序型数据库。它由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。同类型的数据库产品还有Elasticsearch、Graphite等。
InfluxDB应用场景:性能监控,应用程序指标,物联网传感器数据和实时分析等的后端存储。
InfluxDB主要功能
-
基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等);
-
可度量性:你可以实时对大量数据进行计算;
-
基于事件:它支持任意的事件数据;
InfluxDB主要特点
-
无结构(无模式):可以是任意数量的列;
-
支持拓展;
-
支持min, max, sum, count, mean, median 等一系列函数,方便统计;
-
原生的HTTP支持,内置HTTP API;
-
强大的类SQL语法;
-
自带管理界面,方便使用;
3、Grafana
Grafana是一个可视化面板(Dashboard)工具,有着非常漂亮的图表和布局等展示功能,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB等组件作为数据源。
Grafana主要特性
-
灵活丰富的图形化选项;
-
可以混合多种风格;
-
支持白天和夜间模式;
-
支持多个数据源;
二、部署安装
1、下载镜像
docker pull tutum/influxdb
docker pull google/cadvisor
docker pull grafana/grafana
docker pull nginx 测试镜像
2、创建自定义网络
docker network create monitor
3、创建influxdb容器
docker run -d --name influxdb --net monitor -p 8083:8083 -p 8086:8086 tutum/influxdb
访问控制台
创建Cadvisor 数据库cadvisor 、用户root,用户和数据库大家可以自行随意定义,用于后期grafana的配置
CREATE USER "root" WITH PASSWORD '123456' WITH ALL PRIVILEGES
CREATE DATABASE "cadvisor"
4、创建Cadvisor 容器
docker run -d --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --net monitor --publish=8080:8080 --name=cadvisor google/cadvisor -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086
访问页面
docker run -itd --name nginx -p 8000:80 nginx
可以看到已经监控到了nginx![](https://img-blog.csdnimg.cn/f03713fae2d14b998630ca723293d7a6.png)
5、创建granafa容器
docker run -d --name grafana --net monitor -p 3000:3000 grafana/grafana
访问grangfa
默认用户是admin 密码是admin
登录后会让用户修改密码
选择监控项 选择要监控的对象
监控cadvisor的cpu使用率
可以根据自己的需求更改监控项
以上就是构建Docker容器监控统:Cadvisor+InfluxDB+Grafana
的具体操作
如有错误欢迎各位大佬批评指正,我们共同进步