之前介绍过Uptime Kuma做”网站活没活”的可用性监控,而当你想深入看服务器内部性能——CPU、内存、磁盘、网络的实时曲线和历史趋势,就需要更专业的组合:Prometheus + Grafana。这是业界标准的监控方案,本文教你用Docker搭起来。
一、这套组合各管什么?
- node_exporter:跑在被监控服务器上,采集CPU、内存、磁盘、网络等主机指标;
- Prometheus:定时从exporter拉取指标并存储,是数据中枢;
- Grafana:把Prometheus的数据画成漂亮的可视化面板和大屏。
简单说:exporter采集 → Prometheus存储 → Grafana展示。
二、用Docker Compose一次部署
在一台监控专用的VPS上(建议独立于业务机,参考监控部署原则),创建 docker-compose.yml:
services:
prometheus:
image: prom/prometheus
ports: ["9090:9090"]
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
grafana:
image: grafana/grafana
ports: ["3000:3000"]
node_exporter:
image: prom/node-exporter
ports: ["9100:9100"]
创建 prometheus.yml 配置采集目标:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['node_exporter:9100'] # 本机
# 监控其他服务器就加它们的 IP:9100
docker compose up -d 启动。
三、配置Grafana面板
- 访问
http://IP:3000,默认账号admin/admin,首次登录改密码; - 添加数据源:选Prometheus,地址填
http://prometheus:9090; - 导入现成面板:Grafana社区有大量优质模板,导入经典的”Node Exporter Full”面板ID,瞬间拥有专业监控大屏——CPU、内存、磁盘IO、网络流量一应俱全。
不用自己画图,社区模板已经很完善,这是Grafana生态的强大之处。
四、监控多台服务器
在每台要监控的服务器上跑一个node_exporter(9100端口,建议只对监控机内网开放,别暴露公网),在prometheus.yml的targets里加上它们的地址。这样一个Grafana大屏就能纵览你所有的服务器,包括分布在香港、新加坡、美国的多节点机器。
五、配置告警
光看还不够,得能主动通知。两种方式:Prometheus的Alertmanager(功能强,配置告警规则如”CPU>90%持续5分钟”)、或Grafana内置告警(在面板上直接设阈值)。告警可推送到Telegram、企业微信、邮件等。这样CPU飙升、磁盘将满、内存告急都能第一时间知道。
六、Uptime Kuma vs Prometheus+Grafana怎么选?
- 只想知道”网站挂没挂” → Uptime Kuma,轻量、5分钟搞定;
- 想深入看性能趋势、容量规划、多机纵览 → Prometheus+Grafana;
- 最佳实践:两者结合,Kuma管可用性告警,Grafana管性能分析。
Prometheus+Grafana是专业运维的标配,搭好后你对服务器的健康状况了如指掌,容量规划和故障排查都有据可依。用一台免费试用的VPS作监控机,把这套栈跑起来,给你的服务器装上”体检仪表盘”。