香港站群, 服务器维护, 故障排查, 快速恢复, 站群服务器">
1.
概述与前期准备
- 目标:在最短时间恢复站群可用性并防止数据二次损坏。
- 准备:确保有控制台/KVM/IPMI权限、最近的快照/备份位置、运维账号(root或sudo)、服务清单(nginx、mysql、redis等)、变更记录。
- 工具:SSH、mtr/traceroute、dig/host、ss/netstat、journalctl、tail、df/du、rsync、mysqldump、scp。先在变更前拍快照或备份数据库与配置。
2.
第一步:快速判断故障范围(全局/单机/应用)
- 检查监控与告警:查看Prometheus/Zabbix/Server酱告警时间点与类型。
- 网络连通性:从运维机ping公网IP与域名,使用mtr/traceroute定位丢包节点。命令示例:ping -c4 1.1.1.1; mtr -rw domain.com。
- 多机对比:若是部分IP不可达,可能是网络/防火墙或单机故障;若全部不可达,可能是上游BGP或机房链路问题,联系香港机房支持。
3.
第二步:主机级排查与恢复流程
- 登录控制台:若SSH不可用,立即使用远程KVM/IPMI进入控制台查看系统信息。
- 磁盘与内存检查:df -h 检查磁盘是否满,du -sh /var/log/* 排查日志占满。free -m 查看内存与swap。若磁盘满,删除临时日志或清理旧快照(优先移动到其它存储再删除)。
- 进程与端口:ss -tulpn | grep :80 查看端口占用,ps aux | grep nginx/mysql 等。若服务挂起,查看日志(journalctl -u nginx -n200 或 tail -n200 /var/log/nginx/error.log)。
4.
第三步:应用服务快速恢复(以Nginx+PHP+MySQL为例)
- Nginx:检查配置 nginx -t,若通过重启 nginx -s reload 或 systemctl restart nginx。若报错,回滚到上一个可用配置(/etc/nginx/conf.d/backup.conf)。
- PHP-FPM:systemctl status php-fpm && journalctl -u php-fpm -n200。若进程泄露导致连接数用尽,先重启:systemctl restart php-fpm,并查看 slowlog。
- MySQL:mysqladmin ping 或 systemctl status mysql。若无法启动,查看 /var/log/mysql/error.log。尝试安全模式启动:mysqld_safe --skip-grant-tables,导出数据 mysqldump,后再修复或替换数据文件。优先恢复备份避免写入损坏数据。
5.
第四步:网络与DNS故障处理
- DNS解析问题:dig domain.com @8.8.8.8 +trace 检查权威解析是否正确。若DNS记录被篡改,及时登录DNS托管面板恢复A/CNAME记录并缩短TTL以便快速生效。
- 负载均衡/反向代理:确认LVS/HAProxy/Cloud LB健康检查日志,若后端节点异常把它踢出池,等恢复后再加入。检查iptables/nftables规则是否误拦截:iptables -L -n。
6.
第五步:数据恢复与回滚策略
- 数据恢复优先级:先恢复只读服务,再恢复写服务以避免写入冲突。
- 从备份恢复:使用最近的逻辑备份 mysqldump 恢复:mysql -u root -p DBNAME < backup.sql;或使用物理备份(xtrabackup)按文档恢复并保证权限与属主一致。
- 增量与二进制日志:若需要恢复到故障前时点,按binlog恢复:mysqlbinlog binlog.[序号] | mysql -u root -p。操作前在测试环境验证。
7.
第六步:应对常见特殊故障
- IP被封或被滥用:检查服务器是否被加入DDoS黑名单或机房封IP,联系机房与上游运营商申请解封或更换IP。
- SSL证书失效:检查证书到期时间 openssl s_client -connect domain.com:443 -servername domain.com。若过期,用certbot renew或从备份替换证书并重载nginx。
- 权限错乱导致服务无法读取文件:用chown -R www-data:www-data /var/www && chmod -R 755 /var/www修复(根据实际用户调整)。
8.
第七步:恢复后的验证与加固
- 功能验证:通过脚本或手工检查首页、登录、写入功能、搜索等关键路径。记录响应时间与错误码。
- 回滚与补丁:若临时修复采用回退配置,安排在低峰期做正式修复并编写变更记录。
- 加固措施:建立快照策略、异地备份、健康检查策略、流量清洗方案与白名单,设定合理监控告警阈值并演练恢复流程。
9.
常见问:遇到香港机房全网不可达怎么办?
- 答:先从多个公网出口(本地、云、第三方VPS)做traceroute定位是否为上游链路或机房故障,立即联系机房支持工单并提供告警时间与traceroute结果;同时启用备用节点或CDN流量接管;若无备用,考虑临时更换机房或使用云上弹性IP恢复服务。
10.
常见问:如何快速恢复被误删的网站文件?
- 答:立即停止写入操作,检查是否有最近的快照或rsync增量备份;若使用LVM快照或存储快照,优先从快照恢复到临时路径并校验;若只有逻辑备份,用scp或rsync快速回滚并修正权限,然后重载服务。若没有备份,尝试用extundelete等工具仅对ext系文件系统应急恢复,但成功率有限。
11.
常见问:日常如何降低站群故障恢复时间(RTO)?
- 答:制定并演练SOP(包含上面步骤),实现自动化备份与脚本化恢复(eg. ansible playbooks)、多机房部署与DNS快速切换、使用CDN与流量清洗、建立异地热备节点并定期演练切换流程,确保恢复时能在最短时间内自动或半自动完成切换。
来源:香港站群服务器维护常见故障与快速恢复的实战流程