1.
概述:在宕机时的首要原则
步骤小分段:a) 保持冷静,记录发生时间与影响范围;b) 立即通知团队并开启应急通道(电话/企业微信/Slack);c) 不随意重启或修改生产数据,先做只读诊断;d) 按照优先级恢复关键业务(API、支付、登录)。
2.
第一步:确认范围与影响面
步骤小分段:a) 从监控平台(Prometheus/Datadog)查看告警时间与主机列表;b) 使用公网或内网健康检查(curl -I http://your-ip:port)确认是单节点还是集群性故障;c) 检查DNS是否解析正确(dig +short your.domain @8.8.8.8);d) 确认是否仅香港region受影响或其他region正常。
3.
第二步:云平台控制台检查(香港云商如阿里云/腾讯云/华为云/其他)
步骤小分段:a) 登录控制台,查看实例状态(running/stopped/terminated);b) 查看告警记录与运维事件历史;c) 如果支持“实例控制台/串口/Serial Console”,打开查看系统启动日志;d) 如网络组、ACL、安全组或路由表变更,立即回滚或按变更记录修复。
4.
第三步:网络排查实操命令
步骤小分段:a) 从运维机或本地执行 ping 公网IP 与内网IP;b) traceroute +MTR排查路径丢包(mtr -r -c 100 ip);c) 检查端口连通性(nc -vz ip port 或 telnet ip port);d) 若为DNS问题,临时修改本地hosts或降低域名TTL并切换到备用IP。
5.
第四步:登录实例并收集关键日志
步骤小分段:a) 使用SSH尝试登录(ssh -i key root@ip),若SSH不可达尝试云控制台串口或救援模式;b) 查看系统日志:journalctl -xe、/var/log/messages、/var/log/syslog;c) 查看内核与磁盘错误:dmesg | tail -n50;d) 应用日志(nginx, apache, app)定位异常请求或OOM/Segfault。
6.
第五步:系统与资源检查(CPU/内存/磁盘/IO)
步骤小分段:a) top/htop 查看CPU、内存占用;b) free -m 查看内存与swap使用;c) df -h 查看磁盘挂载与空间;d) iostat -xz 1 3 或 sar 查看IO等待(%iowait)并判断是否为磁盘性能瓶颈。
7.
第六步:服务恢复策略
步骤小分段:a) 先以守护进程方式重启单一服务:systemctl restart nginx && journalctl -u nginx -f;b) 若服务无法启动,检查配置错误并回滚最近配置变更;c) 对数据库类服务优先保护数据:不要强制修复导致数据丢失的操作,先做快照备份;d) 若节点无法修复,按SOP将流量切换到备用节点/负载均衡上的健康实例。
8.
第七步:使用快照与重建实例的快速流程
步骤小分段:a) 在控制台对磁盘或实例做快照(避免进一步破坏);b) 从快照创建新云盘并挂载到临时排查实例,检查文件系统完整性(fsck -n /dev/xvdb);c) 若要快速切换生产,基于快照新建实例并配置网络、安全组与弹性IP;d) 更新DNS或负载均衡后端,监控流量与延迟。
9.
第八步:跨区域与容灾恢复(短时间内切换)
步骤小分段:a) 预先准备异地备份与镜像(定期AMI/镜像同步);b) 当香港region出现不可恢复问题,启动备用region实例并从最近快照恢复数据;c) 使用CDN或DNS加权策略将用户流量切换到备用region并降低TTL以便快速生效;d) 验证会话与数据一致性,必要时使用数据库主从切换或只读模式。
10.
第九步:与云厂商沟通及工单流程
步骤小分段:a) 记录所有诊断步骤与时间线,提交工单并附上控制台截图、串口日志、实例ID;b) 在等待期间继续本地排查并准备可复现步骤;c) 若是物理机或网络链路层问题,要求厂商提供事件报告与预计恢复时间;d) 保持与客户/业务方沟通,透明传达恢复进度。
11.
第十步:恢复后总结与加固措施
步骤小分段:a) 做完整事故报告,包含原因、恢复步骤、影响范围与SLA损失估算;b) 修补根本原因:配置审计、自动化回滚、健康检查、容量扩容;c) 配置更低TTL的应急DNS记录、增加多可用区/多region部署;d) 建立演练计划(半年度演练)并完善Runbook。
12.
问:如果SSH与控制台都不可用,如何在最短时间恢复对外服务?
答:首先在云控制台对实例做磁盘快照以保全数据,然后在控制台启动救援模式或从快照创建新实例并挂载数据盘;同时在负载均衡或DNS上把流量引导到备用实例或备用region,降低TTL并切换;整个过程中要保持数据只读,避免二次损坏。
13.
问:如何确认是网络问题还是应用层故障?
答:通过外部监控执行端口与HTTP探测(curl -I)、使用mtr/traceroute判断到实例的路径是否丢包或阻断;若网络连通且端口开放但HTTP状态500/502等,则为应用层故障,应查看应用日志和进程状态(systemctl/status、ps/strace)。
14.
问:平时如何准备以缩短香港云服务器宕机恢复时间?
答:预置自动化脚本(bastion登录、快照/恢复、DNS切换)、建立跨区热备与冷备、制定并演练Runbook、降低DNS TTL、开启云厂商监控告警并购买技术支持服务,这些能显著缩短恢复时间并降低风险。
来源:香港云服务器宕机原因排查与快速恢复实战手册