1
总体故障排查框架与准备
1) 明确故障范围:是单点实例、机房还是全球影响;先看监控报警(如Prometheus/Grafana)。
2) 收集基础信息:公网IP、主机名、实例规格、机房位置、带宽、BGP或共享链路。示例:洛杉矶VPS 2vCPU/4GB/50GB SSD/1Gbps,共享带宽。
3) 准备工具:ssh、mtr、tcpdump、ss、top、iotop、journalctl/nginx日志、whois和dig。
4) 制定回滚与沟通计划:联系人、工单编号、预估恢复时间(MTTR)与通知渠道(邮件/Slack/短信)。
5) 记录初始状态快照:ifconfig/ip a 输出、路由表、负载、连接数。保留以便事后分析和SLA评估。
6) 判断是否需要切换到备机或触发流量切换策略(DNS/负载均衡/CDN回退)。
2
网络层异常诊断流程
1) 基础连通性:从运维处Ping与traceroute到目标IP,记录时延与丢包率。示例数据见下表。
2) 路由与BGP:检查AS路径与是否发生黑洞或社区过滤,使用whois和bgp.he.net查询。
3) 局部链路拥塞:使用mtr连续5分钟采样,观察丢包沿程点定位。
4) 服务器网卡与驱动:检查ethtool、dmesg、/var/log/messages 是否有错误。
5) 防火墙/安全组:核对iptables/nftables、云厂商安全组规则是否误阻IP或端口。
6) CDN与DNS影响:排查是否为DNS解析异常或CDN回源问题,可临时改用公共解析(8.8.8.8)测试。
3
应用与服务层排查要点
1) 进程与端口:用ss -tulpen 检查监听端口及连接状态,确认服务是否正常监听。
2) 资源利用:top/iotop 查看CPU、内存、磁盘I/O是否达到瓶颈。示例:CPU 95% 时需考虑扩容或限流。
3) 日志分析:tail -n 200 /var/log/nginx/error.log、journalctl -u app.service,按时间线定位错误高峰。
4) 数据库连通:检查DB连接池耗尽、慢查询(SHOW PROCESSLIST/EXPLAIN),确认是否为后端卡顿导致前端超时。
5) 依赖服务退化:核查第三方API、缓存(Redis)是否可用,若缓存击穿导致DB压力激增。
6) 热修复措施:重启进程、清理临时文件、扩展连接池、临时调整配置(如nginx worker_connections)。
4
CDN与域名相关故障处理
1) DNS解析失效:用dig +short A example.com @8.8.8.8对比权威解析和本地解析是否一致。
2) CDN回源异常:检查回源IP是否被防火墙封或被上游限流,查看CDN控制台回源错误码(502/504)。
3) 缓存策略问题:判断是否因缓存配置导致新版未生效,必要时清理缓存或调整TTL。
4) SSL证书问题:确认证书链是否完整、域名是否匹配以及SNI配置正确。
5) 域名到期或解析被篡改:核对WHOIS 与 registrar,确认域名状态和DNS主机记录是否被修改。
6) 回退方案:可临时将域名解析到备用IP或直接使用负载均衡/流量切换以降低影响。
5
DDoS攻击识别与防护实操
1) 流量突增识别:监控入口带宽瞬时上升到峰值(例如从100Mbps骤增至2Gbps),同时SYN半开连接飙升。
2) 流量清洗与黑洞:评估是否启用ISP/云厂商流量清洗或黑洞策略,权衡业务可用性与不可访问风险。
3) 四层与七层防护:使用WAF/速率限制、连接数限制、challenge机制(验证码)减少应用层攻击。
4) ACL与速率限制:在边缘设备或云安全组设置基于源IP/ASN的速率与并发限制。
5) 长期策略:部署多区域冗余、Anycast-CDN、按需流量清洗与SLA化防护服务。
6) 取证与上报:保留tcpdump抓包、流量峰值时间线,并向ISP或安全团队上报攻击来源与特征。
6
真实案例与恢复步骤示例
1) 案例背景:某电商在美国东部(纽约)VPS集群发生页面超时,监控报警请求延迟从200ms跳至2.5s。实例规格:4vCPU/8GB/100GB SSD,公网IP 198.51.100.23(示例保留地址)。
2) 初查结论:mtr显示至服务器第五跳丢包严重,服务器内并发连接数接近ulimit限制,nginx报504。
3) 处理步骤:A. 与ISP确认链路拥塞;B. 暂时增加nginx超时并启用缓存;C. 在应用层限流并重启nginx;D. 将部分流量切到洛杉矶的热备。
4) 恢复结果:30分钟内错误率从18%降至1%,页面平均响应恢复到220ms。事后分析发现是上游路由抖动与后端连接泄露共同导致。
5) 改进措施:调整ulimit与连接池、增加健康检查、在全国部署Anycast CDN并与ISP签署快速清洗流程。
6) 复盘数据(示例表格展示关键指标):
| 指标 | 故障高峰 | 恢复后 |
| 平均响应时间 | 2500 ms | 220 ms |
| 错误率 | 18% | 1% |
| 带宽入口 | 2.1 Gbps | 120 Mbps |
| 并发连接数 | 65,000 | 8,200 |
| MTTR | 30 分钟 | - |
7
常见配置举例与建议清单
1) 推荐实例配置(中小型业务):2vCPU/4GB/50GB SSD/1Gbps,带宽按峰值预估并留20%冗余。
2) Nginx建议:worker_processes auto,worker_connections 8192,keepalive_timeout 30,proxy_read_timeout 60。
3) 系统参数:net.core.somaxconn=65535,net.ipv4.tcp_tw_recycle=0(禁用),fs.file-max=200000。
4) 监控指标:响应时间、5xx比率、带宽、丢包率、TCP半开连接数、磁盘IOPS。
5) 备份与演练:DNS切换、CDN回退、数据库主从切换需定期演练并记录RTO/RPO目标。
6) 文档与SOP:将上述步骤形成SOP并放入工单系统,确保值班工程师能快速执行。
来源:运维视角美国服务器的在线异常排查与故障恢复实战指南