侧边栏壁纸
  • 累计撰写 154 篇文章
  • 累计收到 0 条评论

使用prometheus全链路监控docker容器

2025-4-24 / 0 评论 / 33 阅读

Prometheus 监控 Docker 容器 Prometheus 可以通过 cAdvisor 或 node_exporter + docker daemon metrics 监控 Docker 容器的状态,包括 CPU、内存、网络流量等。

方法 1:使用 cAdvisor(推荐)

cAdvisor(Container Advisor)是 Google 开发的一个工具,专门用于收集 Docker 容器的资源使用情况,并以 Prometheus 格式提供指标数据。

1.1 运行 cAdvisor 使用 docker run 方式运行:

docker run -d \
  --name=cadvisor \
  --restart=always \
  -p 8080:8080 \
  --privileged \
  -v /:/rootfs:ro \
  -v /var/run:/var/run:rw \
  -v /sys:/sys:ro \
  -v /var/lib/docker/:/var/lib/docker:ro \
  --detach \
  gcr.io/cadvisor/cadvisor:latest

访问 cAdvisor

http://<你的服务器IP>:8080 你可以在 Web 页面看到所有 Docker 容器的详细信息。


1.2 配置 Prometheus 采集 cAdvisor

Prometheus 配置:

sudo nano /etc/prometheus/prometheus.yml

添加以下内容:

scrape_configs:
  - job_name: 'cadvisor'
    static_configs:
      - targets: ['127.0.0.1:8080']

重启 Prometheus:

sudo systemctl restart prometheus

方法 2:使用 node_exporter + docker daemon metrics

2.1 启用 Docker Daemon Metrics

Docker 配置:

sudo nano /etc/docker/daemon.json

添加:

{
"metrics-addr": "127.0.0.1:9323",
"experimental": true
}

重启 Docker:

sudo systemctl restart docker

测试是否开启成功

curl http://127.0.0.1:9323/metrics

如果返回 Prometheus 格式的监控数据,说明 Docker Metrics 已启用。

2.2 配置 Prometheus 采集 Docker Metrics Prometheus 配置:

sudo nano /etc/prometheus/prometheus.yml 添加:

scrape_configs:
  - job_name: 'docker'
    static_configs:
      - targets: ['127.0.0.1:9323']

重启 Prometheus:

sudo systemctl restart prometheus

配置 Grafana 监控看板

安装 Grafana

sudo yum install -y grafana
sudo systemctl enable --now grafana-server

访问 Grafana

http://<你的服务器IP>:3000
默认账号/密码:admin / admin

添加 Prometheus 数据源

进入 Data Sources 选择 Prometheus 设置 URL:http://127.0.0.1:9090 点击 Save & Test


导入 Grafana Docker 监控面板

进入 Dashboards → Import 输入 Dashboard ID: cAdvisor 监控面板:13639

Docker Daemon 监控面板:1229 选择 Prometheus 作为数据源 点击 Import 即可看到 Docker 监控数据