用 Docker + Prometheus + Grafana 搭一套个人监控面板

2026-05-18运维Docker监控

之前服务器上的服务越来越多,挂了经常是用户先发现、我后知道。于是花了个周末把监控补上,目标很简单:能看到 CPU/内存/磁盘/容器状态,挂了能告警,但不想为此再多养一台机器。

选型

最后定的组合是 node_exporter + cadvisor 采集,Prometheus 存储,Grafana 出图。都是社区标配,文档多、坑少。

最小 compose

services:
  prometheus:
    image: prom/prometheus
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
    ports: ["9090:9090"]
  node-exporter:
    image: prom/node-exporter
    network_mode: host
  grafana:
    image: grafana/grafana
    ports: ["3000:3000"]
    restart: unless-stopped

Grafana 直接导入社区现成的 dashboard(Node Exporter Full,ID 1860),五分钟就有图。

几个教训

  • 采集间隔别贪心,15s 足够,5s 只会让磁盘更快被时序数据撑满。
  • 告警先从最朴素的做起:磁盘 > 85%、内存 > 90%、容器重启次数突增,这三条能覆盖绝大多数事故。
  • 面板不要直接裸奔公网。我后来全部收到内网,用隧道访问——这件事值得单独写一篇。

整套跑了一个月,资源占用很小,心里踏实多了。

← 返回首页