基础设施-部署-服务器无日志宕机需强制重启
问题现象
- 访问
https://news.queding.hk/超时(TCP 连接被拒绝,TCP 握手都完不成) - SSH 登录提示
Connection closed by 120.77.218.217 port 22(sshd 还活着但 fork 不了 shell) - Ping 服务器 IP(120.77.218.217)正常(17-19ms,0% 丢包),仅 ICMP 通
- 服务器
nginx、news-backend、sshd进程均无 crash 日志,systemd journal 最后一条日志停留在 19:11 CST 后直接中断
核心问题
- 根因:阿里云 ECS 底层平台异常(最可能)
- 无 OOM Killer 记录、无 kernel panic、无 segfault
- 系统日志从 19:11 直接跳到强制重启(20:19),呈现硬断电式中断
- 纯 TCP 服务全挂(nginx :443、sshd :22、backend :8000),ICMP 仍通 → 内核协议栈半死状态
- 典型阿里云宿主机故障或实例迁移失败症状
- 服务器信息:阿里云深圳 ECS,CentOS Stream 9,1.6GB RAM,40GB 磁盘(占用 29%)
解决方法
- 登录阿里云 ECS 控制台 → 找到实例(IP 120.77.218.217)→ 强制重启
- 无法 SSH 则使用控制台 VNC 远程连接操作
- 重启后验证:
ssh news "systemctl status nginx news-backend" curl -s -o /dev/null -w '%{http_code}' https://news.queding.hk/
下次防错措施
快速定位
- 查看宕机前最后的监控快照(每分钟一条):
ssh news "cat /www/news/log/monitor/$(date +%Y%m%d).log | tail -60" - 查看 sysstat 细粒度系统数据(每 2 分钟采集):
# 内存趋势 ssh news "sar -r -f /var/log/sa/sa$(date +%d)" # 系统负载 ssh news "sar -q -f /var/log/sa/sa$(date +%d)" - 如 SSH 也连不上,直接去阿里云 ECS 控制台 VNC 登录并强制重启
已部署的预防监控
- monitor.sh:每分钟记录
MEM total/used/avail | LOAD 1/5/15min | PROC 数 | UPTIME到/www/news/log/monitor/YYYYMMDD.log,avail < 300MB 时追加 Top 5 内存进程告警,日志自动轮转保留 30 天 - sysstat:采集频率从 10 分钟提升到 2 分钟,数据存储在
/var/log/sa/,重启后可用sar回溯
流程改进
- 宕机后先查 monitor 日志确认是否内存耗尽,再决定是否应急扩容
- 在阿里云 ECS 控制台启用"实例健康监控"和宕机迁移通知(不依赖服务器自身记录)