监控 Auto Scaling 组和实例的 CloudWatch 指标 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

监控 Auto Scaling 组和实例的 CloudWatch 指标

指标是 CloudWatch 中的基本概念。指标表示一个发布到 CloudWatch 并按时间排序的数据点集。可将指标视为要监控的变量,而数据点代表该变量随时间变化的值。您可使用这些指标来验证您的系统是否按预期运行。

Amazon EC2 Auto Scaling 将有关您的 Auto Scaling 组的数据点发布到 CloudWatch。这些指标以一分钟的粒度提供,无需额外付费,但您必须启用它们。通过这样做,您可以持续了解 Auto Scaling 组的操作情况,以便快速响应工作负载中的变化。您可以使用 Amazon Web Services Management Console、Amazon CLI 或 SDK 启用和禁用这些指标。

Amazon EC2 将数据点发布到描述您的 Auto Scaling 实例的 CloudWatch。Amazon EC2 实例监控的间隔是可配置的。您可以选择一分钟到五分钟之间的粒度。有关更多信息,请参阅 配置 Auto Scaling 实例的监控

启用 Auto Scaling 组指标(控制台)

启用 Auto Scaling 组指标时,Auto Scaling 组每分钟向 CloudWatch 发送采样数据。启用这些指标无需支付费用。

启用组指标

  1. 打开 Amazon EC2 Auto Scaling 控制台:https://console.aws.amazon.com/ec2autoscaling/

  2. 选中您的 Auto Scaling 组旁边的复选框。

    将在页面底部打开一个拆分窗格,其中显示有关所选组的信息。

  3. 监控选项卡上,选择位于 Auto Scaling下页面顶部的 Auto Scaling 组指标集合启用复选框。

禁用组指标

  1. 打开 Amazon EC2 Auto Scaling 控制台:https://console.aws.amazon.com/ec2autoscaling/

  2. 选择您的 Auto Scaling 组。

  3. 监控选项卡上,清除 Auto Scaling 组指标集合启用复选框。

启用 Auto Scaling 组指标 (Amazon CLI)

启用组指标

可以使用 enable-metrics-collection 命令启用一个或多个组指标。例如,以下命令可启用 GroupDesiredCapacity 指标。

aws autoscaling enable-metrics-collection --auto-scaling-group-name my-asg \ --metrics GroupDesiredCapacity --granularity "1Minute"

如果省略 --metrics 选项,则启用所有指标。

aws autoscaling enable-metrics-collection --auto-scaling-group-name my-asg \ --granularity "1Minute"

禁用组指标

使用 disable-metrics-collection 命令。例如,以下命令可禁用所有 Auto Scaling 组指标。

aws autoscaling disable-metrics-collection --auto-scaling-group-name my-asg

可用指标和维度

启用后,Amazon EC2 Auto Scaling 发送到 CloudWatch 的 Auto Scaling 组指标和维度如下所示。

注意

系统将以最大努力传输 CloudWatch 组指标。在 CloudWatch 遇到服务中断的极少数情况下,不会回填数据以填补组指标历史记录中的空白。

Auto Scaling 组指标

AWS/AutoScaling 命名空间包括以下指标。

指标 描述
GroupMinSize

Auto Scaling 组的最小大小。

报告条件:如果启用了指标收集,则报告。

GroupMaxSize

Auto Scaling 组的最大大小。

报告条件:如果启用了指标收集,则报告。

GroupDesiredCapacity

Auto Scaling 组试图维护的实例数量。

报告条件:如果启用了指标收集,则报告。

GroupInServiceInstances

作为 Auto Scaling 组的一部分运行的实例数量。该指标不包括处于挂起或终止状态的实例。

报告条件:如果启用了指标收集,则报告。

GroupPendingInstances

处于挂起状态的实例数量。挂起的实例尚不可用。该指标不包括处于可用状态或终止状态的实例。

报告条件:如果启用了指标收集,则报告。

GroupStandbyInstances

处于 Standby 状态的实例数。处于此状态的实例仍在运行,但不能有效使用。

报告条件:如果启用了指标收集,则报告。

GroupTerminatingInstances

正处于终止过程中的实例的数量。该指标不包括处于可用状态或挂起状态的实例。

报告条件:如果启用了指标收集,则报告。

GroupTotalInstances

Auto Scaling 组中的实例总数。该指标用于标识处于可用状态、挂起状态和终止状态的实例的数量。

报告条件:如果启用了指标收集,则报告。

AWS/AutoScaling 命名空间包括使用实例权重功能的 Auto Scaling 组的以下指标。如果未应用实例权重,则以下指标会填充,但等于上表中定义的指标。

指标 描述
GroupInServiceCapacity

作为 Auto Scaling 组的一部分运行的容量单位数量。

报告条件:如果启用了指标收集,则报告。

GroupPendingCapacity

待处理的容量单位数。

报告条件:如果启用了指标收集,则报告。

GroupStandbyCapacity

处于 Standby 状态的容量单位数。

报告条件:如果启用了指标收集,则报告。

GroupTerminatingCapacity

正处于终止过程中的容量单位的数量。

报告条件:如果启用了指标收集,则报告。

GroupTotalCapacity

Auto Scaling 组中的容量单位总数。

报告条件:如果启用了指标收集,则报告。

AWS/AutoScaling 命名空间包括使用暖池功能的 Auto Scaling 组的以下指标。

指标 描述
WarmPoolMinSize

暖池的最小大小。

报告条件:如果启用了指标收集,则报告。

WarmPoolDesiredCapacity

Amazon EC2 Auto Scaling 尝试在暖池中维持的容量数。

