创建 CPU 使用率告警 - Amazon CloudWatch

创建 CPU 使用率告警

您可以创建在告警状态从 OK(正常)变为 ALARM(告警)时使用 Amazon SNS 发送通知的 CloudWatch 告警。

在 EC2 实例的平均 CPU 使用率在指定的连续评估期内超出指定的阈值时,告警将变为 ALARM(告警)状态。

使用 AWS Management Console 设置 CPU 使用率告警

可以执行以下步骤以使用 AWS Management Console创建 CPU 使用率警报。

根据 CPU 利用率创建警报
  1. 访问 https://console.aws.amazon.com/cloudwatch/,打开 CloudWatch 控制台。

  2. 在导航窗格中,依次选择 Alarms(告警)和 All alarms(所有告警)。

  3. 选择创建警报

  4. 选择选择指标

  5. All metrics(所有指标)选项卡中,选择 EC2 metrics(EC2 指标)

  6. 选择一个指标类别(例如,Per-Instance Metrics(每个实例的指标))。

  7. 找到您希望在 InstanceId(实例 ID)列和 Metric Name(指标名称)中的 CPUUtilization(CPU 使用率)中列出的实例所在的行。选中此行旁边的复选框,然后选择 Select metric(选择指标)

  8. Specify metric and conditions(指定指标和条件)下,对于 Statistic(统计数据),选择 Average(平均值),然后选择一个预定义百分位数,或指定自定义百分位数(例如 p95.45)。

  9. 选择时间段(例如 5 minutes)。

  10. 条件下面,指定以下内容:

    1. 对于 Threshold type(阈值类型),选择 Static(静态)

    2. 对于 Whenever CPUUtilization is(每当 CPU 利用率),指定 Greater(大)。在 than...(于...)下,指定在 CPU 使用率超过此百分比时触发告警进入“ALARM(告警)”状态的阈值。例如,70。

    3. 选择其他配置。对于触发警报的数据点数,指定必须有多少个评估期(数据点)处于 ALARM 状态才能触发警报。如果此处的两个值匹配,则会创建一个告警;如果多个连续评估期违例,该告警将变为 ALARM(告警)状态。

      要创建“M(最大为 N)”告警,为第一个值指定的数字应小于为第二个值指定的数字。有关更多信息,请参阅 评估告警

    4. 对于缺失数据处理,选择在缺失某些数据点时的警报行为。有关更多信息,请参阅 配置 CloudWatch 告警处理缺失数据的方式

    5. 如果警报将百分比值作为监控的统计数据,将显示样本数少的百分比框。使用它来选择是评估还是忽略采样率低的案例。如果选择忽略 (保持警报状态),在样本大小太小时,将始终保持当前警报状态。有关更多信息,请参阅 基于百分位数的 CloudWatch 告警和小数据样本

  11. 选择下一步

  12. Notification(通知)下,选择 In alarm(处于告警中),并选择当告警处于 ALARM 状态时要通知的 SNS 主题

    要使告警为相同告警状态或不同告警状态发送多个通知,请选择添加通知

    要让警报不发送通知,请选择删除

  13. 在完成后,选择下一步

  14. 输入警报的名称和说明。然后选择下一步

    名称必须仅包含 UTF-8 字符,并且不能包含 ASCII 控制字符。描述可以包含 Markdown 格式,该格式仅在 CloudWatch 控制台的警报详细信息选项卡中显示。Markdown 非常适合用于向运行手册或其他内部资源添加链接。

  15. Preview and create 下面,确认具有所需的信息和条件,然后选择 Create alarm

使用 AWS CLI 设置 CPU 使用率告警

可以执行以下步骤以使用 AWS CLI创建 CPU 使用率警报。

根据 CPU 利用率创建警报
  1. 设置 SNS 主题。有关更多信息,请参阅 设置 Amazon SNS 通知

  2. 使用 put-metric-alarm 命令创建告警,如下所示。

    aws cloudwatch put-metric-alarm --alarm-name cpu-mon --alarm-description "Alarm when CPU exceeds 70%" --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average --period 300 --threshold 70 --comparison-operator GreaterThanThreshold --dimensions Name=InstanceId,Value=i-12345678 --evaluation-periods 2 --alarm-actions arn:aws:sns:us-east-1:111122223333:my-topic --unit Percent
  3. 通过使用 set-alarm-state 命令强制更改警报状态来测试警报。

    1. 将告警状态从 INSUFFICIENT_DATA(数据不足)更改为 OK(正常)。

      aws cloudwatch set-alarm-state --alarm-name cpu-mon --state-reason "initializing" --state-value OK
    2. 将告警状态从 OK(正常)更改为 ALARM(告警)。

      aws cloudwatch set-alarm-state --alarm-name cpu-mon --state-reason "initializing" --state-value ALARM
    3. 检查您是否收到有关告警的电子邮件通知。