目录
- 目录
- 基础概念
- cAdvisor
- InfluxDB
- Grafana
- 镜像列表
- 启动脚本
- influxdb 设置
- cAdvisor
- Grafana 图形配置
- 示例图请右键打开新标签查看原图
- 参考链接
- 基础概念
基础概念
cAdvisor
cAdvisor 为Docker容器用户提供了了解运行时容器资源使用和性能特征的工具。cAdvisor的容器抽象基于Google的lmctfy容器栈,因此原生支持Docker容器并能够“开箱即用”地支持其他的容器类型。cAdvisor部署为一个运行中的daemon,它会收集、聚集、处理并导出运行中容器的信息。这些信息能够包含容器级别的资源隔离参数、资源的历史使用状况、反映资源使用和网络统计数据完整历史状况的柱状图。
InfluxDB
InfluxDB 是一个开源分布式时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展.
- 其主要特色功能
- 基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等)
- 可度量性:你可以实时对大量数据进行计算
- 基于事件:它支持任意的事件数据
InfluxDB的主要特点
- 无结构(无模式):可以是任意数量的列可拓展的
- 支持min, max, sum, count, mean, median 等一系列函数,方便统计
- 原生的HTTP支持,内置HTTP API
- 强大的类SQL语法
- 自带管理界面,方便使用
Grafana
Graphite 是一款开源的监控绘图工具。可以实时收集、存储、显示时间序列类型的数据(time series data),有些类似Kibana的东西。
- 以下是官方的说明
- 用于可视化大型测量数据的开源程序,他提供了强大和优雅的方式去创建、共享、浏览数据。dashboard中显示了你不同metric数据源中的数据。
- 常用于因特网基础设施和应用分析,但在其他领域也有机会用到,比如:工业传感器、家庭自动化、过程控制等等。
- 有热插拔控制面板和可扩展的数据源,目前已经支持Graphite、Cloudwatch、Prometheus、InfluxDB、Elasticsearch。
镜像列表
[[email protected] workdir]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry latest e6ba8c hours ago MB
grafana/grafana . weeks ago MB
jevic.io/nginx alpine d964ab5d0abe weeks ago MB
google/cadvisor fejta fe153dd2defc weeks ago MB
jevic.io/cadvisor fejta fe153dd2defc weeks ago MB
jevic.io/influxdb fa42a093e0 months ago MB
tutum/influxdb fa42a093e0 months ago MB
提示:请勿下载使用 influxdb:latest 镜像
启动脚本:
[[email protected] workdir]# cat influxdb.sh
#!/bin/bash
docker service create \
--network jevic-io \
-p : \
-p : \
--mount source=influxdb-vol,type=volume,target=/var/lib/influxdb \
--name=influxdb \
--constraint 'node.hostname==node01' \
jevic.io/influxdb:
[[email protected] workdir]# cat cadvisor.sh
#!/bin/bash
docker service create \
--network jevic-io \
--name cadvisor \
-p : \
--mode global \ #为每个节点创建一个服务,收集节点docker性能数据
--mount source=/var/run,type=bind,target=/var/run,readonly=false \
--mount source=/,type=bind,target=/rootfs,readonly=true \
--mount source=/sys,type=bind,target=/sys,readonly=true \
--mount source=/var/lib/docker,type=bind,target=/var/lib/docker,readonly=true \
jevic.io/cadvisor:fejta -storage_driver=influxdb -storage_driver_host=influxdb: -storage_driver_db=cadvisor
[[email protected] workdir]# cat grafana.sh
#!/bin/bash
docker service create \
--network jevic-io \
--name grafana \
#-e "GF_SECURITY_ADMIN_PASSWORD=passwd" \
--constraint 'node.hostname==master' \
-p : \
grafana/grafana:.
influxdb 设置
- 访问 8083端口 用户名密码默认都为 root
- 创建数据库并查看
- CREATE DATABASE “cadvisor”
- SHOW DATABASES
cAdvisor
- cdvisor运行以后,可以通过http://192.168.11.140:8080/ 查看到Docker运行的机器和容器状态
- 通过http://192.168.11.140:8080/docker/,可以看到Docker服务器的基本信息,如Host、镜像数据、窗口数据等情况
Grafana 图形配置
- 运行Grfana容器,通过浏览器打开http://192.168.11.130:3000,用户名admin,密码admin
- 配置数据源
示例图【请右键打开新标签查看原图】
参考链接
- http://docs.grafana.org
- https://www.brianchristner.io/how-to-setup-docker-monitoring/
- https://github.com/google/cadvisor
- https://github.com/vegasbrianc/docker-monitoring
- 五个Docker监控工具的对比