Docker监控方案:influxDB+cAdvisor+Grafana

Catalogue
  1. 1. influxDB安装
  2. 2. cAdvisor安装
  3. 3. Granafa安装
  4. 4. 参考资料

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

influxDB: 用于监控数据存储,是一个分布式时间序列数据库。

Grafana: 用户可视化监控数据,有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器。支持Graphite、zabbix、InfluxDB、Prometheus和 OpenTSDB作为数据源。

influxDB安装

  1. 创建服务
1
docker run -d --name influxdb -p 8086:8086 -p 8083:8083 tutum/influxdb

参数说明:

1
2
3
4
-d :后台运行此容器
--name :启运容器分配名字influxdb
-p 8083:8083 : 8083端口为infuxdb管理端口
-p 8086:8086 : 8086端口是infuxdb的数据端口
  1. 通过ip:8083访问管理端
  2. 在管理端创建数据库和用户
1
2
3
4
5
创建数据库:  CREATE DATABASE "cadvisor"
查看数据库: SHOW DATABASES

创建用户并授权: CREATE USER "cadvisor" WITH PASSWORD 'cadvisor' WITH ALL PRIVILEGES
查看用户: SHOW USRES
  1. 用户授权
1
2
3
grant all privileges on cadvisor to cadvisor 
grant WRITE on cadvisor to cadvisor
grant READ on cadvisor to cadvisor

管理端右上切换到cadvisor数据库,使用以下命令查看采集的数据

1
SHOW MEASUREMENTS

现在我们还没有数据,如果想采集系统的数据,我们需要使用cAdvisor软件来实现

cAdvisor安装

  1. 创建服务
1
2
3
4
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

参数说明:

1
2
3
4
5
-d :后台运行此容器
--name :启运容器分配名字cadvisor
-p :映射端口8082:8080(由于环境8080端口被占用,cadvisor默认端口是8080不建议修改)
-v:把宿主机的目录映射到容器中,这些目录都是cadvisor需要采集的目录文件和监控内容
-storage_driver:需要指定cadvisor的存储驱动、数据库主机、数据库名
  1. 通过ip:8082访问cAdvisor管理页面,cAdvisor的基础图形功能也酷炫的

Granafa安装

  1. 创建服务
1
docker run -d --name grafana -p 3000:3000 grafana/grafana
  1. 访问WEB管理端,默认用户名,密码 admin/admin

参考资料