Docker 学习笔记 - 进阶五 Docker 可视化工具
笔记记录学习尚硅谷周阳老师的 docker 教程
链接地址: https://www.bilibili.com/video/BV1gr4y1U7CY?p=1
1. docker 轻量级可视化工具 Portainer
1.1 是什么
Portainer 是一款轻量级的应用,它提供了图形化界面,用于方便地管理Docker环境,包括单机环境和集群环境。
1.2 安装
1.2.1 官网
https://www.portainer.io/
https://docs.portainer.io/
https://docs.portainer.io/v/ce-2.9/start/install/server/docker/linux
https://docs.portainer.io/start/install/server/docker/linux
1.2.2 安装步骤
去dockerhub 找docker 安装命令
docker pull portainer/portainer-ce:2.13.0-alpine
[root@vm001 admin]# docker pull portainer/portainer-ce:2.13.0-alpine
2.13.0-alpine: Pulling from portainer/portainer-ce
df9b9388f04a: Pull complete
df8362a36bd7: Pull complete
Digest: sha256:18adcd23f746ded2f642a04153227423336aa22ad99880ef5e8265af243eeb79
Status: Downloaded newer image for portainer/portainer-ce:2.13.0-alpine
docker.io/portainer/portainer-ce:2.13.0-alpine
[root@vm001 admin]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
portainer/portainer-ce 2.13.0-alpine f7bebd33b1c4 11 days ago 282MB
1.2.3 启动运行
docker run -d -p 8000:8000 -p 9000:9000 \
--name portainer --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:2.13.0-alpine
1.2.4 登录
URL: http://192.168.226.128:9000/
第一次登录需要设置账号密码,账号默认是admin(也可以改)
之后登进初始界面,选择 ‘Get Started’,
会进去到home页面:http://192.168.226.128:9000/#!/home
点击 ‘Local’ 则可以到达 Dashboard界面
上面的图形,对应的命令行?
[root@vm001 admin]# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 22 13 6.552GB 1.898GB (28%)
Containers 22 4 293.7MB 293.6MB (99%)
Local Volumes 32 8 1.981GB 1.185GB (59%)
Build Cache 0 0 0B 0B
1.2.5 各个功能点如下
就是把命令行操作转换成为图形界面操作
2. Docker容器监控CAdvisor+InfluxDB+Grafana
2.1 容器监控原生命令
docker stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
c0f5ce3804be portainer 0.06% 11.88MiB / 4.667GiB 0.25% 2.8kB / 0B 84.2MB / 655kB 4
b014f0b061b4 suspicious_keldysh 0.00% 8.477MiB / 4.667GiB 0.18% 2.8kB / 0B 42.1MB / 0B 5
f27be7bd716a consul 0.15% 21.1MiB / 4.667GiB 0.44% 9.4kB / 1.17kB 164MB / 1.4MB 9
e2ddfc2abe31 zk01 0.66% 67.35MiB / 4.667GiB 1.41% 3.01kB / 0B 187MB / 8.19kB 30
通过docker stats命令可以很方便的看到当前宿主机上所有容器的CPU,内存以及网络流量等数据,一般小公司够用了。。。。
但是,docker stats统计结果只能是当前宿主机的全部容器,数据资料是实时的,没有地方存储、没有健康指标过线预警等功能
2.2 容器监控3剑客
CAdvisor监控收集+InfluxDB存储数据+Granfana展示图表
2.2.1 CAdvisor
2.2.2 InfluxDB
InfluxDB 1.x 和 2.x 差别很大
当下 CAdvisor只支持 InfluxDB 1.x 所以本例使用 1.x
2.2.3 Grafana
2.2.4 小总结
2.3 CIG 各自启动
参考:https://www.isolves.com/it/cxkf/rongqi/2022-03-11/51054.html
2.3.0 network
docker network create cig_network
2.3.1 InfluxDB(位于监控主机)
这里预先定义了创建一个初始数据库:
INFLUXDB_DB=cadvisor # 初始数据库名称
INFLUXDB_USER=root # 初始数据库用户名
INFLUXDB_USER_PASSWORD=root123456 # 初始数据库密码
docker run -d -p 8086:8086 --restart=always --name influxdb --network cig_network \
-e INFLUXDB_DB=cadvisor \
-e INFLUXDB_USER=root \
-e INFLUXDB_USER_PASSWORD=root123456 \
-v influxdb_data:/var/lib/influxdb \
influxdb:1.8.4-alpine
2.3.2 CAdvisor(位于被监控主机)
这里注意填入在部署influxdb时设置的数据库、用户名、密码
-storage_driver_db=cadvisor # influxdb的数据库名称
-storage_driver_host=192.168.92.148:8086 # influxdb的主机地址
-storage_driver_user=root # influxdb的用户名
-storage_driver_password=root123456 # influxdb的密码
-storage_driver_host=influxdb:8086 # 填入的是前面influxdb的IP地址(192.168.226.128) 或者服务名称influxdb
docker run -d -p 8080:8080 --restart=always --name cadvisor --network cig_network \
-v /:/rootfs:ro \
-v /var/run:/var/run:rw \
-v /sys:/sys:ro \
-v /var/lib/docker/:/var/lib/docker:ro \
google/cadvisor \
-storage_driver=influxdb -storage_driver_db=cadvisor \
-storage_driver_host=influxdb:8086 -storage_driver_user=root \
-storage_driver_password=root123456
2.3.3 Grafana(位于监控主机)
docker run -d -p 3000:3000 --restart=always --name grafana --network cig_network \
-v grafana_data:/var/lib/grafana \
grafana/grafana:8.5.0
2.3.4 验证
去看 2.4.3
2.4 使用compose编排
2.4.1 新建3套组合的 docker-compose.yaml
新建目录
[root@vm001 cig]# pwd
/dockerfiles/cig
新建文件:docker-compose.yaml
内容如下:
version: '3.1'
services:
influxdb:
image: influxdb:1.8.4-alpine
restart: always
environment:
- INFLUXDB_DB=cadvisor
- INFLUXDB_USER=root
- INFLUXDB_USER_PASSWORD=root123456
ports:
- "8086:8086"
volumes:
- influxdb_data:/var/lib/influxdb
cadvisor:
image: google/cadvisor
depends_on:
- influxdb
command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086 -storage_driver_user=root -storage_driver_password=root123456
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:8.5.0
restart: always
depends_on:
- influxdb
ports:
- "3000:3000"
volumes:
- grafana_data:/var/lib/grafana
volumes:
influxdb_data: {}
grafana_data: {}
2.4.2 启动 docker compose 文件
启动并查看
## 检查 compose 文件内容编写格式是否正确
[root@vm001 cig]# docker compose config -q
## 启动
[root@vm001 cig]# docker compose up -d
[+] Running 5/5
⠿ Network cig_default Created 0.3s
⠿ Volume "cig_grafana_data" Created 0.0s
⠿ Container cig-influxdb-1 Started 1.0s
⠿ Container cig-cadvisor-1 Started 2.3s
⠿ Container cig-grafana-1 Started 2.4s
## 查看
[root@vm001 cig]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
345c815da2cf google/cadvisor "/usr/bin/cadvisor -…" 14 seconds ago Up 11 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp cig-cadvisor-1
d987501c1518 grafana/grafana:8.5.0 "/run.sh" 14 seconds ago Up 11 seconds 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp cig-grafana-1
12c6cd28ce7d influxdb:2.2.0 "/entrypoint.sh infl…" 14 seconds ago Up 12 seconds 0.0.0.0:8083->8083/tcp, :::8083->8083/tcp, 0.0.0.0:8086->8086/tcp, :::8086->8086/tcp cig-influxdb-1
2.4.3 验证三个服务
2.4.3.1 CAdvisor
URL: http://192.168.226.128:8080/containers/
cadvisor也有基础的图形展现功能,这里主要用它来作数据采集
2.4.3.2 InfluxDB 1.8
(1.3之后无界面)
## docker 进入 influxdb 的bash界面
[root@vm001 cig]# docker exec -it cig-influxdb-1 bash
## 输入 influx 进入数据库
bash-5.0# influx
Connected to http://localhost:8086 version 1.8.4
InfluxDB shell version: 1.8.4
## 显示库
> show databases
name: databases
name
----
cadvisor
_internal
## 使用库
> use cadvisor
Using database cadvisor
## 显示 measurements (类似于表)
> show measurements
name: measurements
name
----
## 下面这些就是cadvisor收集并输入进来的measurements了
cpu_usage_per_cpu
cpu_usage_system
cpu_usage_total
cpu_usage_user
fs_limit
fs_usage
load_average
memory_usage
memory_working_set
rx_bytes
rx_errors
tx_bytes
tx_errors
2.4.3.3 Grafana 配置
URL: http://192.168.226.128:3000/
默认账号密码: admin/admin
配置数据源
如下图,
如果是各自启动,且没有使用network,那么URL那里需要填上ip地址,
如果是各自启动且使用了network,那么URL可以填上服务名
如果是使用了compose 文件启动,那么URL可以填上服务名
添加面板
选择面板参数
保存并命名该面板
3. prometheus+influxdb2.0+grafana
参考:https://www.jianshu.com/p/aae4a2a6d8aa
有空填坑。。