确认权限:确保能使用控制台或拥有账号,能通过SSH以root或sudo用户登录。
检查控制台:登录阿里云控制台,确认实例处于Running,弹性公网IP(EIP)或安全组端口(22/80/443等)已开放。
本地工具:准备ssh、nc/telnet、curl、ping、traceroute等调试工具。
1) 控制台登录:尝试阿里云控制台的“远程连接(VNC/控制台)”。
2) 检查安全组:控制台 -> 实例 -> 安全组,确认入方向22端口允许你的IP。
3) 网络连通:本地执行:ping 公网IP;nc -vz IP 22 或 telnet IP 22。
4) 若无法连通,查看实例内网、路由表和EIP绑定是否异常。
检测磁盘:df -h | column -t;查看大文件:du -ahx / | sort -rh | head -n 30。
清理日志:检查/var/log,针对大日志执行:truncate -s 0 /var/log/large.log。
若分区满可临时扩容:阿里云控制台扩容云盘后,在实例执行:sudo growpart /dev/vda 1 && sudo resize2fs /dev/vda1(视文件系统与设备名而定)。
检测:top 或 htop,free -m,vmstat 1 5 查看波动。
添加swap(临时缓解):sudo fallocate -l 2G /swapfile || sudo dd if=/dev/zero of=/swapfile bs=1M count=2048;sudo chmod 600 /swapfile;sudo mkswap /swapfile;sudo swapon /swapfile;并将其写入/etc/fstab:/swapfile swap swap defaults 0 0。
查看状态:sudo systemctl status nginx;日志:sudo journalctl -u nginx -n 200。
简单自动化重启脚本(放在/usr/local/bin/check_service.sh,加入crontab):#!/bin/bash
SERV=nginx
if ! systemctl is-active --quiet $SERV; then
systemctl restart $SERV
echo "$(date): restarted $SERV" >> /var/log/service_watch.log
fi
保存后 sudo chmod +x /usr/local/bin/check_service.sh,并在crontab中添加*/5 * * * * /usr/local/bin/check_service.sh。
本机防火墙:sudo iptables -L -n 或 sudo nft list ruleset;临时放行端口:sudo iptables -I INPUT -p tcp --dport 22 -j ACCEPT(持久化视发行版用iptables-persistent或firewalld)。
阿里云侧:在控制台检查安全组规则与VPC子网路由,确保网关、NAT网关与弹性IP配置正确。
使用logrotate:在/etc/logrotate.d/添加应用配置,例如:
/var/log/myapp/*.log {
daily
rotate 14
compress
missingok
notifempty
copytruncate
}
集中采集可以部署Filebeat或fluentd将日志推送到ELK/阿里云日志服务,减少单机磁盘压力。
将下列脚本保存为/opt/health_check.sh并chmod +x:#!/bin/bash
echo "===DISK==="; df -h /
echo "===MEM==="; free -m
echo "===LOAD==="; uptime
echo "===NGINX==="; systemctl is-active nginx || echo "nginx down"
echo "===PORTS==="; ss -tuln | egrep ":22|:80|:443"
可通过crontab每5分钟运行并将输出邮件或写入日志。
答:先用控制台的远程终端登录实例,确认网卡与路由:ip addr show && ip route show;检查安全组与VPC的路由表是否误改;在实例内尝试ping内网网关和外网DNS(如8.8.8.8、114.114.114.114);若只有公网不可达,检查EIP是否解绑或安全组限流,必要时在控制台重启实例。
答:快速腾出空间:删除/var/log中的旧日志(truncate或rm),清理包缓存(Debian/Ubuntu:sudo apt-get clean;CentOS:sudo yum clean all),移动大文件到临时挂载或扩容云盘并在线扩展文件系统;确认服务状态并重启所需服务,之后调整logrotate防止复发。
答:推荐组合:1) 健康检查脚本 + crontab 自动重启关键服务;2) systemd servicewatch 或使用supervisor管理进程;3) logrotate + 集中日志(Filebeat/Fluentd); 4) 简单告警:通过邮件或Webhook将健康脚本输出通知到钉钉/企业微信;5) 使用阿里云监控与自动化运维(AIOps)规则做弹性伸缩与告警。将上述脚本纳入版本管理并在配置管理工具(Ansible)中统一部署,可大幅提升恢复效率。