监控不是"装个工具就完事"

不少站点上线后第一件事就是装监控工具,但装了不一定等于"有监控"。真正有效的监控要回答三个问题:盯哪些指标、异常时怎么通知、通知了以后谁来处理。这一篇把这套配置串起来讲清楚,配合 Prometheus + Grafana 基础监控 和 监控报警总览 一起看,能覆盖从单机到多机的监控需求。

核心指标与阈值

指标 检查内容 告警阈值 检查频率
可用性 站点是否可访问 1 次检查失败 每 1-5 分钟
响应时间 服务器响应速度 > 3 秒 每 5 分钟
SSL 证书 距到期天数 < 30 天 每天
磁盘使用率 剩余存储 > 85% 每 30 分钟
内存使用率 RAM 占用 > 90% 每 30 分钟
CPU 负载 处理器占用 > 80% 持续 每 5 分钟
数据库 连接状态 连接失败 每 5 分钟

阈值不要照抄模板,要基于自己站点的基线调整。比如一个图片站磁盘涨得快,85% 的磁盘告警可能太晚,建议在 75% 就提醒。SSL 证书的自动签发与续期可参考 Let's Encrypt 证书配置,证书类型对比见 SSL 证书类型指南。

监控工具对比

工具 类型 价格 适合场景
Uptime Kuma 自建 免费 中小站点
Better Uptime SaaS 免费 / $20 每月 有 on-call 的团队
Checkly SaaS 免费 / $30 每月 API 与浏览器监控
Datadog SaaS $15/主机/月 企业级全栈
Grafana + Prometheus 自建 免费 进阶基础设施
Netdata 自建 免费 实时服务器指标

分层监控方案

小站点(免费)

可用性监控:Uptime Kuma(自建)
服务器指标:Netdata(一条命令安装)
SSL 检查:Uptime Kuma 内置
通知:Telegram / 邮件

中型站点(每月 $0-30)

可用性监控:Better Uptime 或 Checkly
服务器指标:Netdata 或基础 Prometheus
APM:Sentry(免费额度够用)
日志:简单轮转 + 手动检查
通知:Slack / Telegram / 邮件

企业级

可用性:Datadog / Pingdom
指标:Grafana + Prometheus
APM:Datadog APM / New Relic
日志:ELK Stack / Loki
通知:PagerDuty / Opsgenie

告警通知渠道

渠道 成本 紧急度 适合场景
邮件 免费 低 日报、汇总
Telegram 免费 中 实时告警、团队群
Slack 免费 中 团队协作
Discord 免费 中 开发者社区频道
短信 付费 高 关键问题
电话 付费 最高 P0 级事故

低优先级的日报可以用 邮件自动化 定时推送,把告警噪音从即时通道里分流出去。

告警配置技巧

设置升级策略

首次告警 → Telegram/Slack(立即)
15 分钟无响应 → 短信
30 分钟无响应 → 电话

配置维护窗口

  • 把例行维护时间从告警中排除;
  • 非关键告警设置静默时段(如 22:00-8:00)。

避免告警疲劳

  • 不要对每个小事件都告警;
  • 用迟滞判断(如连续 3 次失败才告警);
  • 把相关告警分组合并。

告警信息模板

一条好告警要让值班的人不用打开页面就能判断优先级,建议包含:标题(是什么)、影响(影响谁、多严重)、证据(当前值 vs 阈值)、动作(先看哪条命令)。例如:磁盘使用率 92%(阈值 85%)- 主机 web-01 - 先执行 df -h 确认哪个挂载点。把模板写进规则,比事后补说明有效得多。

Uptime Kuma 通知设置

Uptime Kuma 原生支持 Telegram、Slack、Discord、邮件等多种通知渠道,也支持告警升级策略和静默时间配置。在监控项里勾选"启用通知",绑定对应渠道的 Webhook 即可。详细部署见 Uptime Kuma 部署教程。

一个实战案例

某论坛站上线半年,一直没配数据库监控。某次凌晨数据库连接池被打满,首页 502 持续了 20 分钟,直到有用户去客服群反馈才被发现。事后补上了三件事:数据库连接状态 5 分钟一次探测、错误率持续 10 分钟超 2% 触发 P1 告警、Telegram 值班群 + 30 分钟未响应升级电话。之后同样的连接池问题再发生时,值班人员在 12 分钟内完成了重启与扩容。监控的价值不是"避免故障",而是把故障的发现时间从"用户反馈"压缩到"分钟级"。

监控清单

  • 可用性监控已配置(5 分钟间隔)
  • SSL 证书 到期告警(< 30 天)
  • 磁盘使用率告警(> 85%)
  • 内存使用率告警(> 90%)
  • 数据库 连接监控
  • 通知渠道已配置(Telegram/Slack/邮件)
  • 维护窗口已定义
  • 告警升级策略已文档化
  • 关键指标仪表盘已创建
  • 故障响应预案已文档化

常见问题

告警阈值应该怎么定? 先让监控跑一两周,观察正常基线,再把阈值设为基线的 1.2-1.5 倍;不要一上来就照搬网上的推荐值。

监控工具和监控项是不是越多越好? 不是。工具堆得多、告警发得勤,值班的人很快就会麻木。先把关键链路盯住,再逐步补。

小站点需要全套 ELK 吗? 不需要。日志能查到、磁盘能预警就够了,等日志量上来再考虑 ELK 平台 或 Loki。

参考:Uptime Kuma 通知文档 — https://github.com/louislam/uptime-kuma ;Checkly 文档 — https://checklyhq.com/docs/ ;Datadog 文档 — https://docs.datadoghq.com/