七、Docker监控方案(cAdvisor+InfluxDB+Grafana)

1、组件介绍

咱们采用如今比较流行的cAdvisor+InfluxDB+Grafana组合进行Docker监控。python

一、cAdvisor(数据采集)

开源软件cAdvisor(Container Advisor)是用于监控容器运行状态的利器之一,该项目主页为https://github.com/google/cadvisor,它被用于多个与docker相关的开源项目中。实际上在Kubernetes系统中,cAdvisor已经被默认集成到了kubelet组件内。cAdvisor提供了web界面可供浏览器访问,在接下来的环境中咱们会部署CAdvisor来收集数据信息。git

二、Influxdb(数据存储)

Influxdb是用Go语言编写的一个开源的分布式时序、事件和指标数据库,不须要外部依赖,该项目的主页为https://www.influxdata.com。github

它有三大特性:web

  • 时序性(Time Series):与时间相关的函数的灵活使用(诸如最大、最小、求和等)。
  • 度量(Metrics):对实时大量数据进行计算。
  • 事件(Event):支持任意的事件数据,换句话说,任意事件的数据咱们均可以作操做。

同时,它还有如下几大特色:sql

  • schemaless(无结构),能够是任意数量的列;
  • min, max, sum, count, mean, median 一系列函数,方便统计;
  • Native HTTP API, 内置http支持,使用http读写;
  • Powerful Query Language 相似sql;
  • Built-in Explorer 自带管理工具。

三、Grafana(数据展现)

 Grafana是一个可视化面板(Dashboard),有着很是漂亮的图表和布局展现,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB做为数据源。Grafana主要特性:灵活丰富的图形化选项;能够混合多种风格;支持白天和夜间模式;多个数据源。其项目官方地址为https://grafana.com。docker

 

 2、组件安装

一、安装流程

  • 建立自定义网络monitor(自定义网络名称),确保各容器都处于monitor网络;
  • 建立Influxdb容器,建立数据用户grafana:grafana、数据库:vadvisor;
  • 建立cAdvisor容器;
  • 建立Grafana容器,配置grafana;

  

二、安装部署

a、建立网络数据库

[root@localhost ~]# docker network create monitor
46d9e7c32080ac35e1d3034ecf4edf2af804de9352eca37373f7437e37b1368d

  

 

b、建立influxdb容器浏览器

[root@localhost ~]# docker run -d --name influxdb --net monitor -p 8083:8083 -p 8086:8086 tutum/influxdb
a0fdc618d380ece7dabd7f1f802935502d0c6ae3f606216afed5dafc43ea8da5

 

 c、访问influxdb网络

经过容器的8083端口访问web页面。less

d、建立数据库cadvisor和用户

cadvisor数据库用于存储数据,用户用于grafana上进行链接,后续会用到此用户。

 

e、建立cadvisor容器

$docker run -d \
--name=cadvisor \
--net monitor \
-p 8080: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

  

查看容器是否建立成功:

 

访问cadvisor

经过8081端口访问cadvisor:

 

 f、安装grafana容器

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

  

 

g、访问grafana

 

三、容器监控

a、添加数据源

 

b、制做dashboard

新建dashboard,选择类型为Graph:

 

c、添加监控指标

 

 d、制做模板

按照c步骤中添加各个指标,而后作成模板,后续你想监控哪一个容器就直接替换container_name便可,是否是棒棒哒?

到这里cAdvisor+InfluxDB+Grafana容器监控系统就部署完成了,是否是很是简单?

可是,要作好容器的监控,知道这些还远远不行,咱们不但愿每次都手动去添加吧?若是有成千上万个容器,到那个时候该怎么监控呢?确定是一种自动添加方式了,而不是原始的手工操做哦。

相关文章
相关标签/搜索