这相当于 Auto Scaling 组的最大大小减去所需容量,或者等于 Auto Scaling 组的最大预热容量(如果设置)减去所需容量。

但是,如果暖池的最小大小等于或大于最大大小(或者是最大预热容量(如果设置))与 Auto Scaling 组的所需容量之间的差值,则暖池所需容量将等于 WarmPoolMinSize

报告条件:如果启用了指标收集,则报告。

WarmPoolPendingCapacity

暖池中待处理的容量数。该指标不包括处于运行、挂起或终止状态的实例。

报告条件:如果启用了指标收集,则报告。

WarmPoolTerminatingCapacity

暖池中处于终止过程的容量数。该指标不包括处于运行、已停止或挂起状态的实例。

报告条件:如果启用了指标收集,则报告。

WarmPoolWarmedCapacity

横向扩展期间可进入 Auto Scaling 组的容量数。该指标不包括处于挂起或终止状态的实例。

报告条件:如果启用了指标收集,则报告。

WarmPoolTotalCapacity

暖池的总容量,包括处于运行、已停止、挂起或终止状态的实例。

报告条件:如果启用了指标收集,则报告。

GroupAndWarmPoolDesiredCapacity

Auto Scaling 组和暖池结合起来的所需容量。

报告条件:如果启用了指标收集,则报告。

GroupAndWarmPoolTotalCapacity

Auto Scaling 组和暖池结合起来的总容量。这包括处于运行、已停止、挂起、终止或服务中状态的实例。

报告条件:如果启用了指标收集,则报告。

Auto Scaling 组指标的维度

要按组名称筛选 Auto Scaling 组的指标,请使用 AutoScalingGroupName 维度。

使用 Amazon CloudWatch

查看 CloudWatch 指标

您可以使用 CloudWatch 控制台和命令行工具查看 Auto Scaling 组指标。

使用 CloudWatch 控制台查看指标

有关更多信息,请参阅按 Auto Scaling 组聚合统计数据

查看 CloudWatch 指标 (Amazon CLI)

要查看所有 Auto Scaling 组的所有指标,请使用以下 list-metrics 命令。

aws cloudwatch list-metrics --namespace "AWS/AutoScaling"

要查看单个 Auto Scaling 组的指标,请指定 AutoScalingGroupName 维度,如下所示。

aws cloudwatch list-metrics --namespace "AWS/AutoScaling" --dimensions Name=AutoScalingGroupName,Value=my-asg

要查看适用于所有 Auto Scaling 组的单个指标,请指定该指标的名称,如下所示。

aws cloudwatch list-metrics --namespace "AWS/AutoScaling" --metric-name GroupDesiredCapacity

创建 Amazon CloudWatch 警报

监控指标的一个目的是验证您的应用程序是否正在按预期运行。在 Amazon CloudWatch 中,您可以创建一个警报,以便当特定指标的值超出您认为可接受的阈值时发送通知。

首先确定要监视的指标。例如,您可以配置警报来监控 Auto Scaling 组中 EC2 实例的平均 CPU 利用率。该操作在满足以下条件时向您发送通知:在您指定的连续周期内,组的实例的平均 CPU 利用率超过了您指定的阈值。例如,如果在连续的 4 个 1 分钟周期内,指标量达到或高于 70%。

有关更多信息,请参阅 Amazon CloudWatch 用户指南中的使用 Amazon CloudWatch 警报

为 Auto Scaling 组创建 CloudWatch 警报

  1. 通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/

  2. 如果需要,可以更改区域。从导航栏中,选择您的 Auto Scaling 组所在的区域。

  3. 在导航窗格上,选择 Alarms (警报),然后选择 Create alarm (创建警报)

  4. 选择选择指标

  5. All metrics (所有指标) 选项卡上,按以下方式选择一个指标:

    • 要仅显示为您的 Auto Scaling 组报告的指标,请选择 EC2,然后选择按 Auto Scaling 组。要查看单个 Auto Scaling 组的指标,请在搜索字段中键入其名称。

    • 选择包含要在其上创建警报的 Auto Scaling 组的指标的行。

    • 选择选择指标。将显示 Specify metric and conditions (指定指标和条件) 页面,其中显示一个图表以及有关指标的其他信息。

  6. Period (周期) 下,选择警报的评估周期,例如 1 分钟。评估警报时,每个周期都聚合到一个数据点。

    注意

    周期越短,创建的警报越敏感。

  7. Conditions (条件) 下,执行以下操作:

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

    • 对于 Whenever metric (每当 <CPU 利用率>),指定您希望在指标值大于、大于或等于、小于还是小于或等于阈值时触发警报。然后,在 than (大于/小于) 下,输入您希望触发警报的阈值。

  8. 其他配置下,执行以下操作:

    • 对于 Datapoints to alarm (触发警报的数据点数),输入指标值必须满足阈值条件才会触发警报的数据点(评估时间段)数。例如,2 个连续的 5 分钟时间段需要花 10 分钟才会触发警报。

    • 对于 Missing data treatment (缺失数据处理),选择您希望在数据缺失时警报执行的操作。有关更多信息,请参阅 Amazon CloudWatch 用户指南中的配置 CloudWatch 警报处理缺少数据的方式

  9. 选择 Next (下一步)

  10. 通知下,您可以选择或创建要用于接收通知的 Amazon SNS 主题。否则,您可以立即删除通知,稍后在准备就绪后添加一个通知。

  11. 选择 Next (下一步)

  12. 输入警报的名称和描述(可选),然后选择 Next (下一步)

  13. 选择 Create Alarm(创建告警)