1. 为什么日本与香港 VPS 需要差异化监控
- 日本与香港的网络延迟、丢包模式不同,需单独设定网络阈值。
- 法规与合规要求(日志保留、告警通知)在不同地区可能不同。
- 机房层级(托管/云厂商)影响带宽上限与计费策略,需监控流量峰值。
- 对国际访问性能要求高时,应重点监控出口带宽与 RTT(往返时延)。
- 不同机房的 DDoS 被动防护能力不同,需要定制告警与防护联动策略。
- 团队应对跨地域故障时,按地域优先级进行故障隔离与回滚。
2. 监控目标与关键指标(必监)
- CPU 使用率:短时峰值 > 90% 触发高优先级告警,5m 均值 > 75% 触发中优先级告警。
- Load Average:单核阈值参考 1.0,4 核机器 4.0 为高负载告警基线。
- 内存与 Swap:空闲内存 < 10% 或 Swap 使用 > 100MB 触发告警。
- 磁盘使用:单盘分区使用率 >= 85% 发送预警,>= 95% 触发紧急告警。
- 带宽/连接数:入/出峰值占带宽 > 70% 需记录,超过 90% 且伴随 SYN 急增时触发 DDoS 告警。
- 网络时延与丢包:对日本节点设定与国内主站的 RTT 基线(如 RTT>120ms 或丢包>2% 报警)。
3. 推荐监控架构与组件
- 指标采集:Prometheus + node_exporter(轻量、拉模式,适合跨机房抓取指标)。
- 可视化:Grafana(构建地域面板、SLA 看板与历史趋势)。
- 告警处理:Alertmanager(路由、抑制、分组、通知渠道)。
- 代替方案:Zabbix(适合需要主动检测与繁多模板的场景),可与 Prometheus 并行。
- 日志与追踪:ELK/EFK + Jaeger/Tempo,用于故障还原与慢请求分析。
- 健康探测:外部合成监测(例如从中国、香港、日本节点每 1m 请求一次 /health 接口)。
4. 常用告警规则模板示例(建议阈值与说明)
- CPU 高使用(示例):5m avg CPU usage > 90% 持续 5m;通知 On-call 与 Slack。
- 磁盘告警(示例):filesystem_usage_percent >= 85 持续 10m;发送邮件与工单。
- 网络异常:iface_out_utilization > 90% 且 syn_rate 增长 3x;触发 DDoS 流程并通知安全组。
- 服务不可用:HTTP_200_RATE < 99% 且 5m 内 下降 > 5%;把事件发到 NOC 群并自动重启服务。
- 心跳缺失:node_exporter 心跳丢失 1m 内;立刻执行外部合成探测确认,并发起机器重启或移流操作。
- 告警分级:P0(影响业务,立即通知电话)/ P1(降级或部分影响,通知 Slack)/ P2(非紧急,邮件)。
5. 告警通知与升级流程设计
- 多渠道通知:Alertmanager -> Slack/邮件/SMS/Webhook,严重告警同时触发电话。
- 告警抑制:部署抑制规则避免同一根因引起大量重复告警(例如重启过程)。
- 自动化恢复:对常见故障编写自动化脚本,如服务挂掉尝试 systemctl restart 3 次。
- 值班矩阵:明确 on-call 人员及二线、三线联系方式与响应时间 SLA(P0 < 15min)。
- 运行手册:每类告警附带应急操作步骤(检查日志、top、netstat、tcpdump、重启步骤)。
- 事件记录:所有告警在工单系统记录时间线与处理结果,便于事后复盘。
6. CDN 与 DDoS 防御实战要点
- 前置 CDN:对静态资源使用 CDN(香港/日本 POP),减轻源站流量压力并降低 RTT。
- WAF 策略:开启常见攻击签名拦截、IP 黑白名单、速率限制与大流量策略。
- 流量清洗:遇到大规模攻击时启用清洗服务(厂商或机房提供的 scrubbing)。
- BGP 黑洞与流量限制:与网络运营商协作,配置受控黑洞或限速避免上游链路熔断。
- 源站防护:限制连接速率、启用 SYN cookies、调高内核网络队列与连接追踪表大小。
- 监控联动:当流量超阈值自动触发 CDN 缓存策略调整与黑名单下发。
7. 真实案例与配置数据举例(含对照表)
- 案例背景:某电商在双 11 前夕,日本节点出现突发带宽峰值,导致页面 502 增加,最终通过启用 CDN 缓存与流量清洗解决。
- 监控发现:监控面板显示香港节点出站峰值从 200Mbps 突增到 1.5Gbps,SYN rate 增加 8 倍。
- 处理流程:自动触发 Alertmanager 告警 -> 运维接手 -> 切换到 CDN 峰值保护策略 -> 10 分钟内回落。
- 服务器配置举例:日本 VPS(4 核 8GB, 100Mbps 公网),香港 VPS(8 核 16GB, 1Gbps 公网)。
- 以下为对照表(示例数据):
| 节点 |
规格 |
带宽 |
常用阈值 |
典型告警 |
| 日本 VPS |
4C / 8GB |
100 Mbps |
CPU>85% / Disk>80% |
RTT>120ms / 带宽突增 |
| 香港 VPS |
8C / 16GB |
1 Gbps |
CPU>90% / Disk>85% |
SYN 激增 / 流量清洗触发 |
8. 常用运维命令与自动化片段
- 检查 node_exporter 是否运行:systemctl status node_exporter;若失败查看 journalctl -u node_exporter。
- 简单健康探测脚本(示例):curl -sS -m 5 http://127.0.0.1:8080/health || systemctl restart app.service。
- crontab 示例:*/5 * * * * /usr/local/bin/health_check.sh >> /var/log/health_check.log 2>&1。
- Prometheus 告警规则示例片段:groups: - name: node.rules rules: - alert: HighCPU expr: avg_over_time(node_cpu_seconds_total{mode!="idle"}[5m]) > 0.9 for: 5m labels: severity: page annotations: summary: "CPU usage high"。
- 自动化恢复策略:在非 P0 情况下先尝试平滑重启,三次失败再上报人工介入。
- 日志采集:配置 filebeat 发送到 Elasticsearch,便于快速定位错误堆栈。
9. 总结与最佳实践
- 分地域设定阈值:日本与香港因网络与带宽差异,要定制化阈值与流程。
- 建立完整链路监控:从合成探测、主机指标到日志追踪都要覆盖。
- 自动化优先:常见故障优先编写自动恢复脚本并加入告警流程。
- 防护联动:监控与 CDN/WAF/DDoS 清洗联动,避免业务中断。
- 定期演练与复盘:每季度做一次故障演练并更新 Runbook,确保 on-call 能迅速响应。
- 持续优化:基于历史数据调整阈值与添补监控缺口,保持 SLA 稳定。