服务器预测性维护监控新手搭建指南

当你管理的服务器突然宕机,排查半天才发现是磁盘写满或内存泄漏,这种被动维修既耗时又影响业务。
预测性维护监控的目标,就是通过持续采集 CPU、内存、磁盘、网络等指标,结合趋势变化提前发现异常,在故障发生前就发出告警。
本文使用开源的 Prometheus + Node Exporter + Grafana 组合,带零基础用户一步步搭建这套监控系统,即使没接触过监控也能直接上手。

搭建前需要准备什么

  • 一台 Linux 服务器(本文以 CentOS 7/Ubuntu 20.04 为例,其他发行版命令类似)。
  • 服务器能正常访问 GitHub 和 Grafana 仓库(如受限需提前准备代理或离线包)。
  • 开放服务器防火墙:Prometheus 默认端口 9090,Node Exporter 端口 9100,Grafana 端口 3000。

如果你用云服务器,还需要在安全组中放行这三个端口。

第一步:安装系统资源采集器 Node Exporter

Node Exporter 负责收集服务器的 CPU、内存、磁盘、网络等指标,是最底层的数据源。

  1. 下载并解压最新版(到 Prometheus 官网 找当前版本号,本文以 1.6.0 为例):
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.0/node_exporter-1.6.0.linux-amd64.tar.gz
tar -xzf node_exporter-1.6.0.linux-amd64.tar.gz
sudo mv node_exporter-1.6.0.linux-amd64/node_exporter /usr/local/bin/
  1. 创建系统服务文件,让 Node Exporter 开机自启:
sudo tee /etc/systemd/system/node_exporter.service <
  1. 启动并验证:
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporter
curl http://localhost:9100/metrics  # 应返回大量指标数据

第二步:配置 Prometheus 抓取数据

Prometheus 是一个时序数据库,负责定期拉取 Node Exporter 的指标并存储。

  1. 下载 Prometheus:
wget https://github.com/prometheus/prometheus/releases/download/v2.50.1/prometheus-2.50.1.linux-amd64.tar.gz
tar -xzf prometheus-2.50.1.linux-amd64.tar.gz
sudo mv prometheus-2.50.1.linux-amd64 /opt/prometheus
  1. 编辑配置文件 /opt/prometheus/prometheus.yml,在 scrape_configs 下添加 Node Exporter 的抓取目标:
scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']

(如果有多个服务器,继续添加 targets,用逗号分隔)

  1. 创建服务并启动:
sudo tee /etc/systemd/system/prometheus.service <
  1. 验证:浏览器访问 http://服务器IP:9090,在 Expression 框输入 up,点 Execute。如果看到 node 对应的值为 1,说明抓取成功。

第三步:用 Grafana 可视化并设置告警

Grafana 负责将 Prometheus 里的指标画成图表,并支持配置告警。

  1. 安装 Grafana(以 Ubuntu 为例):
sudo apt-get install -y software-properties-common
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
sudo apt-get update
sudo apt-get install -y grafana
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
  1. 打开浏览器 http://服务器IP:3000,默认用户名/密码均为 admin,首次登录会要求修改密码。
  2. 添加数据源:左侧齿轮图标 → Data Sources → Add data source → 选择 Prometheus,URL 填写 http://localhost:9090,点击 Save & Test。
  3. 导入仪表盘:左侧 + 号 → Import → 输入 Dashboard ID 1860(Node Exporter 官方推荐)→ Load → 选择数据源 → Import。你会看到 CPU、内存、磁盘、网络等实时图表。
  4. 设置预测性告警:以磁盘根分区使用率超过 80% 为例:
  • 进入对应面板,编辑指标查询(如 (1 - (node_filesystem_avail_bytes{mountpoint="/", fstype!= ""} / node_filesystem_size_bytes{mountpoint="/", fstype!= ""})) * 100)。
  • 切换到 Alert 选项卡 → Create Alert Rule → 设置 Condition:当 WHEN last() OF query (A, 5m, now) IS ABOVE 80 → 设置通知渠道(如邮件、钉钉、Slack)。
  • 保存。这样当磁盘用量持续超过阈值,就会提前告警,避免写满后服务中断。

常见踩坑与解决方法

  • 端口被占用:Node Exporter 默认 9100,如果冲突,启动时加参数 --web.listen-address=":9101",同时修改 prometheus.yml 里的 targets。
  • Prometheus 抓取超时:量大的服务器建议调大 scrape_timeout,在 prometheus.yml 的 global 或 job 下添加 scrape_timeout: 30s
  • Grafana 告警不生效:确保 Grafana 已正确配置 SMTP(邮件)或其他通知渠道,且 Alert Rule 的状态从 Pending 变为 Firing 才触发。
  • 忘记放行端口:检查云服务安全组和服务器内部防火墙(systemctl status firewalld 确认)。

验证监控是否生效

  1. 用命令 stress --cpu 2 --timeout 60(需先安装 stress)模拟 CPU 高负载,观察 Grafana CPU 面板曲线是否上升。
  2. dd if=/dev/zero of=/tmp/bigfile bs=1M count=1024 快速消耗磁盘,看磁盘使用率是否超过告警阈值,同时检查是否收到告警通知。
  3. 在 Prometheus 的 Web UI 中执行 rate(node_cpu_seconds_total{mode="system"}[5m]) 查看 CPU 增长率,了解系统负载变化趋势。

通过这套组合,你不仅能实时看到服务器状态,还能借助历史数据预测哪些指标即将突破红线,把故障消灭在萌芽阶段。
每次调整阈值后,建议持续观察一周,根据实际波动微调告警灵敏度。
如果觉得这些操作还是复杂,可以继续阅读本博客的《使用宝塔面板内置监控实现基础预测》教程,但功能上远不及 Prometheus 灵活。

分享到:
上一篇
服务器故障根因分析实战指南:从日志到根因的排查步骤
下一篇
自动化运维平台搭建实战:Ansible从入门到批量部署
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意