抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

在当今云原生和微服务架构盛行的时代,容器已成为应用部署的基石,清晰地掌握每个容器的运行状态——尤其是 CPU、内存、网络等核心资源的使用情况——变得至关重要。这不仅能帮助我们及时发现性能瓶颈、预防故障,更能为资源优化和成本控制提供数据支撑。

一、部署

1、准备 prometheus.yml 配置文件

重点关注 targets 配置项中,表示让 prometheus 采集 cadvisor 的接口,若你修改了之后的容器名或者端口,请务必同步修改此配置文件

并且注意修改文件权限为 chmod 777 prometheus.yml,避免 Prometheus 没有文件权限

1
2
3
4
5
6
7
scrape_configs:
- job_name: 'cadvisor'
scrape_interval: 5s
scrape_timeout: 3s
static_configs:
- targets: ['monitor-cadvisor:8080']
# - targets: ['172.17.0.1:38080'] # 也可改为ip+端口的方式

2、准备 prometheus 持久化目录

若不持久化,重启 prometheus 监控的数据会清空,因此若正式环境使用,建议持久化数据

创建 prometheus_data 文件夹,并修改权限为 chmod 777 prometheus_data

3、准备 grafana 持久化目录

创建 grafana_data 文件夹,并修改权限为 chmod 777 grafana_data

4、使用 docker compose 部署

请自行修改配置中的目录为自己前面步骤的目录,关键点基本都已注释。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
version: '3.8'
services:
monitor-cadvisor:
image: ghcr.io/google/cadvisor:v0.53.0 # 若拉取不到,可到 https://github.com/google/cadvisor 查看是否版本更新了
privileged: true
ports:
- "38080:8080"
volumes:
- /:/rootfs:ro
- /sys:/sys:ro
- /var/run:/var/run:ro
- /var/lib/docker/:/var/lib/docker:ro

monitor-prometheus:
image: prom/prometheus
ports:
- 9090:9090
volumes:
# 下面两行,请自行修改为你自己配置文件和目录的路径
- /root/prometheus_data:/prometheus
- /root/prometheus.yml:/etc/prometheus/prometheus.yml:ro
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--storage.tsdb.retention.time=30d' # 数据保留30天
depends_on:
- monitor-cadvisor


monitor-grafana:
image: grafana/grafana:latest
environment:
- GF_PATHS_PROVISIONING=/etc/grafana/provisioning
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
ports:
- "3000:3000"
volumes:
# 下面这行,请自行修改为你自己的目录
- /root/grafana_data:/var/lib/grafana

5、验证

访问 CAdvisor 接口 http://127.0.0.1:38080/docker/ 能看到容器信息说明部署成功。

访问 Prometheus 地址 http://127.0.0.1:9090/targets 能看到 cadvisor 采集任务,并且状态是 UP 说明部署成功。

访问 Grafana 地址 http://127.0.0.1:3000 能看到登录页面,并使用 admin/admin 登录进去,说明部署成功。

二、使用

1、添加数据源

登录进 Grafana ,点击左侧的 Connections/Data sources 菜单,也就是 http://127.0.0.1:3000/connections/datasources 地址,点击添加数据源,选择 Prometheus,并输入链接 http://monitor-prometheus:9090,滚动到最底部点击【Save & test】按钮,也就是保存并测试。

2、添加面板

点击左侧的 Dashboards 菜单,也就是 http://127.0.0.1:3000/dashboards 地址,点击创建,选择 Import a dashboard 也就是导入,输入模版ID:14282,这是专门为 cAdvisor 设计的现代仪表模版,点击【Load】加载按钮,并选择刚才的数据源,点击【Import】保存即可看到可视化面板,包含所有容器的 CPU、内存、网络等信息,通过左上角还可筛选容器,查看特定容器的指标。

评论