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

使用 Amazon CloudWatch 监控 Auto Scaling 组和实例

利用 Amazon CloudWatch,您可以按一组有序的时间序列数据(称为指标)来检索统计数据。您可使用这些指标来验证您的系统是否按预期运行。

Amazon EC2 将向 CloudWatch 发送描述 Auto Scaling 实例的指标。这些指标对任何 EC2 实例(而不仅仅是 Auto Scaling 组中的实例)可用。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的实例指标

Auto Scaling 组可以向 CloudWatch 发送描述该组本身的指标。您必须启用这些指标。

Auto Scaling 组指标

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

指标 说明
GroupMinSize

Auto Scaling 组的最小大小。

GroupMaxSize

Auto Scaling 组的最大大小。

GroupDesiredCapacity

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

GroupInServiceInstances

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

GroupPendingInstances

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

GroupStandbyInstances

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

GroupTerminatingInstances

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

GroupTotalInstances

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

Auto Scaling 组指标的维度

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

启用 Auto Scaling 组指标

启用 Auto Scaling 组指标后,Auto Scaling 每分钟向 CloudWatch 发送采样数据。

使用控制台启用组指标

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Auto Scaling Groups

  3. 选择您的 Auto Scaling 组。

  4. Monitoring 选项卡上,为 Auto Scaling Metrics 选择 Enable Group Metrics Collection。如果您看不到此选项,请为 Display 选择 Auto Scaling

     启用 Auto Scaling 组指标集合。

使用控制台禁用组指标

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Auto Scaling Groups

  3. 选择您的 Auto Scaling 组。

  4. Monitoring 选项卡上,为 Auto Scaling Metrics 选择 Disable Group Metrics Collection。如果您看不到此选项,请为 Display 选择 Auto Scaling

     禁用 Auto Scaling 组指标集合。

使用 AWS CLI 启用组指标

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

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

如果您忽略 --metrics 选项,则所有指标都会启用。

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

使用 AWS CLI 禁用组指标

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

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

为 Auto Scaling 实例配置监控

默认情况下,在使用 AWS 管理控制台创建启动配置时启用基本监控,在使用 AWS CLI 或 API 创建启动配置时启用详细监控。

如果您拥有 Auto Scaling 组并需要更改为 Auto Scaling 实例启用的监控类型,则必须创建新的启动配置并更新 Auto Scaling 组以使用该启动配置。之后,Auto Scaling 组启动的实例将使用更新后的监控类型。请注意,Auto Scaling 组中的现有实例将继续使用上一个监控类型。您可以终止这些实例以便 Auto Scaling 更换它们,也可以使用 monitor-instancesunmonitor-instances 逐个更新每个实例。

如果您具有与您的 Auto Scaling 组关联的 CloudWatch 警报,请使用 put-metric-alarm 命令更新每个警报,以便其期间与监控类型匹配 (对于基本监控,为 300 秒;对于详细监控,为 60 秒)。如果您从详细监控更改为基本监控,但不将警报更新为匹配 5 分钟时间段,警报将继续每分钟检查统计数据并可能每 5 分钟有 4 分钟找不到任何可用的数据。

使用控制台配置 CloudWatch 监控

在使用 AWS 管理控制台创建启动配置时,在 Configure Details 页上,选择 Enable CloudWatch detailed monitoring。否则,将启用基本监控。有关更多信息,请参阅 创建启动配置

使用 AWS CLI 配置 CloudWatch 监控

create-launch-configuration 命令与 --instance-monitoring 选项结合使用。将此选项设置为 true 可启用详细监控,将此选项设置为 false 可启用基本监控。

Copy
--instance-monitoring Enabled=true

查看 CloudWatch 指标

您可以使用 Amazon EC2 控制台查看 Auto Scaling 组和实例的 CloudWatch 指标。这些指标显示为监控图表。

或者,您可以使用 CloudWatch 控制台查看这些指标。

使用 Amazon EC2 控制台查看指标

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Auto Scaling Groups

  3. 选择您的 Auto Scaling 组。

  4. 选择 Monitoring 选项卡。

  5. (可选) 要按时间筛选结果,请从 Showing data for 中选择时间范围。

  6. 要查看组的指标,请为 Display 选择 Auto Scaling。要获得单个指标的一个较大视图,请选择其图形。以下指标可用于组:

    • 最小组大小 — GroupMinSize

    • 最大组大小 — GroupMaxSize

    • 所需容量 — GroupDesiredCapacity

    • 在服务实例中 — GroupInServiceInstances

    • 待处理实例 — GroupPendingInstances

    • 备用实例 — GroupStandbyInstances

    • 终止实例 — GroupTerminatingInstances

    • 实例总数 — GroupTotalInstances

  7. 要查看实例的指标,请为 Display 选择 EC2。要获得单个指标的一个较大视图,请选择其图形。以下指标可用于实例:

    • CPU 利用率 — CPUUtilization

    • 磁盘读取 — DiskReadBytes

    • 读磁盘操作 — DiskReadOps

    • 磁盘写入 — DiskWriteBytes

    • 写磁盘操作 — DiskWriteOps

    • 网络输入 — NetworkIn

    • 网络输出 — NetworkOut

    • 状态检查失败(任意) — StatusCheckFailed

    • 状态检查失败(实例) — StatusCheckFailed_Instance

    • 状态检查失败(系统) — StatusCheckFailed_System

使用 CloudWatch 控制台查看指标

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

使用 AWS CLI 查看 CloudWatch 指标

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

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

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

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

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

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

创建 Amazon CloudWatch 警报

CloudWatch 警报 是指在特定时间段监控单个指标的对象。指标是指要监控的变量,如 EC2 实例的平均 CPU 利用率,或者从许多不同的 EC2 实例传入的网络流量。如果指标值违反定义的范围,并在指定周期数内保持该变动,警报会自动更改状态。

警报中包含三个状态:

  • OK – 指标值保持在您指定的范围内。

  • ALARM – 指标值在指定时间段内超出您指定的范围。

  • INSUFFICIENT_DATA – 指标不可用或指标数据不足以判断警报状态。

如果警报更改为 ALARM 状态,并在该状态保持较长时间,它将调用一项或多项操作。这些操作可能是发送到 Auto Scaling 组以更改该组的所需容量的消息。

可以通过标识要监控的指标来配置警报。例如,您可以配置警报来监控 Auto Scaling 组中 EC2 实例的平均 CPU 使用率。

创建 CloudWatch 警报

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 在导航窗格上,选择 Alarms

  3. 选择 Create Alarm

  4. 选择 EC2 Metrics 类别。

  5. (可选)您可以筛选结果。要查看实例指标,请选择 Per-Instance Metrics。要查看 Auto Scaling 组指标,请选择 By Auto Scaling Group

  6. 选择一个指标,然后选择 Next

  7. 指定警报的阈值和要执行的操作。

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

  8. 选择 Create Alarm