Amazon CloudWatch
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

创建 Amazon CloudWatch 警报

您可以创建监控单个指标的 CloudWatch 警报。该警报根据相对于某个阈值的指标的值在很多个时间段内执行一项或多项操作。该操作可以是 Amazon EC2 操作、Auto Scaling 操作或发送到 Amazon SNS 主题的通知。

警报只会调用操作进行持续的状态变更。CloudWatch 警报将不会调用操作,因为这些操作处于特定状态,该状态必须改变并在指定数量的时间段内一直保持。

因为状态改变而导致警报调用操作后,其后续行为取决于您关联到警报的操作类型。对于 Amazon EC2 和 Auto Scaling 操作,警报会在警报保持新状态的每个时间段中继续调用操作。对于 Amazon SNS 通知,不会调用额外操作。

注意

CloudWatch 不会测试或验证您指定的操作,也不会检测因试图调用不存在的操作而导致的任何 Auto Scaling 或 Amazon SNS 错误。请确保您的操作存在。

您还可以将警报添加到控制面板。当某个警报位于控制面板上时,如果它处于 ALARM 状态,则会变成红色,便于您主动监控其状态。

警报状态

警报可能具有以下几种状态:

  • OK – 指标位于规定的阈值范围内

  • ALARM – 指标在规定的阈值范围外

  • INSUFFICIENT_DATA – 警报刚刚开始;指标不可用;或指标数据不足以判断警报状态

评估警报

在下图中,警报阈值设置为 3 个单位,并且警报配置为在最近的三个连续时间段中的所有三个数据点均超过阈值时触发。也就是说,如果评估的三个时间段中的最早时间段超出阈值,并且两个后续时间段超出阈值或缺失,警报状态将变为 ALARM。在该图中,在第三个到第五个时间段发生了这种情况。在第六个时间段,值下降到阈值以下,并且警报状态变为 OK。在第九个时间段,再次超出阈值,但仅一个时间段超出阈值。因此,警报状态保持为 OK

 触发警报的警报阈值

您可以将警报配置为根据任何警报评估间隔的 N 个数据点中的 M 个数据点触发。数据点是某个时间段的指标值。如果您选择一分钟作为某个指标的汇总期,则每分钟具有一个数据点。在定义警报时,您必须指定必须超出阈值的数据点数量 (“M”) 以及要考虑的数据点数量 (“N”)。评估间隔是数据点数乘以时间段。例如,如果为 1 分钟时间段配置 5 个数据点中的 4 个数据点,则评估间隔为 5 分钟。如果为 10 分钟时间段配置 3 个数据点中的 3 个数据点,则评估间隔为 30 分钟。在评估间隔内,“M”个数据点不需要是连续的,因此,即使指标峰值是间歇性的,也会向您发出警报。

配置 CloudWatch 警报处理缺失数据的方式

与每个警报始终处于三种状态之一类似,向 CloudWatch 报告的每个特定数据点将属于以下三个类别之一:

  • 未超出 (在阈值范围内)

  • 超出 (超出阈值)

  • 缺失

您可以指定警报处理缺失数据点的方式。选择是否将缺失数据点视为:

  • missing(警报将回顾更早的时间以查找更多数据点)

  • notBreaching(视为在阈值范围内的数据点)

  • breaching(视为超出阈值的数据点)

  • ignore(维持当前警报状态)

最佳选择取决于指标的类型。对于持续报告数据的指标 (如实例的 CPUUtilization),您可能应将缺失数据点视为 breaching,因为它们可能表示存在错误。但对于仅在错误发生时生成数据点的指标 (如 Amazon DynamoDB 中的 ThrottledRequests),您应将缺失数据视为 notBreaching。默认行为是 missing

为您的警报选择最佳选项可防止不必要和误导性的警报条件更改,还可以更准确地指示您的系统的运行状况。

注意

如果您将缺失数据视为 missing 且当前时段中有一些数据点缺失,CloudWatch 将回顾更多时间段以查找其他现有数据点以评估警报是否应更改状态。当发生此情况时,如果现在考虑的最早的时间段没有超出阈值,则警报状态不会转为 ALARM

高精度警报

如果对高精度指标设置警报,您可以指定 10 秒或 30 秒时间段的高精度警报,也可以设置 60 秒的任意倍数时间段的定期警报。高精度警报的费用较高。有关高精度指标的更多信息,请参阅发布自定义指标

基于百分位数的 CloudWatch 警报和小数据样本

当您将某个百分位数设置为某个警报的统计数据时,您可以指定在没有数量足以进行有效的统计评估的数据时执行什么操作。您仍然可以选择让警报评估统计数据,并可以更改警报状态。或者,您也可以让警报在样本大小过小时忽略指标,并等到有足够的数据来实现统计显着性时对样本进行评估。

对于介于 0.5 和 1.00 之间的百分位数,将在评估期内数据点数量少于 10/(1 个百分位) 个时使用此设置。例如,如果 p99 百分位上某个警报的样本数少于 1000 个,则会使用此设置。对于 0 和 0.5 之间的百分位数,当数据点数量少于 10/百分位数个时,将使用此设置。

CloudWatch 警报的常用功能

以下功能适用于所有 CloudWatch 警报:

  • 每个 AWS 账户的每个区域可以创建最多 5000 个警报。要创建或更新警报,可以使用 PutMetricAlarm API 操作 (mon-put-metric-alarm 命令)。

  • 警报名称必须仅包含 ASCII 字符。

  • 使用 DescribeAlarms (mon-describe-alarms) 可以列出任何或所有目前配置过的警报以及处于特定状态的任何警报。可以根据时间范围对列表进行进一步筛选。

  • 使用 DisableAlarmActionsEnableAlarmActions (mon-disable-alarm-actionsmon-enable-alarm-actions) 可以禁用和启用警报。

  • 使用 SetAlarmState (mon-set-alarm-state) 可以将警报设为任意状态对其进行测试。此短暂状态变更只会持续到下一个警报比较发生之时。

  • 您可以在创建自定义指标之前使用 PutMetricAlarm (mon-put-metric-alarm) 创建警报。为了使警报有效,必须在警报定义中包含自定义指标的所有维度以及指标命名空间和指标名称。

  • 您可以使用 DescribeAlarmHistory (mon-describe-alarm-history) 查看警报的历史记录。CloudWatch 会将警报历史记录保存两周。每个状态转换都标有一个唯一的时间戳。个别情况下,一个状态变更的历史记录可能显示多个通知。通过时间戳可以确定唯一的状态变更。

  • 警报的评估期数乘以每个评估期的长度不能超过一天。

注意

在特定条件下,一些 AWS 资源不会将指标数据发送到 CloudWatch。

例如,Amazon EBS 不会发送未连接到 Amazon EC2 实例的可用卷的指标数据,因为该卷没有要监控的指标活动。如果您对此类指标设置了警报,您可能会注意到其状态更改为“数据不足”。这可能表示您的资源处于不活动状态,并不一定表示出现了问题。