Amazon Elastic Compute Cloud
Windows 实例用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

实例的状态检查

使用实例状态监控,您可以快速确定 Amazon EC2 是否已经检测到可能阻止您的实例运行应用程序的任何问题。Amazon EC2 将对运行的所有 EC2 实例执行自动检查以识别硬件和软件问题。您可以通过查看这些状态检查的结果来识别指定的和可检测的问题。这些数据扩充了 Amazon EC2 已提供的有关每个实例的预期状态 (如 pendingrunningstopping) 的信息以及 Amazon CloudWatch 监控的利用率指标 (CPU 利用率、网络流量和磁盘活动)。

状态检查每分钟进行一次并且每次都会返回一个通过或失败状态。如果所有的检查都通过,则实例的整体状态是OK。如果有一个或多个检查故障,则整体状态为受损。状态检查是内置到 Amazon EC2 中的,所以不能禁用或删除。但是,您可以创建或删除基于状态检查结果触发的警报。例如,您可以创建一个警报来提醒您在一个指定实例上的状态检查中返回了故障状态。有关更多信息,请参阅 创建和编辑状态检查警报

您也可以创建 Amazon CloudWatch 警报,用于监控 Amazon EC2 实例并在实例由于潜在问题而受损时自动恢复实例。有关更多信息,请参阅 恢复您的实例

状态检查的类型

状态检查可分为两种类型:系统状态检查和实例状态检查。

系统状态检查

监控您的实例在其上运行的 AWS 系统。这些检查会检测出需要 AWS 参与修复的深层实例问题。如果系统状态检查失败,您可以选择等待 AWS 修复问题,也可以自行解决问题。对于由 Amazon EBS 支持的实例,您也可自行停止并启动实例,在大多数情况下,这会将实例迁移至新的主计算机。对于由实例存储支持的实例,您可以终止并替换实例。

以下是可能导致系统状态检查失败的问题的示例:

  • 网络连接丢失

  • 系统电源损耗

  • 物理主机上的软件问题

  • 物理主机上影响到网络连接状态的硬件问题

实例状态检查

监控您的各个实例的软件和网络配置。这些检查检测需要您参与修复的问题。如果实例状态检查失败,一般需要您自行解决问题 (例如,重启实例或更改实例配置)。

以下是可能导致实例状态检查失败的问题的示例:

  • 系统状态检查故障

  • 网络或启动配置不正确

  • 内存耗尽

  • 文件系统损坏

  • 在实例重启期间或在一个 Windows 实例存储支持的实例正在进行捆绑时进行的状态检查将报告实例状态检查失败,直到该实例变得再次可用。

查看状态检查

Amazon EC2 为您提供了多种查看和使用状态检查的方法。

使用控制台查看状态

您可使用 AWS 管理控制台查看状态检查。

使用控制台查看状态检查

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Instances

  3. Instances 页面上,Status Checks (状态检查) 列中列出每个实例的运行状态。

  4. 要查看特定实例的状态,请选择该实例,然后选择 Status Checks 选项卡。

    查看状态
  5. 如果您有一个实例出现过状态检查失败的情况,并且该实例无法访问的时间已超 20 分钟,请选择 AWS Support 提交帮助请求。

使用命令行或 API 查看状态

您可以使用 describe-instance-status (AWS CLI) 命令查看正在运行的实例的状态检查。

要查看所有实例的状态,请使用以下命令:

Copy
aws ec2 describe-instance-status

获取实例状态为 impaired 的所有实例的状态:

Copy
aws ec2 describe-instance-status --filters Name=instance-status.status,Values=impaired

要获取单一实例的状态,请使用以下命令:

Copy
aws ec2 describe-instance-status --instance-ids i-1234567890abcdef0

或者,使用以下命令:

报告实例状态

如果您的实例出现了问题但其状态并未显示为受损,或者您想要向 AWS 发送有关您遇到的受损实例相关问题的详细信息,可提供反馈。

我们利用报告的反馈来识别影响到多数客户的问题,但不会对单独的账户问题做出回应。提供反馈并不会改变您当前看到的实例状态检查结果。

使用控制台报告状态反馈

