docker搭建prometheus监控系统核心是容器化prometheus、node exporter、alertmanager和grafana四组件,并通过准确配置打通数据链路:prometheus拉取并存储指标、执行告警;node exporter暴露主机cpu/内存等/metrics接口;alertmanager处理分组、静默及通知;grafana连接prometheus可视化看板。

用 Docker 搭建 Prometheus 监控系统,核心是把 Prometheus、Node Exporter、Alertmanager 和 Grafana 这四个组件容器化,并通过配置打通数据链路。整个过程不依赖外网、无需编译,重点在配置准确和端口连通。
明确各组件职责再动手
- Prometheus:拉取指标、存时序数据、执行告警规则计算
- Node Exporter:暴露本机 CPU、内存、磁盘等系统指标(HTTP
/metrics接口) - Alertmanager:接收 Prometheus 发来的告警,做分组、静默、邮件/钉钉通知
- Grafana:连接 Prometheus 作为数据源,画图看板
准备一个最小可用配置
先确保 Docker 已运行:
docker --version # 应输出类似 Docker version 24.0+
创建 prometheus.yml 文件(放在当前目录):
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node-exporter'
static_configs:
- targets: ['host.docker.internal:9100'] # Mac/Win Docker Desktop 用这个
# Linux 主机请改用宿主机真实 IP,如 192.168.1.100:9100
一键启动四件套(推荐用 docker-compose)
在 Linux 上通过 Docker 运行 OpenClaw,并使用 Tailscale 实现远程访问。⚠️ 涉及 sudo、Docker、Tailscale和凭证挂载——请先查阅安全章节...
新建 docker-compose.yml:
version: '3.8'
services:
prometheus:
image: prom/prometheus:v2.47.2
container_name: prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus-data:/var/lib/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.retention.time=30d'
ports:
- '9090:9090'
restart: unless-stopped
node-exporter:
image: quay.io/prometheus/node-exporter:v1.6.1
container_name: node-exporter
privileged: true
ports:
- '9100:9100'
restart: unless-stopped
alertmanager:
image: prom/alertmanager:v0.26.0
container_name: alertmanager
ports:
- '9093:9093'
restart: unless-stopped
grafana:
image: grafana/grafana-enterprise:10.4.0
container_name: grafana
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
volumes:
- grafana-storage:/var/lib/grafana
ports:
- '3000:3000'
restart: unless-stopped
volumes:
prometheus-data:
grafana-storage:
执行启动:
docker-compose up -d
验证是否跑通
- 打开
http://localhost:9090/targets→ 查看node-exporter是否为 UP - 访问
http://localhost:9100/metrics→ 能看到文本格式指标即 exporter 正常 - 打开
http://localhost:3000→ 登录(admin / admin),添加数据源:http://prometheus:9090(注意用容器名,不是 localhost) - 导入 Node Exporter 官方看板(ID
1860),即可看到实时主机监控图表
关键细节别漏
- Linux 上
host.docker.internal不生效,node-exporter的 targets 必须填宿主机真实 IP -
node-exporter需加privileged: true才能读取/proc/sys等系统路径 - Prometheus 容器内访问
node-exporter,用http://node-exporter:9100;外部浏览器访问用http://宿主机IP:9100 - 第一次进 Grafana 要重置 admin 密码,或提前设好环境变量
GF_SECURITY_ADMIN_PASSWORD
不复杂但容易忽略










