为什么 EC2 Linux 实例会自行重启?

1 分钟阅读
0

为什么 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 路径下,具体取决于您的操作系统发行版。

如果实例未通过状态检查,您可以重启实例,使用控制台输出来检索系统日志。查看控制台输出日志,排查问题。有关更多信息,请参阅检索系统日志

  1. 打开 Amazon EC2 控制台
  2. 选择实例,然后选择您的实例。
  3. 选择实例状态重启实例。重启实例可能需要几分钟。
  4. 验证问题是否仍然存在。在某些情况下,重启可能会解决问题。
  5. 实例处于运行状态时,选择操作监控和故障排除获取系统日志
  6. 查看屏幕上显示的日志。在诊断基于 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 事件历史记录中。查看这些事件:

  1. 打开 AWS CloudTrail 控制台
  2. 选择事件历史记录
  3. 从筛选条件下拉列表中选择事件名称,然后输入 RebootInstances

**注意:**您可以创建 Amazon CloudWatch 警报,如果实例遇到潜在硬件问题而重启,该警报会自动将其恢复。有关如何设置 CloudWatch 警报的信息,请参阅恢复实例

相关信息

通过故障状态检查来排查实例问题

状态检查类型

AWS 官方
AWS 官方已更新 1 年前