为未能通过状态检查的 Amazon EC2 实例创建 CloudWatch 警报 - Amazon Elastic Compute Cloud

为未能通过状态检查的 Amazon EC2 实例创建 CloudWatch 警报

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

重要

如果缺少指标数据点,状态检查和状态检查警报可能会暂时进入数据不足状态。尽管很少见,但当指标报告系统出现中断时,即使实例运行正常,也会发生这种情况。我们建议您将此状态视为数据丢失,而不是状态检查失败或警报违例,尤其是在作为响应而对实例执行停止、终止、重启或恢复操作时。

要创建状态检查告警,请使用以下方法之一:

Console

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

创建状态检查警报
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

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

  3. 选择实例,选择状态检查选项卡,然后依次选择操作创建状态检查警报

  4. Manage CloudWatch alarms(管理 CloudWatch 警报)页面的 Add or edit alarm(添加或编辑警报)下,选择 Create an alarm(创建警报)。

  5. 对于警报通知,打开开关以配置 Amazon Simple Notification Service (Amazon SNS) 通知。选择现有 Amazon SNS 主题或输入名称来创建新主题。

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

  6. 对于警报操作,打开开关以指定触发警报时要执行的操作。选择操作。

  7. 对于警报阈值,请指定警报的指标和条件。

    您可以保留 Group samples by(样本分组方式)和 Type of data to sample(要采样的数据类型)的原定设置 [Average(平均值)和 Status check failed:either(状态检查失败:任一)],也可以根据自己的需求进行更改。

    Consecutive period(连续周期)中,设置要评估的周期数,然后在 Period(时间段)中输入评估时间段的持续时间,此评估时间段结束后才会触发警报并发送电子邮件。

  8. (可选)对于样本指标数据,选择添加到控制面板

  9. 选择创建

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

编辑状态检查警报
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

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

  3. 选择所需实例,然后依次选择操作监控管理 CloudWatch 警报

  4. Manage CloudWatch alarms(管理 CloudWatch 警报)页面的 Add or edit alarm(添加或编辑警报)下,选择 Edit an alarm(编辑警报)。

  5. 对于 Search for alarm(搜索警报),选择警报。

  6. 完成更改后,选择 Update(更新)。

Command line

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

使用 AWS CLI 创建状态检查警报
  1. 选择一个现有 SNS 主题或创建一个新的主题。有关更多信息,请参阅 AWS Command Line Interface 用户指南中的在您的 Amazon SNS 中使用 AWS CLI

  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:sns:us-west-2:111122223333:my-sns-topic

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