Create a CloudWatch alarm based on anomaly detection
您可以根据 CloudWatch 异常值检测来创建警报,该检测可以分析过去的指标数据并创建预期值模型。预期值会考虑指标中的典型每小时、每日和每周模式。
您需要为异常值检测阈值设置一个值,然后 CloudWatch 会在模型中使用该阈值来确定指标值的“正常”范围。阈值越高,所产生的“正常”值的范围越大。
您可以选择当指标值高于预期值范围、低于预期值范围,或出现二者情况之一时是否触发告警。
您还可以针对单个指标和指标数学表达式的输出创建异常值检测警报。您可以使用这些表达式来创建能可视化异常检测范围的图表。
在设置为 CloudWatch 跨账户可观测性的账户中,除了监控账户中的指标外,您还可以在源账户的指标中创建异常检测器。
有关更多信息,请参阅 使用 CloudWatch 异常值检测。
注意
如果您已在指标控制台中出于可视化目的对某个指标使用异常值检测,并针对该指标创建了异常值检测警报,那么您为该警报设置的阈值不会更改您为可视化设置的阈值。有关更多信息,请参阅 创建图表。
根据异常值检测创建警报
-
访问 https://console.aws.amazon.com/cloudwatch/
,打开 CloudWatch 控制台。 -
在导航窗格中,依次选择 Alarms(警报)和 All alarms(所有警报)。
-
选择创建警报。
-
选择 Select Metric(选择指标)。
-
请执行以下操作之一:
-
选择包含您的指标的服务命名空间,然后继续选择相应选项,因为这些选项看起来会缩小您的选项范围。在显示指标列表时,选中您的指标旁边的复选框。
-
在搜索框中,输入指标名称、维度或资源 ID。选择其中的一个结果,然后继续在选项显示时选择它们,直到显示指标列表为止。选中您的指标旁边的复选框。
-
-
选择绘制的指标。
-
(可选)对于统计数据,选择下拉列表,然后选择一个预定义的统计数据或百分位数。您可以使用下拉列表中的搜索框指定自定义百分位数,如
p95.45。 -
(可选)对于周期,选择下拉列表,然后选择一个预定义的评估周期。
注意
当 CloudWatch 评估您的告警时,它会将该周期汇总为单个数据点。对于异常值检测警报,评估周期必须为一分钟或更长时间。
-
-
选择下一步。
-
在条件下面,指定以下内容:
-
选择异常值检测。
如果针对该指标和统计数据的模型已存在,CloudWatch 会在屏幕顶部的图表中显示异常值检测范围的预览。创建警报后,最多可能需要 15 分钟,实际的异常值检测范围才会出现在图表中。在此之前,您看到的区间是异常值检测范围的近似值。
提示
要在更长的时间范围内查看屏幕顶部的图表,请选择屏幕右上方的 Edit(编辑)。
如果针对该指标和统计数据的模型不存在,CloudWatch 会在您完成警报创建后生成异常值检测范围。对于新模型,最多可能需要 3 小时,实际的异常检测值区间才会出现在图表中。新模型的训练可能需要两周时间,因此异常值检测区间会显示出更准确的预期值。
-
对于 Whenever
metricis(每当指标为),指定何时触发告警。例如,每当指标大于、小于或超出范围(在任一方向)。 -
对于异常值检测阈值,选择用于异常值检测阈值的数字。数字越大,创建的“正常”值的范围就越大,也更能容忍指标变化。数字越小,创建的范围就越小,它将以较小的指标偏差进入
ALARM状态。数字不一定是整数。 -
选择其他配置。对于触发警报的数据点数,指定必须有多少个评估期(数据点)处于
ALARM状态才能触发警报。如果此处的两个值匹配,则会创建一个告警;如果多个连续评估期违例,该告警将变为ALARM(告警)状态。要创建“M(最大为 N)”告警,为第一个值指定的数字应小于为第二个值指定的数字。有关更多信息,请参阅 评估告警。
-
对于 Missing data treatment(缺失数据处理),选择在缺失某些数据点时的告警行为。有关更多信息,请参阅 配置 CloudWatch 告警处理缺失数据的方式。
-
如果警报将百分比值作为监控的统计数据,将显示样本数少的百分比框。使用它来选择是评估还是忽略采样率低的案例。如果选择 Ignore(maintain alarm state)(忽略(保持警报状态)),在样本大小太小时,将始终保持当前警报状态。有关更多信息,请参阅 基于百分位数的 CloudWatch 告警和小数据样本。
-
-
选择下一步。
-
在通知下面,选择一个在警报处于
ALARM、OK或INSUFFICIENT_DATA状态时通知的 SNS 主题。要为相同告警状态或不同告警状态发送多个通知,请选择 Add notification(添加通知)。
如果不想告警发送通知,请选择 Remove(移除)。
-
您可以将警报设置为在发生状态更改时执行 EC2 操作或调用 Lambda 函数,或在进入 ALARM 状态时创建 Systems Manager OpsItem 或事件。为此,请选择相应的按钮,然后选择警报状态和要执行的操作。
如果您选择 Lambda 函数作为警报操作,则需要指定函数名称或 ARN,并且可以选择该函数的特定版本。
有关 Systems Manager 操作的更多信息,请参阅将 CloudWatch 配置为通过告警创建 OpsItems 和事件创建。
注意
要创建执行 AWS Systems Manager Incident Manager 操作的警报,您必须具有特定的权限。有关更多信息,请参阅 AWS Systems Manager Incident Manager 的基于身份的策略示例。
-
选择下一步。
-
在名称和描述下,输入警报的名称和描述,然后选择下一步。名称必须仅包含 UTF-8 字符,并且不能包含 ASCII 控制字符。描述可以包含 Markdown 格式,该格式仅在 CloudWatch 控制台的警报详细信息选项卡中显示。Markdown 非常适合用于向运行手册或其他内部资源添加链接。
提示
告警名称必须仅包含 UTF-8 字符,并且不能包含 ASCII 控制字符
-
在预览和创建下,确认警报的信息和条件正确,然后选择创建警报。
编辑异常值检测模型
创建警报后,即可调整异常值检测模型。您可以排除某些时间段,不在创建模型时使用。从训练数据中排除系统中断、部署和假日等异常事件至关重要。您还可以指定是否针对夏令时更改调整模型。
针对警报编辑异常值检测模型
访问 https://console.aws.amazon.com/cloudwatch/
,打开 CloudWatch 控制台。 -
在导航窗格中,依次选择 Alarms(警报)和 All alarms(所有警报)。
-
选择警报的名称。如有必要,请使用搜索框来查找警报。
-
选择查看,然后选择在指标中。
-
在详细信息列中,选择 ANOMALY_DETECTION_BAND 关键字,然后在弹出窗口中选择编辑异常值检测模型。
-
要排除用于生成模型的时间段,请按结束日期选择日历图标。然后,选择或输入要从训练中排除的天数和时间,并选择 Apply(应用)。
-
如果指标需要区分夏令时更改,请在 Metric timezone(指标时区)框中选择相应的时区。
-
选择 Update(更新)。
删除异常值检测模型
对警报使用异常值检测会产生费用。作为最佳实践,如果警报不再需要异常值检测模型,请先删除警报,然后删除模型。评估异常值检测警报时,系统将代表您创建任何缺失的异常值检测器。如果您删除模型而不删除告警,则告警会自动重新创建模型。
删除警报
访问 https://console.aws.amazon.com/cloudwatch/
,打开 CloudWatch 控制台。 -
在导航窗格中,依次选择 Alarms(告警)和 All alarms(所有告警)。
-
选择警报的名称。
-
依次选择 Actions(操作)和 Delete(删除)。
-
在确认框中,选择删除。
删除曾用于警报的异常值检测模型
通过 https://console.aws.amazon.com/cloudwatch/
打开 CloudWatch 控制台。 -
在导航窗格中,选择 Metrics(指标),然后选择 All metrics(所有指标)。
-
选择浏览,然后选择包含异常值检测模型的指标。您可以在搜索框中搜索您的指标,也可以通过选择选项来选择您的指标。
-
(可选)如果要使用原始界面,请选择所有指标,然后选择包含异常值检测模型的指标。您可以在搜索框中搜索您的指标,也可以通过选择选项来选择您的指标。
-
-
选择 Graphed metrics(绘制的指标)。
-
在绘成图表的指标选项卡的详细信息列中,选择 ANOMALY_DETECTION_BAND 关键字,然后在弹出窗口中选择删除异常值检测模型。
-
(可选)如果要使用原始界面,请选择 Edit model(编辑模型)。系统会将您定向到新屏幕。在新屏幕上,选择 Delete model(删除模型),然后选择 Delete(删除)。
-