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

一、docker构建容器监控系统

容器开源监控方案组合:cAdvisor+InfluxDB+Grafan。

1.0 概念

cAdvisor:用于数据采集
InfluxDB:用于数据存储
Grafana: 用于数据展示

1.1 cAdvisor

它是Google用来监测单节点的资源信息的监控工具。Cadvisor提供了一目了然的单节点多容器的资源监控功能。Google的Kubernetes中也缺省地将其作为单节点的资源监控工具,各个节点缺省会被安装上Cadvisor。总结起来主要两点:

  • 展示 Host 和容器两个层次的监控数据。
  • 展示历史变化数据。

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

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

1.2 InfluxDB

InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。类似的数据库有Elasticsearch、Graphite等。

InfluxDB主要特色功能

  • 基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等);
  • 可度量性:你可以实时对大量数据进行计算;
  • 基于事件:它支持任意的事件数据;

InfluxDB主要特点

  • 无结构(无模式):可以是任意数量的列;
  • 可拓展的;
  • 支持min, max, sum, count, mean, median 等一系列函数,方便统计;
  • 原生的HTTP支持,内置HTTP API;
  • 强大的类SQL语法;
  • 自带管理界面,方便使用;

1.3 Grafana

Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。Grafana主要特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;多个数据源。

 1.4 安装监控

创建一个网络

docker network create monitor

#Influxdb

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

#cAdvisor

docker run -d \
--name=cadvisor \
--net monitor \
-p 8081:8080 \
--mount type=bind,src=/,dst=/rootfs,ro \
--mount type=bind,src=/var/run,dst=/var/run \
--mount type=bind,src=/sys,dst=/sys,ro \
--mount type=bind,src=/var/lib/docker/,dst=/var/lib/docker,ro \
google/cadvisor \
-storage_driver=influxdb \
-storage_driver_db=cadvisor \
-storage_driver_host=influxdb:8086

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

#访问网站

1、Influxdb

http://59.47.71.229:8083/

#需要创建用户和数据库

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

CREATE DATABASE "cadvisor"

SHOW DATABASES

2、cAdvisor

http://59.47.71.229:8080

备注:不需要配置

3、Grafana

http://59.47.71.229:3000

用户:admin

密码:admin

配置:Grafana

1、Add data source

2、Add data source

3、选择lnfluxDB

 4、配置数据源,输入 用户名:root 密码:123456

5、配置完成

 

6、创建Dashboard 

7、Choose Visualization

 

8、点编辑

9、设置监控某个容器内存,例如:nginx_lnmp,其它按图片配置,再点右上角的保存,输入Container minitor ,点确定保存。

10、配置负载

配置好后在home中查看

到这里cAdvisor+InfluxDB+Grafana容器监控系统就部署完成。

 

总结:

监控没有最好、最优的监控方案,需要根据企业环境的自身特点结合每个监控产品的优势来达到监控的目的。

一个企业完整的监控体系包括以下几个组成部分:

  • 监控数据采集的时效与精确
  • 监控数据采集存储与归档
  • 监控数据的图形化展示
  • 监控数据的自动化分析与联动处理
  • 监控的告警及自动化处理
  • 监控工具自身的安全控制
  • 监控告警的响应及跟踪
posted @ 2019-05-26 21:13  努力哥  阅读(729)  评论(0)    收藏  举报