零一空天网 - Grafana
type: channel
link: https://m.001kt.com/tag/Grafana/
items: VPS服务器自动化运维实战：用Prometheus+Grafana搭出你的服务器监控体系

VPS服务器自动化运维实战：用Prometheus+Grafana搭出你的服务器监控体系
type: item
date: 2026-07-03T13:52:24+08:00
description: 这两天后台有朋友问我："买回来的VPS，总不能天天ssh上去挨个看资源吧？"老实说，这个问题戳中了太多新手运维的痛处。我自己做服务器导购这些年，见过太多用户——买了一台配置不错的VPS，跑了两三个月突然挂了，一顿排查发现：磁盘早在两周前就满了，内存天天打满swap，CPU被某个异常进程占得死死的。没有人会在凌晨三点盯着终端看监控。 但你可以在凌晨三点收到告警短信，然后安稳地翻个身——前提是你搭了一套靠谱的监控体系。今天这篇文章，我就把从零搭建VPS监控体系的完整方案摊开来讲。核心三剑客：Prometheus + Grafana + Alertmanager，全部开源免费，一台1核2G的VPS就能跑起来。目录 为什么要上监控？ 监控体系架构——一张图看懂 Prometheus部署——监控数据的"大脑" Node Exporter——让操作系统开口说话 Grafana——把数据变成看得见的仪表盘 Alertmanager——关键指标告警到手机 生产环境建议——别踩这些坑 总结 一、为什么要上监控？先抛一个问题：你100%确定你的VPS现在"健康"吗？你可能会说——"我刚才看了，uptime 200多天，一切正常。"但你答不上来的是： 昨天凌晨2点的平均负载是多少？ 磁盘IO等待是不是悄悄飙到30%以上了？ 可用磁盘空间还能撑几天？ 有没有异常进程在偷偷跑挖矿脚本？ 你看，没有监控，你在裸奔。而有一句老话说得好——"你不关心监控，监控就会在某天凌晨3点把你叫醒。"Prometheus（普罗米修斯） 是目前业界最主流的开源监控方案。你信不信，Kubernetes、Docker生态里的监控，十有八九都是它。我个人的经验是：一套监控体系投进去的时间成本大约2-3小时，但它能在接下来的一年里帮你省下无数个排查故障的夜晚。二、监控体系架构——一张图看懂整个架构非常清晰，就三个组件：+----------------+ +------------------+ +----------------+ | 被监控服务器 | | Prometheus | | Grafana | | (Node Exporter) | ----> | (数据采集+存储) | ----> | (可视化仪表盘) | +----------------+ +------------------+ +----------------+ | v +------------------+ | Alertmanager | --> 邮件/钉钉/企业微信 | (告警通知) | +------------------+ Node Exporter：部署在被监控的服务器上，采集CPU、内存、磁盘、网络等系统指标 Prometheus Server：拉取并存储所有指标数据，提供查询语言 PromQL Grafana：从Prometheus读取数据，生成直观的可视化图表 Alertmanager：根据规则触发告警，推送到你的手机（邮件、钉钉、企业微信等） 整个体系对系统资源的要求极低。 我用一台1核2G、20GB SSD的轻量云服务器做演示，Prometheus + Grafana + 监控3台机器，内存占用不到1GB。三、Prometheus部署——监控数据的"大脑"Prometheus 的部署方式，我建议用 Docker——干净、快速、好维护。3.1 创建数据目录mkdir -p /opt/prometheus/{data,config} cd /opt/prometheus 3.2 编写配置文件创建 /opt/prometheus/config/prometheus.yml：global: scrape_interval: 15s # 每15秒采集一次数据 evaluation_interval: 15s # 每15秒评估一次告警规则 alerting: alertmanagers: - static_configs: - targets: - "localhost:9093" # Alertmanager地址 rule_files: - "rules/*.yml" # 告警规则文件 scrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090"] - job_name: "node_exporter" static_configs: - targets: - "192.168.1.10:9100" # 替换为你的VPS IP 注意：这里 scrape_interval 设15秒，对个人VPS完全够用。如果监控上百台机器，可以适当放宽到30-60秒。3.3 用Docker启动Pr…