小白到运维工程师自学之路 第六十八集 (构建Docker容器监控系统:Cadvisor +InfluxDB+Grafana)

一、概述

1 Cadvisor 

Cadvisor 是Google用来监测单节点资源信息的监控工具。 Cadvisor 提供了基础查询界面和http接口,方便其他组件如Grafana 、Prometheus等进行数据抓取。Cadvisor 可以对Docker主机上的资源及容器进行实时监控和性能数据采集,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况等。Cadvisor 使用Go语言开发,利用Linux的Cgroups获取容器的资源使用信息。

Google的Kubernetes中也默认地将其作为单节点的资源监控工具,各个节点默认会安装上Cadvisor组件。

Cadvisor 产品特点:

  1. 可以展示主机和容器两个层次的监控数据。

  2. 可以展示历史变化数据。

  3. 谷歌公司的开源产品。

  4. 监控指标齐全。

  5. 方便部署,有官方的docker镜像。

  6. 默认只在本地保存1分钟数据,可以集成InfluxDB等第三方存储使用。

由于 Cadvisor 提供的操作界面略显简陋,而且需要在不同页面之间跳转,并且只能监控一个 Host,这不免会让人质疑它的实用性。但 Cadvisor 的一个亮点是它可以将监控到的数据导出给第三方工具,由这些工具进一步加工处理。

我们可以把 Cadvisor  定位为一个监控数据收集器,收集和导出数据是它的强项,而非展示数据。

2InfluxDB

InfluxDB是一个由InfluxData开发的开源非关系型时序型数据库。它由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。同类型的数据库产品还有Elasticsearch、Graphite等。

InfluxDB应用场景:性能监控,应用程序指标,物联网传感器数据和实时分析等的后端存储。

InfluxDB主要功能

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

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

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

InfluxDB主要特点

  1. 无结构(无模式):可以是任意数量的列;

  2. 支持拓展;

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

  4. 原生的HTTP支持,内置HTTP API;

  5. 强大的类SQL语法;

  6. 自带管理界面,方便使用;

3Grafana

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

Grafana主要特性

  1. 灵活丰富的图形化选项;

  2. 可以混合多种风格;

  3. 支持白天和夜间模式;

  4. 支持多个数据源;

                                小白到运维工程师自学之路 第六十八集 (构建Docker容器监控系统:Cadvisor +InfluxDB+Grafana)_第1张图片

二、部署安装

1、下载镜像

docker pull tutum/influxdb
docker pull google/cadvisor
docker pull grafana/grafana
docker pull nginx             测试镜像

小白到运维工程师自学之路 第六十八集 (构建Docker容器监控系统:Cadvisor +InfluxDB+Grafana)_第2张图片

 2、创建自定义网络

 docker network create monitor

小白到运维工程师自学之路 第六十八集 (构建Docker容器监控系统:Cadvisor +InfluxDB+Grafana)_第3张图片

3、创建influxdb容器

 docker run -d --name influxdb --net monitor -p 8083:8083 -p 8086:8086 tutum/influxdb

 访问控制台

小白到运维工程师自学之路 第六十八集 (构建Docker容器监控系统:Cadvisor +InfluxDB+Grafana)_第4张图片

创建Cadvisor 数据库cadvisor 、用户root,用户和数据库大家可以自行随意定义,用于后期grafana的配置

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

小白到运维工程师自学之路 第六十八集 (构建Docker容器监控系统:Cadvisor +InfluxDB+Grafana)_第5张图片

 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容器监控系统:Cadvisor +InfluxDB+Grafana)_第6张图片

 

docker run -itd --name nginx -p 8000:80 nginx

 可以看到已经监控到了nginx小白到运维工程师自学之路 第六十八集 (构建Docker容器监控系统:Cadvisor +InfluxDB+Grafana)_第7张图片

 5、创建granafa容器

docker run -d --name grafana --net monitor -p 3000:3000 grafana/grafana

访问grangfa

默认用户是admin 密码是admin

登录后会让用户修改密码

小白到运维工程师自学之路 第六十八集 (构建Docker容器监控系统:Cadvisor +InfluxDB+Grafana)_第8张图片

 

小白到运维工程师自学之路 第六十八集 (构建Docker容器监控系统:Cadvisor +InfluxDB+Grafana)_第9张图片

 

小白到运维工程师自学之路 第六十八集 (构建Docker容器监控系统:Cadvisor +InfluxDB+Grafana)_第10张图片

 选择监控项                                               选择要监控的对象             

小白到运维工程师自学之路 第六十八集 (构建Docker容器监控系统:Cadvisor +InfluxDB+Grafana)_第11张图片                        小白到运维工程师自学之路 第六十八集 (构建Docker容器监控系统:Cadvisor +InfluxDB+Grafana)_第12张图片

监控cadvisor的cpu使用率

可以根据自己的需求更改监控项

以上就是构建Docker容器监控统:Cadvisor+InfluxDB+Grafana

的具体操作

如有错误欢迎各位大佬批评指正,我们共同进步

 

 

你可能感兴趣的:(运维,docker,grafana)