介绍 docker 可视化管理软件与容器监控
Portainer:
Portainer 是一款轻量级的应用,它提供了图形化界面,用于方便地管理Docker环境,包括单机环境和集群环境
下载安装:
按照官方文档步骤进行安装即可,如果需要打开 HTTP 端口,必须添加 -p 9000:9000
—restart=always 的意思是如果 docker 重启,该容器也进行重新启动
docker run -d -p 8000:8000 -p 9443:9443 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

软件介绍:
访问 9000 端口,第一次访问需要设置密码,密码长度为八位



创建Nginx:
演示在容器页中创建 nginx 容器


CAdvisor + InfluxDB+Granfana:
由于 CAdvisor 记录的数据保存的时间太短,且监控不够全面,因此需要配合 InfluxDB 与 Granfana 进行使用,该监控平台方案简称 CIG
原生命令是 docker stats、docker info 等
软件介绍:
cAdvisor:
CAdvisor 是一个容器资源监控工具包,同时提供了WEB页面用于查看容器的实时运行状态。CAdvisor默认存储2分钟的数据,而且只是针对单物理机。不过提供了很多数据集成接口,支持 InfluxDB、Redis、Kafka、Elasticsearch 等集成,可以加上对应配置将监控数据发往这些数据库存储起来
主要有两点:
1. 展示Host和容器两个层次的监控数据2. 展示历史变化数据
InfluxDB:
InfluxDB 是用Go语言编写的一个开源分布式时序事件和指标数据库,无需外部依赖。CAdvisor 默认只在本机保存最近2分钟的数据,为了持久化存储数据和统一收集展示监控数据,需要将数据存储到 InfluxDB 中 InfluxDB 专门用于存储时序相关数据,很适给存储 CAdvisor 的数据。且 CAdvisor 本身已提供了 InfluxDB 的集成方法,在启动容器时指定配置即可
主要功能如下:
1. 基于时间序列,支持与时间有关的相关函数( 如最大、最小、求和等 )2. 可度量性:可以实时对大量数据进行计算3. 基于事件:它支持任意的事件数据
Granfana:
Grafana 是一个开源的数据监控分析可视化平台,支持多种数据源配置和丰富的插件及模板功能,支持图表权限控制和报警
主要功能如下:
1. 灵活丰富的图形化选项2. 可以混合多种风格3. 支持白天和夜间模式4. 多个数据源
创建CIG:
编写 docker-compose.yml :
创建 CIG 所需 docker-compose.yml 文件
version: '3.1'volumes:grafana_data: {}services:influxdb:image: tutum/influxdb:0.9restart: alwaysenvironment:- PRE_CREATE_DB=cadvisorports:- "8083:8083"- "8086:8086"volumes:- ./data/influxdb:/datacadvisor:image: google/cadvisorlinks:- influxdb:influxsrvcommand: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086restart: alwaysports:- "8080:8080"volumes:- /:/rootfs:ro- /var/run:/var/run:rw- /sys:/sys:ro- /var/lib/docker/:/var/lib/docker:rografana:user: "104"image: grafana/grafanauser: "104"restart: alwayslinks:- influxdb:influxsrvports:- "3000:3000"volumes:- grafana_data:/var/lib/grafanaenvironment:- HTTP_USER=admin- HTTP_PASS=admin- INFLUXDB_HOST=influxsrv- INFLUXDB_PORT=8086- INFLUXDB_NAME=cadvisor- INFLUXDB_USER=root- INFLUXDB_PASS=root


创建完成后登录各自的 Web 页面进行测试,查看其是否都能正常使用
CAdvisor 测试:
访问宿主机的 8080 端口即可进行访问
http://ip:8080/
<br />
InfluxDB 测试:
访问宿主机的 8083 端口即可进行访问
http://ip:8083/

Granfana 测试:
访问宿主机的 3000 端口即可进行访问,默认登录账号与密码均为 admin
http://ip:3000/


配置数据源:
在 Granfana 中指定显示的数据源为 InfluxDB ,并配置数据库参数


配置首页:
演示如何创建一个新的监控模块


数据查询配置:
在刚才创建的模块中设置需要查询显示的数据,这里以显示指定容器的CPU占用情况为例进行演示

