1、概述
Docker自带查询容器状态的命令:docker stats,可以看到容器的ID\名称、占用CPU、内存等信息
但是我们不能时时刻刻的盯着这个命令,并且这个都是实时数据不能留痕,如果这个时候某一个容器挂了,我们想查看下当时容器的CPU\MEM等信息,是查不到的,如果有个平台可以可视化的展示各个容器历史指标信息,是不是找问题就很方便了,如果搭建或者使用过ELK的朋友,就知道这个监控报警的重要性,CAdvisor+InfluxDB+Granfana 就是转为监控容器而生,简称CIG
2、容器监控3剑客作用以及官网
- CAdvisor
用于兼容容器,并收集指标数据,但是它最长只能存储2分钟的数据,所以就需要将指标数据存储在其他数据库中
主页:https://github.com/google/cadvisor
- InfluxDB
用于存储CAdvisor收集到的指标数据
官网:https://www.influxdata.com/
- Granfana
用于将InfluxDB存储的数据以图表形式展示容器信息
官网:Grafana: The open observability platform | Grafana Labs
3、通过compose搭建CIG监控平台
编写compose.yml文件
volumes:
grafana_data: {}
services:
influxdb:
image: tutum/influxdb:0.9
restart: always
environment:
- PRE_CREATE_DB=cadvisor
ports:
- "8083:8083"
- "8086:8086"
volumes:
- /usr/local/tool/volumn/influxdb:/data
cadvisor:
image: google/cadvisor
links:
- influxdb:influxsrv
#https://gitcode.net/mirrors/google/cadvisor/-/blob/master/docs/storage/influxdb.md
command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086
restart: always
ports:
- "8080:8080"
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
grafana:
user: "104"
image: grafana/grafana
restart: always
links:
- influxdb:influxsrv
ports:
- "3000:3000"
volumes:
- grafana_data:/var/lib/grafana
environment:
- HTTP_USER=admin
- HTTP_PASS=admin
- INFLUXDB_HOST=influxsrv
- INFLUXDB_PORT=8086
- INFLUXDB_NAME=cadvisor
- INFLUXDB_USER=root
- INFLUXDB_PASS=root
实例操作:
CAdvisor访问地址:http://192.168.13.61:8080/containers/
InfluxDB访问地址:http://192.168.13.61:8083/
Grafana访问地址:http://192.168.13.61:3000/login 默认登录账号密码:admin/admin 进入后需要添加数据源
咱们直接在Grafana官网中找一个好看的Docker监控图表导入即可,图表查找地址:
Dashboards | Grafana Labs
选择自己想要的图表,进入
然后粘贴在Grafana图标导入中
或者可以自己新建panel。