Amazon CloudWatch
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

创建 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 且评估期为 3。也就是说,如果三个连续周期均超出阈值 (值为 3 或更高),则警报将调用其操作。在此图表中,这种情况发生在第三个到第五个时间段中,且警报的状态设为 ALARM。在第六个时间段,数值下降到阈值以下,而状态变为 OK。之后,在第九个时间段内再次超出了阈值,但只有一个周期如此。因此,警报状态保持为 OK

 触发警报的警报阈值

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

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

  • good (在阈值内)

  • bad (超出阈值)

  • missing

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

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

  • 好 (视为在阈值内的数据点)

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

  • 忽略 (维持当前警报状态)

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

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

注意

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

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

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

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

CloudWatch 警报的常用功能

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

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

  • 使用 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 实例的可用卷的指标数据,因为该卷没有要监控的指标活动。如果您对此类指标设置了警报,您可能会注意到其状态更改为“数据不足”。这可能只表示您的资源处于不活动状态,可能并不意味着有问题。

内容