用Docker部署Prometheus+Grafana需三步:拉镜像、配配置、启容器;核心是确保数据通(targets为UP)、看板准(公式正确)、告警灵(链路实时刷新)。

用 Docker 部署 Prometheus + Grafana 很快,核心就三步:拉镜像、配配置、启容器。关键不是装上,而是让数据通、看板准、告警灵。
一、启动 Prometheus 服务
Prometheus 是数据采集和存储中心,必须先跑起来:
- 拉取镜像:
docker pull prom/prometheus:v2.41.0(推荐指定稳定版本,避免 latest 变更带来兼容问题) - 准备配置文件
prometheus.yml,至少包含自身监控和目标节点:
global: scrape_interval: 15s scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'node' static_configs: - targets: ['192.168.1.10:9100'] # 替换为被监控主机真实 IP
- 运行容器,挂载配置并开放端口:
docker run -d --name prometheus -p 9090:9090 -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus:v2.41.0 - 浏览器访问
http://localhost:9090/targets,确认状态为 UP 表示抓取正常
二、部署 Node Exporter 采集主机指标
Node Exporter 是 Linux 主机的“体检仪”,负责暴露 CPU、内存、磁盘、网络等基础指标:
- 在被监控服务器上运行:
docker run -d --name node-exporter -p 9100:9100 prom/node-exporter:v1.0.1 - 确保该主机防火墙放行 9100 端口,且 Prometheus 配置中的 targets 地址能从容器内直连(如跨主机需用宿主机真实 IP,非 localhost)
- 验证指标是否就绪:
curl http://192.168.1.10:9100/metrics | head -20应返回文本格式指标
三、运行 Grafana 展示可视化看板
Grafana 不存数据,只读取 Prometheus 的查询结果做图表渲染:
- 启动容器:
docker run -d --name grafana -p 3000:3000 -e GF_SECURITY_ADMIN_PASSWORD=admin123 grafana/grafana-enterprise(加环境变量设初始密码) - 浏览器打开
http://localhost:3000,用admin / admin123登录(首次登录强制修改密码) - 添加数据源:左侧 Connections → Data Sources → Add data source → Prometheus,URL 填
http://host.docker.internal:9090(Mac/Win)或http://172.17.0.1:9090(Linux 宿主机 IP) - 点击 Save & Test,显示 “Data source is working” 即成功
四、导入仪表盘与验证效果
不用从零画图,直接复用成熟模板:
- 点击左侧 + → Import,输入模板 ID:1860(Node Exporter Full)或 8919(精简版),点 Load
- 选择刚配好的 Prometheus 数据源,点击 Import
- 进入看板后,检查 CPU 使用率公式:
100 - (avg by(instance)(irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)是否有实时曲线 - 切换时间范围(如 last 5 minutes),观察图表是否动态刷新 —— 刷新即代表链路完整


















