接上篇12-20

21、监控

21.1、使用InfluxDB+cAdvisor+Grafana配置Docker监控

  cAdvisor: Google开源的用于监控基础设施应用的工具,它是一个强大的监控工具,不需要任何配置就可以通过运行在Docker主机上的容器来监控Docker容器,而且可以监控Docker主机。更多详细操作和配置选项可以查看Github上的cAdvisor项目文档。   influxDB: 它是一个分布式时间序列数据库。cAdvisor仅仅显示实时信息,但是不存储监视数据。因此,我们需要提供时序数据库用于存储cAdvisor组件所提供的监控信息,以便显示除实时信息之外的时序数据。   Grafana: Grafana可视化展示平台允许我们可视化地展示监控信息。它允许我们对influxDB进行查询,并通过强大的图表功能进行可视化展示。

关系:cAdvisor容器数据采集->InfluxDB容器数据存储->Grafana可视化展示

原文来源于简书, 链接

  1. 安装influxDB
docker run -d \
   -p 8083:8083 \
   -p 8086:8086 \
   --expose 8090 \
   --expose 8099 \
   --name influxsrv \
   tutum/influxdb

在登录influxdb后台数据库管理平台后, 创建cAdvisor数据库, 用于存储cAdvisor应用所获取的实时监控数据。在influxDB管理界面中的Querie s输入框中创建数据库和用户:

# 创建数据库用于cadvisor连接
create database 'cadvisor'; 
# 创建用户
CREATE USER 'cadvisor' WITH PASSWORD 'cadvisor'
  1. 运行cAdvisor应用容器并与influxDB容器进行互联
docker run --volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
-p 8080:8080 \
--detach=true \
--link influxsrv:influxsrv \
--name=cadvisor \
google/cadvisor:latest \
-storage_driver=influxdb \
-storage_driver_db=cadvisor \
-storage_driver_host=influxsrv:8086

  cAdvisor应用容器启动成功后,通过Web浏览器访问地址http://docker-host-ip:8080,便可以查看cAdvisor监控工具所收集到的Docker主机和容器的资源统计信息。

3.运行Grafana可视化平台并与influxDB容器进行互联

docker run -d -p 3000:3000 \
-e INFLUXDB_HOST=influxsrv \
-e INFLUXDB_PORT=8086 \
-e INFLUXDB_NAME=cadvisor \
-e INFLUXDB_USER=root \
-e INFLUXDB_PASS=root \
--link influxsrv:influxsrv \
--name grafana \
grafana/grafana
  1. 登录Grafana管理平台

通过Web浏览器访问地址http://docker-host-ip:3000登录Grafana管理平台。

用户名:admin 密 码:admin

添加一个graph

添加来自内存,这里是所有的容器内存信息

单个容器的条目

添加2个的效果

21.2、portainer

  Portainer 的使用意图是简单部署。 它包含可以在任何 Docker 引擎上运行的单个容器(Docker for Linux 和 Docker for Windows)。   Portainer 允许您管理 Docker 容器、image、volume、network 等。 它与独立的 Docker 引擎和 Docker Swarm 兼容。

portainer详细介绍

运行portainer工具

docker run -d -p 9000:9000     \
--restart=always     \
-v /var/run/docker.sock:/var/run/docker.sock     \
--name test     \
portainer/portainer

这里也可以查看单个容器的监控状态

还能直接进入console界面

21.3、Shipyard

 这个官方已经不在维护了  具体信息:https://github.com/shipyard/shipyard

21.4、docker ui

docerui github地址

Run: docker run -d -p 9005:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker

Open your browser to http://<dockerd host ip>:9000

网络连接关系图挺有意思

容器的名称,基础镜像以及正在使用的命令还有状态,最后还能查看日志

未完待续