Amazon Elastic Compute Cloud
Windows 实例用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

实例的状态检查

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

状态检查每分钟进行一次,会返回一个通过或失败状态。如果所有的检查都通过,则实例的整体状态是OK。如果有一个或多个检查故障,则整体状态为受损。状态检查是内置到 Amazon EC2 中的,所以不能禁用或删除。

当状态检查失败时,状态检查的相应 CloudWatch 指标将增加。有关更多信息,请参阅状态检查指标。您可以使用这些指标创建基于状态检查结果触发的 CloudWatch 警报。例如,您可以创建一个警报来提醒您在一个指定实例上的状态检查中返回了故障状态。有关更多信息,请参阅创建和编辑状态检查警报

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

状态检查的类型

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

系统状态检查

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

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

  • 网络连接丢失

  • 系统电源损耗

  • 物理主机上的软件问题

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

实例状态检查

监控您的各个实例的软件和网络配置。Amazon EC2 通过向网络接口 (NIC) 发送地址解析协议 (ARP) 请求,检查实例的运行状况。这些检查检测需要您参与修复的问题。如果实例状态检查失败,通常必须由您自行解决问题(例如,重启实例或更改实例配置)。

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

  • 系统状态检查故障

  • 网络或启动配置不正确

  • 内存耗尽

  • 文件系统损坏

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

查看状态检查

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

使用控制台查看状态

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

查看状态检查(控制台)

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

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

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

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

    
                                查看状态

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

  5. 要查看状态检查的 CloudWatch 指标,选择实例,然后选择 Monitoring (监控) 选项卡。滚动,直到您看到以下指标的图表:

    • Status Check Failed (Any) (状态检查失败(任意))

    • Status Check Failed (Instance) (状态检查失败(实例))

    • Status Check Failed (System) (状态检查失败(系统))

使用命令行查看状态

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

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

aws ec2 describe-instance-status

要获取实例状态为 impaired 的所有实例的状态,请使用以下命令。

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

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

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

或者,使用以下命令:

报告实例状态

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

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

使用控制台报告状态反馈

报告实例状态(控制台)

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

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

  3. 选择实例,选择 Status Checks (状态检查) 选项卡,然后选择 Submit feedback (提交反馈)

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

使用命令行报告状态反馈

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

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

或者,使用以下命令:

创建和编辑状态检查警报

您可以使用状态检查指标创建 CloudWatch 警报,以在实例的状态检查失败时向您发送通知。

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

使用以下过程配置一个警报,当实例的状态检查失败时,该警报将通过电子邮件向您发送通知,或者停止、终止或恢复实例。

创建状态检查警报(控制台)

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

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

  3. 选择实例,选择 Status Checks (状态检查) 选项卡,然后选择 Create Status Check Alarm (创建状态检查警报)

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

  5. (可选)选择 Take the action (请执行以下操作),然后选择要采取的操作。

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

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

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

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

  9. 选择 Create Alarm

    重要

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

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

使用控制台编辑状态检查警报

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

  2. 在导航窗格中,选择 Instances (实例)

  3. 选择实例,然后依次选择 Actions (操作)CloudWatch Monitoring (CloudWatch 监控)Add/Edit Alarms (添加/编辑警报)

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

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

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

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

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

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

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

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

    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

    周期为收集 Amazon CloudWatch 指标所需的时间范围(以秒为单位)。此示例使用 300,这是 60 秒乘以 5 分钟得到的结果。评估期是必须将指标数值与阈值相比较的连续周期数。此示例使用 2。警报操作是要在此警报触发时执行的操作。此示例将此警报配置为使用 Amazon SNS 发送电子邮件。