立即隔离故障服务是止血首要动作,包括停止服务、封禁端口、缩容Pod或摘除负载节点;随后保留日志、进程等现场证据;再启用降级策略如静态页兜底、功能关闭或切流灾备;最后5分钟内结构化通报状态。

立即隔离故障服务,防止影响扩散
发现异常后第一反应不是排查原因,而是快速切断故障源头。比如某Web服务CPU持续100%、接口大量超时或数据库连接耗尽,应立刻下线对应实例或关闭对外端口。
常用操作:
- 用 systemctl stop service_name 停止服务(适用于systemd管理的服务)
- 用 iptables -I INPUT -p tcp --dport 8080 -j DROP 临时封禁端口(注意保存规则,避免重启失效)
- Kubernetes环境执行 kubectl scale deploy/nginx --replicas=0 清空Pod
- 负载均衡层(如Nginx、SLB)直接摘除异常节点,比在机器上操作更安全、更快
保留现场,但不阻断业务恢复
日志、内存、进程状态是后续复盘的关键证据,但采集动作必须在“业务已止血”前提下进行,严禁因取证导致二次中断。
推荐做法:
- 用 ps auxf > /tmp/ps_snapshot.log 和 netstat -tulnp > /tmp/netstat.log 快速记录进程与端口占用
- 对疑似异常进程,用 gcore -o /tmp/core_$(date +%s) PID 生成核心转储(仅当磁盘空间充足且进程未响应时)
- 用 journalctl -u service_name --since "2 hours ago" > /tmp/journal.log 提取近期服务日志
- 避免运行 strace 或深度调试命令——它们可能加重负载
启用备用通道或降级策略
止血不是单纯“关停”,而是切换到可控的低风险模式。有预案优先执行预案,无预案则按最小功能集恢复。
典型降级手段:
- 静态页兜底:Nginx返回预置的 maintenance.html,Header中注明 503 Service Unavailable
- 关闭非核心功能:如停用搜索、评论、推荐模块,保持主流程(浏览+下单)可用
- 切流至灾备集群:通过DNS TTL调低或VIP漂移,将流量导向正常环境
- 数据库只读切换:执行 SET GLOBAL read_only = ON; 防止写入引发主从冲突(需提前授权)
通知与同步,明确当前状态
技术动作要和信息同步并行。一线处理人必须在5分钟内向值班群或IM群发出结构化通报,避免多人重复确认或误操作。
标准通报模板(可复制粘贴):
【止血中】服务:order-api|现象:99%请求500|时间:14:22|已操作:SLB摘除10.0.1.5;Nginx限流开启|下一步:检查下游payment服务|负责人:@张三
关键点:
- 包含服务名、现象、起始时间、已执行动作、下一步计划、责任人
- 不写分析性描述(如“疑似Redis连接泄漏”),只写可验证的事实
- 每次状态更新都带时间戳,方便事后拉取完整时间线










