1. 概述与目标
- 目标:保证
新加坡站群 99.95% 可用性并在 1 分钟内识别严重故障。
- 范围:服务器、VPS、主机、域名解析、CDN、DDoS 防御层、应用响应。
- 指标级别:资源(CPU/RAM/Disk)、网络(流量/带宽/丢包)、应用(HTTP 200率/响应时间)。
- 告警分级:信息、警告、严重、紧急,分别对应邮件/Slack/电话/值班电话。
- 要求:报警误报率 < 3%,报警到确认平均不超过 5 分钟。
2. 关键监控指标与阈值建议
- CPU 利用率:vCPU 平均 > 80% 持续 5 分钟触发警告;> 95% 触发严重。
- 内存使用:可用内存 < 15% 或 Swap 使用 > 30% 触发告警。
- 磁盘空间:单分区使用 > 85% 警告,> 95% 严重并自动触发清理脚本。
- 网络延迟/丢包:往新加坡聚合点 RTT > 150ms 或丢包 > 2% 触发警告。
- HTTP 业务:错误率 > 1% 持续 10 分钟或平均响应时间 > 800ms 触发警告。
3. 报警规则设计与抑制策略
- 聚合:对同一主机相同类型告警 5 分钟内合并,避免洪水式通知。
- 抑制:在自动扩容/维护窗口内通过 Silence 自动抑制通知。
- 去重:使用告警 fingerprint(主机+指标+阈值)去重。
- 漏斗式升级:Warning -> Critical -> Emergency,超时未确认自动升级并通知电话。
- 黑白名单:对 CDN 边缘节点生成的短暂 502 应设置更短的复原窗口以减少误报。
4. 通知链路与集成实践
- 多渠道:Alertmanager -> Slack(团队),PagerDuty(值班),邮件(记录),Telegram/WeChat(即时提醒)。
- 报文内容:必须包含:主机、IP、告警名、当前值、阈值、发生时间、恢复建议。
- 自动化操作:部分告警触发自动化脚本(重启 nginx、清理缓存、扩容实例)。
- 电话阈值:DDoS/主机宕机等紧急告警直接触发电话/短信。
- 回归验证:恢复后发送清晰的 RECOVER 通知并记录工单。
5. 实操示例:Prometheus 与 Alertmanager 规则(示例)
- 监控栈:Prometheus 采集 node_exporter + blackbox_exporter;Alertmanager 处理告警路由与抑制。
- 示例表达式:node_load1{job="node"} > 4 for 5m 表示一核负载 >4 触发告警(4 vCPU 主机即 100%)。
- HTTP 错误率:sum(rate(http_requests_total{code!~"2.."}[5m])) / sum(rate(http_requests_total[5m])) > 0.01 for 10m。
- 网络流量异常:sum(rate(node_network_receive_bytes_total[1m])) by (instance) > 10000000 表示入流量 >10MB/s(可疑)。
- Alertmanager 路由:match severity="critical" -> pagerduty; match severity="warning" -> slack; 静默时间窗口支持 9:00-18:00。
6. 新加坡站群特有要点(CDN 与 DDoS 防御)
- CDN 集成:优先在边缘设置 429/5xx 缓存策略,减少源站压力。
- DNS 健康检查:多 NS 提供商并启用地理路由,域名解析 RTT 异常触发告警。
- DDoS 阈值:突发包速 > 100kpps 或流量 > 1Gbps 需报警并自动切换到清洗链路/Cloudflare Spectrum。
- 清洗响应:触发阈值后 30s 内与清洗厂商自动完成流量劫持。
- 流量基线:记录 24/7 的基线,异常值定义为 > 基线平均 + 5σ。
7. 真实案例与服务器配置示例
- 案例:某电商站群在双十一前夕遭遇 SYN 洪泛,监控在 12 秒内检测到 SYN 速率从基线 2kpps 上升到 120kpps,Alertmanager 路由到 PagerDuty,自动触发云端清洗并在 90s 内恢复正常。
- 自动化:在清洗期间,监控自动将非必要节点设置为只读并扩容边缘缓存。
- 恢复后复盘:根因是爬虫行为触发阈值,随后调整了 bot 阈值与 WAF 规则。
- 服务器配置示例见下表:
| 主机名 | IP | CPU | 内存 | 磁盘 | 角色 |
| sg-web-01 | 103.45.12.10 | 4 vCPU | 8 GB | 100 GB NVMe | nginx + app |
| sg-db-01 | 103.45.12.20 | 8 vCPU | 32 GB | 500 GB NVMe | MySQL 主 |
| sg-proxy-01 | 103.45.12.30 | 2 vCPU | 4 GB | 50 GB SSD | 负载均衡 / CDN 回源 |
- 小结:结合明确阈值、分级告警、自动化响应和定期演练,可将新加坡站群故障恢复时间显著缩短并降低业务损失。
来源:监控报警在新加坡站群维护中的设置要点与实操示例