为什么我的 EC2 实例自行重启?
上次更新日期:2022 年 11 月 9 日
为什么我的 Amazon Elastic Compute Cloud(Amazon EC2)实例意外重启?
简短描述
尽管很少发生意外重启,但是有几种原因可能会导致这些情况的发生。以下是最常见的原因:
- 实例的一项或两项状态检查失败。
- 托管您的实例的底层硬件出现故障,Amazon EC2 重启了该实例,以将其移至新的运行状况良好的硬件。
- 您的实例上发生了要求重启的计划维护。
- 服务器内部的用户或应用程序重启了实例。
- 内核错误。如果遇到内核错误,请确保内核已完全更新。
要更新内核,请运行以下命令之一或类似命令,具体取决于您的 Linux 操作系统和版本:- sudo yum update kernel
- sudo zypper up kernel-default
- sudo apt upgrade linux-image-aws
解决方法
您可以执行多项操作来确定实例重启的原因:
查看状态检查
从控制台或 AWS 命令行界面 (AWS CLI) 查看实例的状态检查。如果指示状态检查失败,请参阅为什么我的 EC2 Linux 实例无法访问,并且一项或多项状态检查失败?
注意:如果在运行 AWS CLI 命令时遇到错误,请确保您使用的是最新版本的 AWS CLI。
查看系统日志
如果实例的状态检查未失败,则实例可能因操作系统级问题进行了重启。查看系统日志以确定发生了哪些错误。系统日志位于 /var/log/messages 或 /var/log/syslog 中,具体取决于您的操作系统发行版。
如果实例未通过状态检查,您可以使用控制台输出重启实例以检索系统日志。查看控制台输出日志以排查您的问题。有关更多信息,请参阅检索系统日志。
查看重启历史记录
使用以下命令确定服务器内的用户或应用程序是否启动了重启:
# grep reboot /home/*/.bash_history
# grep reboot /root/.bash_history
# history | grep -i reboot
# history | grep -i init
# last reboot
查看 AWS CloudTrail 事件历史记录
从 Amazon EC2 控制台或通过 AWS CLI 启动的实例重启将显示在 CloudTrail 事件历史记录中。要查看这些事件:
- 打开 AWS CloudTrail 控制台。
- 选择事件历史记录。
- 从筛选条件下拉列表中选择事件名称,然后输入 RebootInstances。
注意:您可以创建 Amazon CloudWatch 告警,以自动恢复遇到导致重启的底层硬件问题的实例。有关如何设置 CloudWatch 告警的信息,请参阅恢复您的实例。