VPS 监控告警系统搭建 (2025) - Prometheus + Grafana 专业级方案
更新时间:2025-12-25 13:18:31

你的 VPS 就像一辆在高速上飞驰的赛车,如果你不盯着仪表盘(CPU、内存、带宽),等到它“爆缸”(宕机)时就太晚了。
对于专业 VPS 玩家来说,只用 top 命令手动查看状态是不够的。我们需要一套专业、自动、可视化的监控系统。本文将带你使用目前业界公认的黄金组合:Prometheus + Grafana + Node Exporter,打造属于你的 VPS 飞行仪表盘。
- Node Exporter (采集器):安装在 VPS 上,负责抓取系统各项指标(CPU 使用率、磁盘剩余空间、网络流量等)。
- Prometheus (存储中心):像一台“监控录像机”,定期去 Node Exporter 那里拉取数据并保存下来。
- Grafana (展示层):最美观的监控面板,负责把 Prometheus 里的冷冰冰的数据变成漂亮的曲线图和报警信息。
在 2025 年,我们依然极力推荐使用 Docker Compose 部署。这能保证你的系统环境干净,且一键管理所有组件。
创建一个目录并进入:
mkdir vps-monitor && cd vps-monitor
创建 docker-compose.yml:
services:
prometheus:
image: prom/prometheus:v3.1.0 # 建议锁定版本
container_name: prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
restart: always
node-exporter:
image: prom/node-exporter:v1.8.2
container_name: node-exporter
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
command:
- '--path.procfs=/host/proc'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|host|etc)($$|/)'
restart: always
grafana:
image: grafana/grafana:11.4.0
container_name: grafana
ports:
- "3000:3000" # 仪表盘访问端口
volumes:
- grafana_data:/var/lib/grafana
environment:
- GF_SECURITY_ADMIN_PASSWORD=your_secure_password # 设置初始密码
restart: always
volumes:
prometheus_data:
grafana_data:
在同一目录下创建 prometheus.yml 配置文件:
global:
scrape_interval: 15s # 每 15 秒拉取一次数据
scrape_configs:
- job_name: 'vps-status'
static_configs:
- targets: ['node-exporter:9100'] # 指向同一个 Docker 网络里的采集器
启动所有服务:
docker compose up -d
- 访问
http://你的IP:3000,使用你刚才设置的密码登录。 - 添加数据源:左侧菜单进入
Connections->Data sources->Add data source,选择 Prometheus。 - 填写地址:在 URL 处输入
http://prometheus:9090,点击底部的Save & test。 - 导入经典模板:
- 点击右上方
+号 ->Import。 - 在 ID 处输入
1860(这是最经典的 Node Exporter 全能面板)。 - 点击
Load,选择刚才创建的 Prometheus 数据源,点击Import。
- 点击右上方
瞬间,你的 VPS 负载、流量、磁盘 IO 就会以极其震撼的可视化效果展现在你面前!
光看图还不够,我们需要 VPS 在出问题时主动通知我们。
在 Grafana 中,你可以直接设置 Alert(告警):
- 进入 Grafana 的
Alerting->Alert rules。 - 创建规则:比如设置“磁盘空间 < 10%” 或 “平均负载 > 0.8”。
- 配置通道:你可以连接 Telegram Bot 或 飞书/钉钉 webhook。这样当 VPS 流量异常超标或者磁盘快满时,你的手机会立刻收到推送。
没有监控的服务器就像盲目运行。通过 Prometheus + Grafana,你不仅能实时看到服务器的状态,还能在故障发生的前一刻(比如内存持续增长)就提前介入处理。
Pro Tip: 如果你有多台 VPS,只需要在其他 VPS 上单独运行一个
node-exporter容器,然后在主控端的prometheus.yml中添加它们的 IP 即可实现多机聚合监控。