使用控制台报告实例状态

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Instances

  3. 选择实例。

  4. 选择 Status Checks 选项卡,然后选择 Submit feedback

  5. 填写 Report Instance Status 表单,然后选择 Submit

使用命令行或 API 报告状态反馈

使用以下 report-instance-status (AWS CLI) 命令发送有关受损实例状态的反馈:

Copy
aws ec2 report-instance-status --instances i-1234567890abcdef0 --status impaired --reason-codes code

或者,使用以下命令:

创建和编辑状态检查警报

您可以创建实例状态和系统状态警报,以在实例的状态检查失败时向您发出通知。

使用控制台创建状态检查警报

您可以为现有实例创建状态检查警报,以监视实例状态或系统状态。您可以将警报配置为,当实例状态检查或系统状态检查失败时,通过电子邮件向您发出通知或停止、终止或恢复实例。

要创建状态检查警报

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Instances

  3. 选择实例。

  4. 选择 Status Checks 选项卡,然后选择 Create Status Check Alarm

  5. 选择 Send a notification to。选择一个现有 SNS 主题,或单击 create topic 以创建新的主题。如果要创建新的主题,请在 With these recipients 中,输入您的电子邮件地址以及任何其他收件人的地址,中间用逗号隔开。

  6. (可选) 选择 Take the action,然后选择要采取的操作。

  7. Whenever 中,选择想要获得通知的状态检查。

    注意

    如果您在上一步中选择的是 Recover this instance,则请选择 Status Check Failed (System)

  8. For at least 中,设置所需的评估期间数量,然后在 consecutive periods 中,选择评估期间持续时间,此评估期间结束后才会触发警报并发送电子邮件。

  9. (可选) 在 Name of alarm 中,将警报的默认名称替换为其他名称。

  10. 选择 Create Alarm

    重要

    如果您向收件人列表添加了电子邮件地址或创建了新的主题,则 Amazon SNS 将向每个新地址发送一封订阅确认电子邮件。每个收件人必须通过单击该邮件中包含的链接来确认订阅。警报通知仅发送至经过确认的地址。

在您需要更改实例状态警报时,您可以对其进行编辑。

要编辑状态检查警报

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Instances

  3. 选择实例,选择 Actions,选择 CloudWatch Monitoring,然后选择 Add/Edit Alarms

  4. Alarm Details 对话框中,选择警报的名称。

  5. Edit Alarm 对话框中,进行所需更改,然后选择 Save

使用 AWS CLI 创建状态检查警报

在以下示例中,当实例的实例检查或系统状态检查在至少两个期间连续失败后,警报将向 SNS 主题 arn:aws-cn:sns:us-west-2:111122223333:my-sns-topic 发送通知。指标为 StatusCheckFailed

要使用 CLI 创建状态检查警报

  1. 选择一个现有 SNS 主题或创建一个新的主题。有关更多信息,请参阅 AWS Command Line Interface 用户指南 中的 将 Amazon SNS 与 AWS CLI 结合使用

  2. 使用以下 list-metrics 命令查看 Amazon EC2 的可用 Amazon CloudWatch 指标:

    Copy
    aws cloudwatch list-metrics --namespace AWS/EC2
  3. 使用以下 put-metric-alarm 命令创建警报:

    Copy
    aws cloudwatch put-metric-alarm --alarm-name StatusCheckFailed-Alarm-for-i-1234567890abcdef0 --metric-name StatusCheckFailed --namespace AWS/EC2 --statistic Maximum --dimensions Name=InstanceId,Value=i-1234567890abcdef0 --unit Count --period 300 --evaluation-periods 2 --threshold 1 --comparison-operator GreaterThanOrEqualToThreshold --alarm-actions arn:aws-cn:sns:us-west-2:111122223333:my-sns-topic

    注意

    • --period 是收集 Amazon CloudWatch 指标的时间范围 (秒)。此示例使用 300,这是 60 秒乘以 5 分钟得到的结果。

    • --evaluation-periods 是必须将指标数值与阈值相比较的连续周期数。此示例使用 2。

    • --alarm-actions 是要在此警报触发时执行的操作的列表。每个操作都被指定为一个Amazon 资源名称 (ARN)。此示例将此警报配置为使用 Amazon SNS 发送电子邮件。