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 监控数据