为什么 Amazon Elastic Compute Cloud(Amazon EC2)Linux 实例会意外重启?
简短描述
尽管很少发生意外重启,但是有几种原因可能会导致这种情况的发生。以下是最常见的原因:
- 实例未通过一项或两项状态检查。
- 托管您的实例的底层硬件出现故障,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 路径下,具体取决于您的操作系统发行版。
如果实例未通过状态检查,您可以重启实例,使用控制台输出来检索系统日志。查看控制台输出日志,排查问题。有关更多信息,请参阅检索系统日志。
- 打开 Amazon EC2 控制台。
- 选择实例,然后选择您的实例。
- 选择实例状态、重启实例。重启实例可能需要几分钟。
- 验证问题是否仍然存在。在某些情况下,重启可能会解决问题。
- 实例处于运行状态时,选择操作、监控和故障排除、获取系统日志。
- 查看屏幕上显示的日志。在诊断基于 Linux 的实例的系统日志错误中,查找日志中列出的错误,以获取解决方法信息。
查看重启历史记录
使用以下命令,确定用户或服务器内部的应用程序是否发起了重启:
# 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 警报的信息,请参阅恢复实例。
相关信息
通过故障状态检查来排查实例问题
状态检查类型