根据异常检测创建 CloudWatch 告警 - Amazon CloudWatch

根据异常检测创建 CloudWatch 告警

您可以根据 CloudWatch 异常检测来创建告警,该异常检测可以分析过去的指标数据并创建预期值模型。预期值会考虑指标中的典型每小时、每日和每周模式。

您需要为异常检测阈值设置一个值,然后 CloudWatch 在模型中使用该阈值来确定指标值的“正常”范围。阈值越高,所产生的“正常”值的范围越大。

您可以选择当指标值高于预期值范围、低于预期值范围,或出现二者情况之一时是否触发告警。

您还可以针对单个指标和指标数学表达式的输出创建异常检测告警。您可以使用这些表达式来创建能可视化异常检测范围的图表。

在设置为 CloudWatch 跨账户可观测性的账户中,除了监控账户中的指标外,您还可以在源账户的指标中创建异常检测器。

有关更多信息,请参阅 使用 CloudWatch 异常检测

注意

如果您出于可视化目的已在 Metrics(指标)控制台中对某个指标使用了异常检测,并针对该指标创建了异常检测告警,则您为该告警设置的阈值不会更改您为可视化设置的阈值。有关更多信息,请参阅 创建图表

创建基于异常检测的告警
  1. 访问 https://console.aws.amazon.com/cloudwatch/,打开 CloudWatch 控制台。

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

  3. 选择创建警报

  4. 选择 Select Metric(选择指标)

  5. 请执行以下操作之一:

    • 选择包含您的指标的服务命名空间,然后继续选择相应选项,因为这些选项看起来会缩小您的选项范围。在显示指标列表时,选中您的指标旁边的复选框。

    • 在搜索框中,输入指标名称、维度或资源 ID。选择其中的一个结果,然后继续在选项显示时选择它们,直到显示指标列表为止。选中您的指标旁边的复选框。

  6. 选择绘制的指标

    1. (可选)对于统计数据,选择下拉列表,然后选择一个预定义的统计数据或百分位数。您可以使用下拉列表中的搜索框指定自定义百分位数,如 p95.45

    2. (可选)对于周期,选择下拉列表,然后选择一个预定义的评估周期。

      注意

      当 CloudWatch 评估您的告警时,它会将该周期汇总为单个数据点。对于异常检测告警,评估周期必须是一分钟或更长时间。

  7. 选择下一步

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

    1. 选择 Anomaly detection(异常检测)

      如果针对此指标和统计数据的模型已存在,则 CloudWatch 在屏幕顶部的图中显示异常检测范围的预览。创建警报后,实际异常检测范围出现在图中可能需要 15 分钟。在此之前,您看到的范围是异常检测范围的近似值。

      提示

      要在更长的时间范围内查看屏幕顶部的图表,请选择屏幕右上方的 Edit(编辑)。

      如果此指标和统计的模型不存在,CloudWatch 在您完成创建警报后生成异常检测范围。对于新模型,实际异常检测范围出现在图表中可能需要 3 个小时。新模型的训练可能需要两周时间,因此异常检测范围可以显示更准确的预期值。

    2. 对于 Whenever metric is(每当指标为),指定何时触发告警。例如,每当指标大于、小于或超出范围(在任一方向)。

    3. 对于 Anomaly detection threshold(异常检测阈值),选择用于异常检测阈值的数字。数字越大,创建的“正常”值的范围就越大,也更能容忍指标变化。数字越小,创建的范围就越小,它将以较小的指标偏差进入 ALARM 状态。数字不一定是整数。

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

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

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

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

  9. 选择下一步

  10. 通知下面,选择一个在警报处于 ALARMOKINSUFFICIENT_DATA 状态时通知的 SNS 主题。

    要为相同告警状态或不同告警状态发送多个通知,请选择 Add notification(添加通知)。

    如果不想告警发送通知,请选择 Remove(移除)。

  11. 您可以将警报设置为在发生状态更改时执行 EC2 操作或调用 Lambda 函数,或在进入 ALARM 状态时创建 Systems Manager OpsItem 或事件。为此,请选择相应的按钮,然后选择警报状态和要执行的操作。

    如果您选择 Lambda 函数作为警报操作,则需要指定函数名称或 ARN,并且可以选择该函数的特定版本。

    有关 Systems Manager 操作的更多信息,请参阅将 CloudWatch 配置为通过告警创建 OpsItems 事件创建

    注意

    要创建执行 AWS Systems Manager Incident Manager 操作的警报,您必须具有特定的权限。有关更多信息,请参阅 AWS Systems Manager Incident Manager 的基于身份的策略示例

  12. 选择下一步

  13. Name and description(名称和描述)下,输入告警的名称和描述,然后选择 Next(下一步)。名称必须仅包含 UTF-8 字符,并且不能包含 ASCII 控制字符。描述可以包含 Markdown 格式,该格式仅在 CloudWatch 控制台的警报详细信息选项卡中显示。Markdown 非常适合用于向运行手册或其他内部资源添加链接。

    提示

    告警名称必须仅包含 UTF-8 字符,并且不能包含 ASCII 控制字符

  14. Preview and create(预览和创建)下,确认告警的信息和条件正确,然后选择 Create alarm(创建告警)。

修改异常检测模型

创建告警后,可以调整异常检测模型。您可以排除某些时间段,不在创建模型时使用。从训练数据中排除系统中断、部署和假日等异常事件至关重要。您还可以指定是否针对夏令时更改调整模型。

针对告警调整异常检测模型
  1. 访问 https://console.aws.amazon.com/cloudwatch/,打开 CloudWatch 控制台。

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

  3. 选择警报的名称。如有必要,请使用搜索框来查找警报。

  4. 依次选择分析在指标中

  5. 详细信息列中,依次选择 ANOMALY_DETECTION_BAND编辑异常检测模型

  6. 要排除用于生成模型的时间段,请按结束日期选择日历图标。然后,选择或输入要从训练中排除的天数和时间,并选择 Apply(应用)。

  7. 如果指标需要区分夏令时更改,请在 Metric timezone(指标时区)框中选择相应的时区。

  8. 选择 Update(更新)

删除异常检测模型

对告警使用异常检测会产生 费用。作为最佳实践,如果警报不再需要异常检测模型,请先删除警报,然后删除模型。评估异常检测警报时,系统将代表您创建任何缺失的异常检测器。如果您删除模型而不删除告警,则告警会自动重新创建模型。

删除警报
  1. 访问 https://console.aws.amazon.com/cloudwatch/,打开 CloudWatch 控制台。

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

  3. 选择警报的名称。

  4. 依次选择 Actions(操作)Delete(删除)

  5. 在确认框中,选择删除

要删除曾用于告警的异常检测模型
  1. 访问 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

  2. 在导航窗格中,选择 Metrics(指标),然后选择 All metrics(所有指标)。

  3. 选择 Browse(浏览),然后选择包含异常检测模型的指标。您可以在搜索框中搜索您的指标,也可以通过选择选项来选择您的指标。

    • (可选)如果要使用原始界面,请选择 All metrics(所有指标),然后选择包含异常检测模型的指标。您可以在搜索框中搜索您的指标,也可以通过选择选项来选择您的指标。

  4. 选择 Graphed metrics(绘制的指标)。

  5. Graphed metrics(绘成图表的指标)选项卡中,选择要删除的异常检测模型的名称,然后选择 Delete anomaly detection model(删除异常检测模型)。

    • (可选)如果要使用原始界面,请选择 Edit model(编辑模型)。系统会将您定向到新屏幕。在新屏幕上,选择 Delete model(删除模型),然后选择 Delete(删除)。