上周三凌晨两点,老张的微信突然弹出一条消息:「[Nginx] CPU 使用率持续超95%达3分钟」。他一个激灵坐起来,登录后台一看——果然,网站接口全挂了,但因为提前配好了告警,抢在用户投诉前就重启了服务。
别等客户打电话才反应过来
很多小团队用云服务器跑官网、小程序后台或内部系统,图的是便宜省事。可一出问题,没人盯着控制台,故障可能拖上几小时。比如数据库连接池打满、磁盘写满、SSL证书过期,这些都不会自动“喊你”,得靠实时告警来当哨兵。
主流云平台都自带告警能力(不用装额外软件)
阿里云、腾讯云、华为云控制台里,点进「云监控」→「告警规则」,就能为 ECS 实例设置 CPU、内存、磁盘使用率、网络出入带宽等阈值。比如:
• CPU ≥ 90%,持续 2 分钟 → 触发告警
• 磁盘使用率 ≥ 95%,持续 5 分钟 → 触发告警
• 连续 3 次 ping 不通 → 触发告警
通知方式要选对,别只发邮件
邮件延迟高,还容易被归进垃圾箱;短信贵且不支持富文本。更靠谱的是:
✓ 微信公众号模板消息(免费,需认证号)
✓ 钉钉机器人(1分钟配置完,支持@人、加链接)
✓ 企业微信应用消息(适合已有企微团队)
以钉钉为例:在群设置里开通「智能助手」→ 添加「自定义机器人」→ 复制 Webhook 地址。然后在云监控告警回调中填入该地址,并勾选「启用 HTTP 回调」。再贴一段简单示例(注意替换实际 URL):
{
"msgtype": "text",
"text": {
"content": "⚠️ 云服务器告警:【华东1-ecs-web01】CPU使用率已达96.2%,已持续3分钟!\n👉 查看详情:https://ecs.console.aliyun.com/instance/xxx"
},
"at": {
"atMobiles": ["13800138000"],
"isAtAll": false
}
}进阶建议:加一层「静默期」和「恢复通知」
刚配好告警,最容易被刷屏——比如凌晨批量备份导致 CPU 短暂飙升,连续触发 10 条。建议开启「静默期」(如 5 分钟内同类型告警只发 1 条),并在告警恢复时也推送一条「✅ 已恢复正常」,心里踏实。
另外,别忘了给关键服务单独加「端口存活检测」。比如你的 Node.js 应用监听 3000 端口,光看 CPU 没用——它可能进程还在,但服务已假死。云监控支持主动拨测 HTTP 接口或 TCP 端口,5 秒一次,比等用户反馈快多了。
最后提醒一句:告警不是设完就完事。每月抽 5 分钟翻翻历史记录,看看哪些是误报、哪些真有隐患。把“服务器不出事”变成“出了事马上知道”,才是小团队稳住线上服务的第一步。