

# 使用 CloudWatch 监控您的实例
<a name="using-cloudwatch"></a>

您可以使用 Amazon CloudWatch 监控您的实例，此工具可从 Amazon EC2 收集原始数据，并将数据处理为易读的近乎实时的指标。这些统计数据会保存 15 个月，从而使您能够访问历史信息，并能够更好地了解您的 Web 应用程序或服务的执行情况。

默认情况下，Amazon EC2 每隔 5 分钟向 CloudWatch 发送一次指标数据。要每隔 1 分钟向 CloudWatch 发送一次实例的指标数据，可以对实例启用详细监控。有关更多信息，请参阅 [管理 EC2 实例的详细监控](manage-detailed-monitoring.md)。

Amazon EC2 控制台将根据来自 Amazon CloudWatch 的原始数据显示一系列图表。根据您的需求，您可能更愿意从 Amazon CloudWatch 而非控制台中的图表中获取实例数据。

有关 Amazon CloudWatch 账单和成本信息，请参阅《Amazon CloudWatch 用户指南》中的 [CloudWatch 账单和成本](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_billing.html)。**

**Topics**
+ [在 Amazon EC2 控制台中管理 EC2 实例的 CloudWatch 警报](ec2-instance-alarms.md)
+ [管理 EC2 实例的详细监控](manage-detailed-monitoring.md)
+ [可用于实例的 CloudWatch 指标](viewing_metrics_with_cloudwatch.md)
+ [使用 Amazon EC2 控制台安装和配置 CloudWatch 代理以添加其他指标](install-and-configure-cloudwatch-agent-using-ec2-console.md)
+ [实例的 CloudWatch 指标的统计数据](monitoring_get_statistics.md)
+ [查看实例的监控图形](graphs-in-the-aws-management-console.md)
+ [为实例创建 CloudWatch 警报](using-cloudwatch-createalarm.md)
+ [创建停止、终止、重启或恢复实例的警报](UsingAlarmActions.md)

# 在 Amazon EC2 控制台中管理 EC2 实例的 CloudWatch 警报
<a name="ec2-instance-alarms"></a>

从 Amazon EC2 控制台的**实例**屏幕中，您可以管理实例的 Amazon CloudWatch 警报。在**实例**表中，**警报状态**列提供了两个控制台控件：一个用于查看警报，一个用于创建或编辑警报。以下屏幕截图显示了这些控制台控件，编号为 **1**（**查看警报**）和 **2**（**\$1** 号表示创建或编辑警报）。

![\[EC2 控制台“实例”表中的控件，用于查看和创建警报。1. 查看警报 2. 加号。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/instance-alarms.png)


## 从“实例”屏幕查看警报
<a name="view-ec2-instance-alarms"></a>

您可以从**实例**屏幕查看每个实例的警报。

**从“实例”屏幕查看实例的警报**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 在**实例**表中，对于您选择的实例，选择**查看警报**（上一屏幕截图中编号为 **1**）。

1. 在 ***i-1234567890abcdef0* 的警报详细信息**窗口中，选择该警报名称以在 CloudWatch 控制台查看该警报。

## 从“实例”屏幕创建警报
<a name="create-ec2-instance-alarms"></a>

您可以从**实例**屏幕为每个实例创建警报。

**从“实例”屏幕为实例创建警报**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 在**实例**表中，对于您选择的实例，选择加号（上一屏幕截图中编号为 **2**）。

1. 在**管理 CloudWatch 警报**屏幕中，创建警报。有关更多信息，请参阅 [为实例创建 CloudWatch 警报](using-cloudwatch-createalarm.md)。

## 从实例屏幕编辑警报
<a name="edit-ec2-instance-alarms"></a>

您可以从**实例**屏幕编辑实例的警报。

**要从实例屏幕编辑实例的警报**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 在**实例**表中，对于您选择的实例，选择加号（上一屏幕截图中编号为 **2**）。

1. 在**管理 CloudWatch 警报**屏幕中，编辑警报。有关更多信息，请参阅《Amazon CloudWatch 用户指南》**中的[编辑或删除 CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Manage-CloudWatch-Alarm.html#Edit-CloudWatch-Alarm)。

# 管理 EC2 实例的详细监控
<a name="manage-detailed-monitoring"></a>

Amazon CloudWatch 提供两类监控：*基本监控*和*详细监控*。默认情况下，您的实例已配置为基本监控。您可以选择启用详细监控，以帮助您更快地识别运行问题并对其采取措施。可以在实例启动时或在实例运行或停止时，启用或关闭详细监控。

在实例上启用详细监控不会影响其附加的 EBS 卷的监控。有关更多信息，请参阅 [Amazon EBS 的 Amazon CloudWatch 指标](https://docs.aws.amazon.com/ebs/latest/userguide/using_cloudwatch_ebs.html)。

下面突出显示了实例的基本监控和详细监控之间的区别。


| 监控类型 | 描述 | 收费 | 
| --- | --- | --- | 
| 基本监控 |  状态检查指标在 1 分钟内可用。所有其他指标均在 5 分钟内可用。  | 免费。 | 
| 详细监控 | 只要您为实例开启详细监控功能，便每隔 1 分钟获取一次指标。 一旦您启用了详细监控功能，就可以聚合相似实例组的数据。 | 您需要按 Amazon EC2 发送到 CloudWatch 的每个指标付费。您无需为数据存储付费。有关更多信息，请参阅 [Amazon CloudWatch 定价页面](https://aws.amazon.com/cloudwatch/pricing/#Paid_tier)中的付费套餐。 | 

**Topics**
+ [所需权限](#iam-detailed-monitoring)
+ [启动时启用详细监控](#enable-detailed-monitoring)
+ [管理详细监控](#disable-detailed-monitoring)

## 所需权限
<a name="iam-detailed-monitoring"></a>

要启用对实例的详细监控，用户必须具有使用 [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_MonitorInstances.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_MonitorInstances.html) API 操作的权限。要关闭对实例的详细监控，用户必须具有使用 [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_UnmonitorInstances.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_UnmonitorInstances.html) API 操作的权限。

## 启动时启用详细监控
<a name="enable-detailed-monitoring"></a>

使用以下过程在启动时启用详细监控。默认情况下，您的实例使用基本监控。

------
#### [ Console ]

**要在启动实例时启用详细监视**  
当使用 Amazon EC2 控制台启动实例时，请在**高级详细信息**下，选中**详细 CloudWatch 监控**复选框。

------
#### [ AWS CLI ]

**要在启动实例时启用详细监视**  
使用 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令和 `--monitoring` 选项。

```
--monitoring Enabled=true
```

------
#### [ PowerShell ]

**要在启动实例时启用详细监视**  
将 [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet 与 `-Monitoring` 参数结合使用。

```
-Monitoring $true
```

------

## 管理详细监控
<a name="disable-detailed-monitoring"></a>

使用以下过程管理正在运行或已停止实例的详细监控。

------
#### [ Console ]

**管理详细监控**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**实例**。

1. 选择实例。

1. 依次选择**操作**、**监控和故障排除**以及**管理详细监控**。

1. 在**详细监控**页面上，对于**详细监控**，执行以下操作之一：
   + 详细监控：选择**启用**。
   + 基本监控：清除**启用**。

1. 选择**确认**。

------
#### [ AWS CLI ]

**启用详细监控**  
使用以下 [monitor-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/monitor-instances.html) 命令。

```
aws ec2 monitor-instances --instance-ids i-1234567890abcdef0
```

**禁用详细监控**  
使用 [unmonitor-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/unmonitor-instances.html) 命令。

```
aws ec2 unmonitor-instances --instance-ids i-1234567890abcdef0
```

------
#### [ PowerShell ]

**启用详细监控**  
使用 [Start-EC2InstanceMonitoring](https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2InstanceMonitoring.html) cmdlet。

```
Start-EC2InstanceMonitoring -InstanceId i-1234567890abcdef0
```

**禁用详细监控**  
使用 [Stop-EC2InstanceMonitoring](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2InstanceMonitoring.html) cmdlet。

```
Stop-EC2InstanceMonitoring -InstanceId i-1234567890abcdef0
```

------

# 可用于实例的 CloudWatch 指标
<a name="viewing_metrics_with_cloudwatch"></a>

Amazon EC2 将指标发送到 Amazon CloudWatch。可使用 AWS 管理控制台、AWS CLI 或 API 列出 Amazon EC2 发送到 CloudWatch 的指标。默认情况下，每个数据点中包含的是实例自启动后的 5 分钟内的活动。如果您启用了详细监控，则每个数据点包含自启动后的 1 分钟内的活动。请注意，对于统计数据 Minimum、Maximum 和 Average，EC2 提供的指标的最小粒度为 1 分钟。

有关如何使用 AWS 管理控制台或 AWS CLI 查看可用指标的信息，请参阅《Amazon CloudWatch 用户指南》**中的[查看可用的指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html)。

有关获取这些指标的统计数据的信息，请参阅 [实例的 CloudWatch 指标的统计数据](monitoring_get_statistics.md)。

**Topics**
+ [实例指标](#ec2-cloudwatch-metrics)
+ [加速器指标](#accelerator-metrics)
+ [CPU 积分指标](#cpu-credit-metrics)
+ [专属主机指标](#dh-metrics)
+ [基于 Nitro 的实例的 Amazon EBS 指标](#ebs-metrics-nitro)
+ [状态检查指标](#status-check-metrics)
+ [流量镜像指标](#traffic-mirroring-metrics)
+ [自动扩缩组指标](#autoscaling-metrics)
+ [Amazon EC2 指标维度](#ec2-cloudwatch-dimensions)
+ [Amazon EC2 使用情况指标](#service-quota-metrics)

## 实例指标
<a name="ec2-cloudwatch-metrics"></a>

`AWS/EC2` 命名空间包括以下实例指标。


| 指标 | 说明 | 单位 | 有意义的统计数据 | 
| --- | --- | --- | --- | 
| CPUUtilization |  Amazon EC2 用于运行 EC2 实例的物理 CPU 时间的百分比，包括运行用户代码和 Amazon EC2 代码所花费的时间。 在很高的级别上，`CPUUtilization` 是 guest `CPUUtilization` 和 hypervisor `CPUUtilization` 的总和。 由于旧设备模拟、非旧设备配置、中断密集型工作负载、实时迁移和实时更新等因素，操作系统中的工具显示的百分比可能与 CloudWatch 不同。  |  Percent  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| DiskReadOps |  在指定时间段内从可供实例使用的所有实例存储卷完成的读取操作数。 要计算该周期的每秒平均 I/O 操作数 (IOPS)，请将该周期的总操作数除以总秒数。 如果没有实例存储卷，则值为 0 或不报告指标。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| DiskWriteOps |  在指定时间段内向可供实例使用的所有实例存储卷完成的写入操作数。 要计算该周期的每秒平均 I/O 操作数 (IOPS)，请将该周期的总操作数除以总秒数。 如果没有实例存储卷，则值为 0 或不报告指标。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| DiskReadBytes |  从可供实例使用的所有实例存储卷读取的字节数。 该指标用来确定应用程序从实例的硬盘读取的数据量。它可以用来确定应用程序的速度。 报告的数量是该期间内接收的字节数。如果您使用的是基本（5 分钟）监控，则可以将此数字除以 300 以获得字节/秒。如果您使用的是详细（1 分钟）监控，请将其除以 60。您也可以使用 CloudWatch 指标数学函数 `DIFF_TIME` 来查找每秒字节数。例如，如果您在 CloudWatch 中绘制 `DiskReadBytes` 为 `m1`，指标数学公式 `m1/(DIFF_TIME(m1))` 会返回以字节/秒为单位的指标。有关 `DIFF_TIME` 和其他指标数学函数的更多信息，请参阅《Amazon CloudWatch 用户指南》**中的[使用指标数学](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)。 如果没有实例存储卷，则值为 0 或不报告指标。  |  Bytes  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| DiskWriteBytes |  向可供实例使用的所有实例存储卷写入的字节数。 该指标用来确定应用程序向实例的硬盘写入的数据量。它可以用来确定应用程序的速度。 报告的数量是该期间内接收的字节数。如果您使用的是基本（5 分钟）监控，则可以将此数字除以 300 以获得字节/秒。如果您使用的是详细（1 分钟）监控，请将其除以 60。您也可以使用 CloudWatch 指标数学函数 `DIFF_TIME` 来查找每秒字节数。例如，如果您在 CloudWatch 中绘制 `DiskWriteBytes` 为 `m1`，指标数学公式 `m1/(DIFF_TIME(m1))` 会返回以字节/秒为单位的指标。有关 `DIFF_TIME` 和其他指标数学函数的更多信息，请参阅《Amazon CloudWatch 用户指南》**中的[使用指标数学](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)。 如果没有实例存储卷，则值为 0 或不报告指标。  |  Bytes  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| MetadataNoToken |  在没有令牌的情况下成功访问实例元数据服务（IMDS）的次数。 该指标用于确定是否有任何进程正在使用实例元数据服务版本 1（IMDSv1）访问实例元数据，但未使用令牌。如果所有请求都使用支持令牌的会话（即实例元数据服务版本 2（IMDSv2）），则该值为 0。有关更多信息，请参阅 [转换为使用 实例元数据服务版本 2](instance-metadata-transition-to-version-2.md)。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| MetadataNoTokenRejected |  在 IMDSv1 被禁用后尝试进行 IMDSv1 调用的次数。 如果出现此指标，则表示尝试了 IMDSv1 调用但被拒绝。您可以重新启用 IMDSv1，也可以确保所有调用都使用 IMDSv2。有关更多信息，请参阅 [转换为使用 实例元数据服务版本 2](instance-metadata-transition-to-version-2.md)。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| NetworkIn |  实例在所有网络接口上收到的字节数。此指标用于确定流向单个实例的传入网络流量。 报告的数量是该期间内接收的字节数。如果您使用的是基本（5 分钟）监控且统计数据为 Sum，则可以将此数字除以 300 以获得字节/秒。如果您使用的是详细（1 分钟）监控且统计数据为 Sum，请将其除以 60。  |  Bytes  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| NetworkOut |  实例在所有网络接口上发送的字节数。此指标用于确定来自单个实例的传出网络流量。 报告的数字是该时间段内发送的字节数。如果您使用的是基本（5 分钟）监控且统计数据为 Sum，则可以将此数字除以 300 以获得字节/秒。如果您使用的是详细（1 分钟）监控且统计数据为 Sum，请将其除以 60。  |  Bytes  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| NetworkPacketsIn |  实例在所有网络接口上收到的数据包数。此指标依据单个实例上的数据包数量来标识传入流量的量。 此指标仅可用于基本监控（5 分钟期间）。要计算实例 5 分钟内每秒收到的数据包数 (PPS)，请将 Sum 统计数据除以 300。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| NetworkPacketsOut |  实例在所有网络接口上发送的数据包数。此指标依据单个实例上的数据包数量标识传出流量的量。 此指标仅可用于基本监控（5 分钟期间）。要计算实例 5 分钟内每秒发送的数据包数（PPS），请将 Sum 统计数据除以 300。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

## 加速器指标
<a name="accelerator-metrics"></a>

`AWS/EC2` 命名空间包括您的[加速型计算实例](https://docs.aws.amazon.com/ec2/latest/instancetypes/ac.html)的以下加速器指标。仅在部分加速型计算实例类型中受支持。


| 指标 | 说明 | 单位 | 有意义的统计数据 | 
| --- | --- | --- | --- | 
| GPUPowerUtilization | 有功功率使用量占最大有功功率的百分比。 | 百分比 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

## CPU 积分指标
<a name="cpu-credit-metrics"></a>

`AWS/EC2` 命名空间包括 [可突增性能实例](burstable-performance-instances.md)的以下 CPU 积分指标。


| 指标 | 说明 | 单位 | 有意义的统计数据 | 
| --- | --- | --- | --- | 
| CPUCreditUsage |  实例为保持 CPU 使用率而花费的 CPU 积分数。一个 CPU 积分等于一个 vCPU 按 100% 利用率运行一分钟，或者 vCPU、利用率和时间的等效组合（例如， 一个 vCPU 按 50% 利用率运行两分钟，或者两个 vCPU 按 25% 利用率运行两分钟）。 CPU 信用指标仅每 5 分钟提供一次。如果您指定一个大于五分钟的时间段，请使用`Sum` 统计数据，而非 `Average` 统计数据。  |  积分 (vCPU 分钟)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| CPUCreditBalance |  实例自启动后已累积获得的 CPU 积分数。对于 T2 标准，`CPUCreditBalance` 还包含已累积的启动积分数。 在获得积分后，积分将在积分余额中累积；在花费积分后，将从积分余额中扣除积分。积分余额具有最大值限制，这是由实例大小决定的。在达到限制后，将丢弃获得的任何新积分。对于 T2 标准，启动积分不计入限制。 实例可以花费 `CPUCreditBalance` 中的积分，以便突增到基准 CPU 使用率以上。 在实例运行过程中，`CPUCreditBalance` 中的积分不会过期。在 T3 或 T3a 实例停止时，`CPUCreditBalance` 值将保留七天。之后，所有累积的积分都将丢失。在 T2 实例停止时，`CPUCreditBalance` 值不会保留，并且所有累积的积分都将丢失。 CPU 信用指标仅每 5 分钟提供一次。  |  积分（vCPU 分钟）  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| CPUSurplusCreditBalance  |  在 `unlimited` 值为零时，`CPUCreditBalance` 实例花费的超额积分数。 `CPUSurplusCreditBalance` 值由获得的 CPU 积分支付。如果超额积分数超出实例可在 24 小时周期内获得的最大积分数，则超出最大积分数的已花费超额积分将产生额外费用。 CPU 信用指标仅每 5 分钟提供一次。  |  积分（vCPU 分钟）  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| CPUSurplusCreditsCharged |  未由获得的 CPU 积分支付并且会产生额外费用的已花费超额积分数。 在出现以下任一情况时，将对花费的超额积分收费： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html) CPU 信用指标仅每 5 分钟提供一次。  |  积分（vCPU 分钟）  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

## 专属主机指标
<a name="dh-metrics"></a>

`AWS/EC2` 命名空间包括 T3 专属主机的下列指标。


| 指标 | 说明 | 单位 | 有意义的统计数据 | 
| --- | --- | --- | --- | 
|  DedicatedHostCPUUtilization |  在专属主机上运行的实例当前正在使用的已分配计算容量的百分比。  |  Percent  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

## 基于 Nitro 的实例的 Amazon EBS 指标
<a name="ebs-metrics-nitro"></a>

`AWS/EC2` 命名空间包括所添加的卷的基于 Nitro 的实例（非裸机实例）的其他 Amazon EBS 指标。


| 指标 | 说明 | 单位 | 有意义的统计数据 | 
| --- | --- | --- | --- | 
|  InstanceEBSIOPSExceededCheck  |  报告应用程序是否在最后一分钟内尝试驱动超过实例最大 EBS IOPS 限制的 IOPS。此指标可以是 `0`（未超过 IOPS），也可以是 `1`（已超过 IOPS）。  |  无  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  InstanceEBSThroughputExceededCheck  |  报告应用程序是否在最后一分钟内尝试驱动超过实例最大 EBS 吞吐量限制的吞吐量。此指标可以是 `0`（未超过吞吐量），也可以是 `1`（超出吞吐量）。  |  无  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  EBSReadOps |  在指定时间段内在挂载到实例的所有 Amazon EBS 卷中完成的读取操作数。 要计算该时间段的平均每秒读取 I/O 操作数（读取 IOPS），请将该时间段的总操作数除以秒数。如果使用基本（5 分钟）监控，您可以将该数字除以 300 以计算读取 IOPS。如果您使用的是详细（1 分钟）监控，请将其除以 60。您也可以使用 CloudWatch 指标数学函数 `DIFF_TIME` 来查找每秒操作数。例如，如果您在 CloudWatch 中绘制 `EBSReadOps` 为 `m1`，指标数学公式 `m1/(DIFF_TIME(m1))` 会返回以操作/秒为单位的指标。有关 `DIFF_TIME` 和其他指标数学函数的更多信息，请参阅《Amazon CloudWatch 用户指南》**中的[使用指标数学](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)。  |  计数  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  EBSWriteOps  |  在指定时间段内在附加到实例的所有 EBS 卷中完成的写入操作数。 要计算该时间段的平均每秒写入 I/O 操作数（写入 IOPS），请将该时间段的总操作数除以秒数。如果使用基本（5 分钟）监控，您可以将该数字除以 300 以计算写入 IOPS。如果您使用的是详细（1 分钟）监控，请将其除以 60。您也可以使用 CloudWatch 指标数学函数 `DIFF_TIME` 来查找每秒操作数。例如，如果您在 CloudWatch 中绘制 `EBSWriteOps` 为 `m1`，指标数学公式 `m1/(DIFF_TIME(m1))` 会返回以操作/秒为单位的指标。有关 `DIFF_TIME` 和其他指标数学函数的更多信息，请参阅《Amazon CloudWatch 用户指南》**中的[使用指标数学](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)。  |  计数  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  EBSReadBytes  |  在指定时间段内从附加到实例的所有 EBS 卷中读取的字节数。 报告的数字是在该时间段内读取的字节数。如果使用基本（5 分钟）监控，您可以将该数字除以 300 以计算每秒读取的字节数。如果您使用的是详细（1 分钟）监控，请将其除以 60。您也可以使用 CloudWatch 指标数学函数 `DIFF_TIME` 来查找每秒字节数。例如，如果您在 CloudWatch 中绘制 `EBSReadBytes` 为 `m1`，指标数学公式 `m1/(DIFF_TIME(m1))` 会返回以字节/秒为单位的指标。有关 `DIFF_TIME` 和其他指标数学函数的更多信息，请参阅《Amazon CloudWatch 用户指南》**中的[使用指标数学](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)。  |  字节  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  EBSWriteBytes  |  在指定时间段内写入附加到实例的所有 EBS 卷的字节数。 报告的数字是在该时间段内写入的字节数。如果使用基本（5 分钟）监控，您可以将该数字除以 300 以计算每秒写入的字节数。如果您使用的是详细（1 分钟）监控，请将其除以 60。您也可以使用 CloudWatch 指标数学函数 `DIFF_TIME` 来查找每秒字节数。例如，如果您在 CloudWatch 中绘制 `EBSWriteBytes` 为 `m1`，指标数学公式 `m1/(DIFF_TIME(m1))` 会返回以字节/秒为单位的指标。有关 `DIFF_TIME` 和其他指标数学函数的更多信息，请参阅《Amazon CloudWatch 用户指南》**中的[使用指标数学](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)。  |  字节  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  EBSIOBalance%  |  提供有关突增存储桶中剩余的 I/O 积分百分比的信息。此指标仅对基本监控可用。 此指标仅适用于某些 `*.4xlarge` 大小和更小的实例，这样的实例仅需 30 分钟便可突增到最高性能，且至少每 24 小时发生一次。 `Sum` 统计数据不适用于该指标。  |  百分比  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  EBSByteBalance%  |  提供有关突增存储桶中剩余的吞吐量积分百分比的信息。此指标仅对基本监控可用。 此指标仅适用于某些 `*.4xlarge` 大小和更小的实例，这样的实例仅需 30 分钟便可突增到最高性能，且至少每 24 小时发生一次。 `Sum` 统计数据不适用于该指标。  |  百分比  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

有关为 EBS 卷提供的指标的信息，请参阅《Amazon EBS 用户指南》**中的 [Amazon EBS 卷的指标](https://docs.aws.amazon.com/ebs/latest/userguide/using_cloudwatch_ebs.html#ebs-volume-metrics)。有关为 EC2 实例集和竞价型实例集提供的指标的信息，请参阅[使用 CloudWatch 监控 EC2 实例集或竞价型实例集](ec2-fleet-cloudwatch-metrics.md)。

## 状态检查指标
<a name="status-check-metrics"></a>

默认情况下，状态检查指标可在 1 分钟的频率下免费提供。对于新启动的实例，状态检查指标数据仅在实例完成初始化状态之后（实例进入 `running` 状态的几分钟之内）提供。有关 EC2 状态检查的更多信息，请参阅[Amazon EC2 实例的状态检查](monitoring-system-instance-status-check.md)。

`AWS/EC2` 命名空间包括以下状态检查指标。


| 指标 | 说明 | 单位 | 有意义的统计数据 | 
| --- | --- | --- | --- | 
| StatusCheckFailed |  报告实例在上一分钟内是否通过了所有系统状态检查。 此指标可以是 `0`（通过）或 `1`（失败）。 默认情况下，此指标可在 1 分钟的频率下免费提供。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| StatusCheckFailed\$1Instance |  报告实例在上个 1 分钟内是否通过了 实例状况检查。 此指标可以是 `0`（通过）或 `1`（失败）。 默认情况下，此指标可在 1 分钟的频率下免费提供。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| StatusCheckFailed\$1System |  报告实例在上一分钟内是否通过了 系统状况检查。 此指标可以是 `0`（通过）或 `1`（失败）。 默认情况下，此指标可在 1 分钟的频率下免费提供。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| StatusCheckFailed\$1AttachedEBS |  报告实例在上一分钟内是否通过了附加的 EBS 卷状态检查。 此指标可以是 `0`（通过）或 `1`（失败）。 默认情况下，此指标可在 1 分钟的频率下免费提供。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

`AWS/EBS` 命名空间包括以下状态检查指标。


| 指标 | 说明 | 单位 | 有意义的统计数据 | 
| --- | --- | --- | --- | 
| VolumeStalledIOCheck |  **注意：**仅适用于 Nitro 实例。对附加到 Amazon ECS 和 AWS Fargate 任务的卷未发布。 报告卷在最后一分钟是否通过*停滞的 IO 检查*。此指标可以是 `0`（通过）或 `1`（失败）。  |  无  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

## 流量镜像指标
<a name="traffic-mirroring-metrics"></a>

`AWS/EC2` 命名空间包含镜像流量的指标。有关更多信息，请参阅《Amazon VPC Traffic Mirroring 指南》中的[使用 Amazon CloudWatch 监控镜像的流量](https://docs.aws.amazon.com/vpc/latest/mirroring/traffic-mirror-cloudwatch.html)。

## 自动扩缩组指标
<a name="autoscaling-metrics"></a>

`AWS/AutoScaling` 命名空间包括 Auto Scaling 组的指标。有关更多信息，请参阅《Amazon EC2 Auto Scaling User Guide》**中的 [Monitor CloudWatch metrics for your Auto Scaling groups and instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-cloudwatch-monitoring.html)。

## Amazon EC2 指标维度
<a name="ec2-cloudwatch-dimensions"></a>

您可以使用以下维度来优化上表中列出的指标。


| 维度 | 描述 | 
| --- | --- | 
|  AutoScalingGroupName  |  该维度筛选您为指定容量组中的所有实例请求的数据。如果您使用 Auto Scaling，*Auto Scaling 组*就是您定义的实例集合。当实例在上述 Auto Scaling 组中时，该维度仅供 Amazon EC2 指标使用。可供启用了详细或基本监控的实例使用。  | 
|  ImageId  |  该维度筛选您为运行此 Amazon EC2 亚马逊机器映像（AMI）的所有实例而请求的数据。可供启用了详细监控功能的实例使用。  | 
|  InstanceId  |  该维度筛选您仅为已识别实例请求的数据。这样有助于您精确定位要对其监控数据的确切实例。  | 
|  InstanceType  |  该维度筛选您为以这一指定实例类型运行的所有实例请求的数据。这样有助于您按运行的实例类型给数据分类。例如，您可以比较 m1.small 实例和 m1.large 实例的数据，以确定哪一个对您的应用程序具有更好的商业价值。可供启用了详细监控功能的实例使用。  | 

## Amazon EC2 使用情况指标
<a name="service-quota-metrics"></a>

您可以使用 CloudWatch 用量指标来提供账户资源使用情况的可见性。使用这些指标在 CloudWatch 图表和控制面板上可视化当前服务用量。

Amazon EC2 用量指标与 AWS 服务配额对应。您可以配置警报，以在用量接近服务配额时向您发出警报。有关 CloudWatch 与 Service Quotas 集成的更多信息，请参阅《Amazon CloudWatch 用户指南》**中的 [AWS 使用情况指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Service-Quota-Integration.html)。

Amazon EC2 在 `AWS/Usage` 命名空间中发布以下指标。


| 指标 | 描述 | 
| --- | --- | 
| `ResourceCount` |  您账户中运行的指定资源的数量。资源由与指标关联的维度定义。 此指标最有用的统计数据是 `MAXIMUM`，这表示 1 分钟期间内使用的最大资源数。  | 

以下维度用于优化由 Amazon EC2 发布的用量指标。


| 维度 | 描述 | 
| --- | --- | 
|  Service  |  包含该资源的 AWS 服务的名称。对于 Amazon EC2 用量指标，此维度的值为 `EC2`。  | 
|  Type  |  正在报告的实体的类型。目前，Amazon EC2 用量指标的唯一有效值为 `Resource`。  | 
|  Resource  |  正在运行的资源的类型。目前，Amazon EC2 用量指标的唯一有效值是 `vCPU`，它返回有关正在运行的实例的信息。  | 
|  Class  |  所跟踪的资源的类。对于以 `vCPU` 作为 `Resource` 维度的值的 Amazon EC2 用量指标，有效值为 `Standard/OnDemand`、`F/OnDemand`、`G/OnDemand`、`Inf/OnDemand`、`P/OnDemand` 和 `X/OnDemand`。 此维度的值定义由该指标报告的实例类型的第一个字母。例如，`Standard/OnDemand` 返回有关类型以 A、C、D、H、I、M、R、T 和 Z 开头的所有正在运行的实例的信息，并且 `G/OnDemand` 返回有关类型以 G 开头的所有正在运行的实例的信息。  | 

# 使用 Amazon EC2 控制台安装和配置 CloudWatch 代理以添加其他指标
<a name="install-and-configure-cloudwatch-agent-using-ec2-console"></a>


|  | 
| --- |
| 对于 Amazon EC2，使用 Amazon EC2 控制台安装和配置 CloudWatch 代理的功能为试用版，可能随时更改。 | 

默认情况下，Amazon CloudWatch 提供基本指标（例如 `CPUUtilization` 和 `NetworkIn`）用于监控 Amazon EC2 实例。要收集其他指标，您可以在 EC2 实例上安装 CloudWatch 代理，然后将该代理配置为发出所选指标。您可以使用 Amazon EC2 控制台执行此操作，而不必在每个 EC2 实例上手动安装和配置 CloudWatch 代理。

您可以使用 Amazon EC2 控制台在实例上安装 CloudWatch 代理以及配置代理以发出所选指标。

或者，要手动完成此过程，请参阅《Amazon CloudWatch 用户指南》**中的[安装 CloudWatch 代理](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html)。有关 CloudWatch 代理的更多信息，请参阅[使用 CloudWatch 代理采集指标、日志和跟踪数据](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)。

**Topics**
+ [前提条件](#install-and-configure-cw-agent-prerequisites)
+ [工作原理](#install-and-configure-cw-agent-how-it-works)
+ [成本](#install-and-configure-cw-agent-costs)
+ [安装和配置 CloudWatch 代理](#install-and-configure-cw-agent-procedure)

## 前提条件
<a name="install-and-configure-cw-agent-prerequisites"></a>

要使用 Amazon EC2 安装和配置 CloudWatch 代理，您必须满足本节所述的用户和实例前提条件。

**提示**  
此功能并非在所有 AWS 区域 中都可用。如果 Amazon EC2 控制台中不存在本页安装过程中描述的菜单项，并且您可以灵活决定实例的运行位置，请尝试其他区域。否则，可以使用《Amazon CloudWatch 用户指南》**中的手动说明安装和配置代理。

**用户先决条件**  
要使用此功能，您的 IAM 控制台用户或角色必须具有使用 Amazon EC2 所需的权限以及下列 IAM 权限：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameter",
                "ssm:PutParameter"
            ],
            "Resource": "arn:aws:ssm:*:*:parameter/EC2-Custom-Metrics-*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:SendCommand",
                "ssm:ListCommandInvocations",
                "ssm:DescribeInstanceInformation"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetInstanceProfile",
                "iam:SimulatePrincipalPolicy"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**实例先决条件**
+ 实例状态：`running`
+ 支持的操作系统：Linux
+ AWS Systems Manager Agent（SSM Agent）：已安装。关于 SSM Agent 的两个注意事项：
  + SSM Agent 预装在由 AWS 和受信任的第三方提供的一些亚马逊机器映像（AMI）上。有关支持的 AMI 和 SSM Agent 安装说明的信息，请参阅《*AWS Systems Manager 用户指南*》中的[预装了 SSM Agent 的亚马逊机器映像（AMI）](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html)。
  + 如果在使用 SSM Agent 时遇到问题，请参阅《*AWS Systems Manager 用户指南*》中的 [SSM Agent 故障排除](https://docs.aws.amazon.com/systems-manager/latest/userguide/troubleshooting-ssm-agent.html)。
+ 实例的 IAM 权限：必须将以下 AWS 托管策略添加到附加到实例的 IAM 角色中：
  + [AmazonSSMManagedInstanceCore](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSSMManagedInstanceCore.html) – 使实例能够使用 Systems Manager 安装和配置 CloudWatch 代理。
  + [CloudWatchAgentServerPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/CloudWatchAgentServerPolicy.html) – 使实例能够使用 CloudWatch 代理将数据写入 CloudWatch。

  有关如何为实例添加 IAM 权限的信息，请参阅《IAM 用户指南》**中的[使用实例配置文件](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)。

## 工作原理
<a name="install-and-configure-cw-agent-how-it-works"></a>

在使用 Amazon EC2 控制台安装和配置 CloudWatch 代理之前，必须确保 IAM 用户或角色以及要添加指标的实例满足某些先决条件。然后，可以使用 Amazon EC2 控制台在所选实例上安装和配置 CloudWatch 代理。

**首先满足[先决条件](#install-and-configure-cw-agent-prerequisites)**
+ **需要所需的 IAM 权限** – 开始之前，请确保控制台用户或角色具有使用此功能所需的 IAM 权限。
+ **实例** – 要使用该功能，EC2 实例必须是 Linux 实例，安装了 SSM Agent，具有所需的 IAM 权限并且正在运行。

**然后可以[使用该功能](#install-and-configure-cw-agent-procedure)**

1. **选择实例** – 在 Amazon EC2 控制台中，选择要在其上安装和配置 CloudWatch 代理的实例。然后，可以通过选择“**配置 CloudWatch 代理**”来开始该过程。

1. **验证 SSM Agent** – Amazon EC2 会检查每个实例上是否安装并启动了 SSM Agent。未通过此检查的任何实例都将从过程中排除。在此过程中，SSM Agent 用于对实例执行操作。

1. **验证 IAM 权限** – Amazon EC2 会检查每个实例是否具有此过程所需的 IAM 权限。未通过此检查的任何实例都将从过程中排除。IAM 权限使 CloudWatch 代理能够从实例收集指标并与AWS Systems Manager 集成以使用 SSM Agent。

1. **验证 CloudWatch 代理** – Amazon EC2 检查 CloudWatch 代理是否已安装并在每个实例上运行。如果任何实例未通过此检查，Amazon EC2 会主动为您安装和启动 CloudWatch 代理。此过程完成后，CloudWatch 代理将收集每个实例上的选定指标。

1. **选择指标配置** – 选择 CloudWatch 代理要从实例中发出的指标。选择后，Amazon EC2 会将配置文件存储在 Parameter Store 中，该文件将一直保留到过程完成。除非过程中断，否则 Amazon EC2 将从 Parameter Store 中删除配置文件。请注意，如果没有选择某指标，但之前已将其添加到实例中，则在此过程完成后，将从实例中删除该指标。

1. **更新 CloudWatch 代理配置** – Amazon EC2 将指标配置发送到 CloudWatch 代理。这是过程的最后一步。如果成功，则实例可以为所选指标发出数据，Amazon EC2 将从 Parameter Store 中删除配置文件。

## 成本
<a name="install-and-configure-cw-agent-costs"></a>

在此过程中添加的其他指标将作为自定义指标计费。有关 CloudWatch 指标定价的信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

## 安装和配置 CloudWatch 代理
<a name="install-and-configure-cw-agent-procedure"></a>

可以使用 Amazon EC2 控制台来安装和配置 CloudWatch 代理，以添加其他指标。

**注意**  
每次执行此过程时，都将覆盖现有 CloudWatch 代理配置。如果没有选择之前选中的指标，则将从实例中删除该指标。

**使用 Amazon EC2 控制台安装和配置 CloudWatch 代理**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 选择要在其上安装和配置 CloudWatch 代理的实例。

1. 选择**操作**、**监控和故障排除**、**配置 CloudWatch 代理**。

1. 对于该过程中的每个步骤，请阅读控制台文本，然后选择**下一步**。

1. 要完成该过程，请在最后一步中选择**完成**。

**更新 Amazon EC2 控制台创建的代理配置**  
您可以手动自定义 EC2 控制台创建的配置。有关更多信息，请参阅《Amazon CloudWatch 用户指南》**中的[手动创建或编辑 CloudWatch 代理配置文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html)。

# 实例的 CloudWatch 指标的统计数据
<a name="monitoring_get_statistics"></a>

您可以获取有关实例的 CloudWatch 指标的统计信息。*统计数据*是指定时间段内的指标数据汇总。CloudWatch 提供统计数据的依据是您的自定义数据所提供的指标数据点，或其他 AWS 服务向 CloudWatch 提供的指标数据点。聚合通过使用命名空间、指标名称、维度以及数据点度量单位在您指定的时间段内完成。下表介绍了可用的统计信息。


| 统计数据 | 描述 | 
| --- | --- | 
| Minimum |  指定时间段内的最低观察值。可以使用此值来决定应用程序的活动量是否较低。  | 
| Maximum |  指定时间段内的最高观察值。可以使用此值来决定应用程序的活动量是否较高。  | 
| Sum |  为匹配指标所提交的所有的值添加在一起。此统计信息的作用是决定指标的总量。  | 
| Average |  指定时间段内 `Sum` / `SampleCount` 的值。通过将此统计信息与 `Minimum` 和 `Maximum` 进行比较，可以决定指标的完整范围以及平均使用率与 `Minimum` 和 `Maximum` 的接近程度。这样的比较可以帮助了解何时应该根据需要增加或减少资源。  | 
| SampleCount |  数据点计数 (数量) 用于统计信息的计算。  | 
| pNN.NN |  指定的百分位数的值。您可以指定任何百分位数，最多使用两位小数 (例如 p95.45)。  | 

**Topics**
+ [获取特定实例的统计数据](US_SingleMetricPerInstance.md)
+ [聚合不同实例的统计数据](GetSingleMetricAllDimensions.md)
+ [按 Auto Scaling 组聚合统计数据](GetMetricAutoScalingGroup.md)
+ [按 AMI 聚合统计数据](US_SingleMetricPerAMI.md)

# 获取特定实例的统计数据
<a name="US_SingleMetricPerInstance"></a>

您可以使用 AWS 管理控制台或 AWS CLI 来获取特定实例的统计数据。以下示例显示了如何使用 AWS 管理控制台 或 AWS CLI 来确定特定 EC2 实例的最大 CPU 利用率。

**要求**
+ 您必须拥有实例的 ID。可使用 AWS 管理控制台 或 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令获取实例 ID。
+ 默认情况下，基本监控已启用，但您可以启用详细监控。有关更多信息，请参阅 [管理 EC2 实例的详细监控](manage-detailed-monitoring.md)。

**显示指定实例的 CPU 利用率（控制台）**

1. 通过 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 打开 CloudWatch 控制台。

1. 在导航窗格中，选择**指标**。

1. 选择 **EC2** 指标命名空间。

1. 选择 **Per-Instance Metrics (每个实例的指标)** 维度。

1. 在搜索框中，输入 **CPUUtilization** 并按 Enter。选择特定实例所在的行，这将显示该实例的 **CPUUtilization** 指标的图表。要为该图标命名，请选择铅笔图标。要更改时间范围，请选择某个预定义的值或选择 **custom**。  
![\[绘制单个指标的图表\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/metric_statistics_ec2_instance.png)

1. 要更改指标的统计数据或时间段，请选择 **Graphed metrics** 选项卡。选择列标题或单个值，然后选择其他值。  
![\[更改指标的统计数据或时段\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/metric_statistics_ec2_instance_statistic_period.png)

**获取特定实例的 CPU 利用率 (AWS CLI)**  
使用以下 [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) 命令获取指定实例的 **CPUUtilization** 指标（使用指定周期和时间间隔）：

```
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization  --period 3600 \
--statistics Maximum --dimensions Name=InstanceId,Value=i-1234567890abcdef0 \
--start-time 2022-10-18T23:18:00 --end-time 2022-10-19T23:18:00
```

下面是示例输出。每个数值代表一个 EC2 实例的最大 CPU 使用率百分比。

```
{
    "Datapoints": [
        {
            "Timestamp": "2022-10-19T00:18:00Z", 
            "Maximum": 0.33000000000000002, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2022-10-19T03:18:00Z", 
            "Maximum": 99.670000000000002, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2022-10-19T07:18:00Z", 
            "Maximum": 0.34000000000000002, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2022-10-19T12:18:00Z", 
            "Maximum": 0.34000000000000002, 
            "Unit": "Percent"
        }
    ], 
    "Label": "CPUUtilization"
}
```

# 聚合不同实例的统计数据
<a name="GetSingleMetricAllDimensions"></a>

聚合统计信息适用于已经启用详细监控的实例。聚合中不包含使用基本监控的实例。在获取多实例聚合统计数据前，必须[启用详细监控](manage-detailed-monitoring.md#enable-detailed-monitoring)（另外收费），以提供以 1 分钟为间隔的数据。

请注意，Amazon CloudWatch 不能跨各个 AWS 区域聚合数据。指标在各区域间彼此独立。

此示例显示了如何使用详细监控来获取 EC2 实例的平均 CPU 使用率。因为未指定任何维度，所以 CloudWatch 会返回 `AWS/EC2` 命名空间中所有维度的统计数据。

**重要**  
此方法可以在 AWS 命名空间中检索所有维度，但不适用于发布到 Amazon CloudWatch 的自定义命名空间。对于自定义命名空间，必须指定与任意给定数据关联的完整的维度组，以检索包含数据点的统计数据。

**显示实例的平均 CPU 利用率（控制台）**

1. 通过 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 打开 CloudWatch 控制台。

1. 在导航窗格中，选择**指标**。

1. 选择 **EC2** 命名空间，然后选择 **Across All Instances (跨所有实例)**。

1. 选择包含 **CPUUtilization** 的行，这将显示所有 EC2 实例的指标的图表。要为该图标命名，请选择铅笔图标。要更改时间范围，请选择某个预定义的值或选择 **custom**。  
![\[跨您的 EC2 实例聚合的指标\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/metric_aggregated_instances.png)

1. 要更改指标的统计数据或时间段，请选择 **Graphed metrics** 选项卡。选择列标题或单个值，然后选择其他值。

**获取实例的平均 CPU 利用率 (AWS CLI)**  
使用 [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) 命令 (如下所示) 获取实例的平均 **CPUUtilization** 指标。

```
aws cloudwatch get-metric-statistics \
    --namespace AWS/EC2 \
    --metric-name CPUUtilization \ 
    --period 3600  --statistics "Average" "SampleCount" \ 
    --start-time 2022-10-11T23:18:00 \
    --end-time 2022-10-12T23:18:00
```

下面是示例输出：

```
{
    "Datapoints": [
        {
            "SampleCount": 238.0, 
            "Timestamp": "2022-10-12T07:18:00Z", 
            "Average": 0.038235294117647062, 
            "Unit": "Percent"
        }, 
        {
            "SampleCount": 240.0, 
            "Timestamp": "2022-10-12T09:18:00Z", 
            "Average": 0.16670833333333332, 
            "Unit": "Percent"
        }, 
        {
            "SampleCount": 238.0, 
            "Timestamp": "2022-10-11T23:18:00Z", 
            "Average": 0.041596638655462197, 
            "Unit": "Percent"
        }
    ], 
    "Label": "CPUUtilization"
}
```

# 按 Auto Scaling 组聚合统计数据
<a name="GetMetricAutoScalingGroup"></a>

您可以聚合 Auto Scaling 组中 EC2 实例的统计数据。请注意，Amazon CloudWatch 不能跨各个 AWS 区域聚合数据。指标在各区域间彼此独立。

此示例说明如何检索为一个 Auto Scaling 组写入磁盘的字节总数。总数以 1 分钟为周期 24 小时为间隔针对指定 Auto Scaling 组中的所有 EC2 实例计算得出。

**显示一个 Auto Scaling 组中的实例的 DiskWriteBytes（控制台）**

1. 通过 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 打开 CloudWatch 控制台。

1. 在导航窗格中，选择**指标**。

1. 选择 **EC2** 命名空间，然后选择 **By Auto Scaling Group**。

1. 选择 **DiskWriteBytes** 指标和特定 Auto Scaling 组所在的行，这将显示 Auto Scaling 组中实例的指标的图表。要为该图标命名，请选择铅笔图标。要更改时间范围，请选择某个预定义的值或选择 **custom**。

1. 要更改指标的统计数据或时间段，请选择 **Graphed metrics** 选项卡。选择列标题或单个值，然后选择其他值。

**显示一个 Auto Scaling 组中的实例的 DiskWriteBytes（AWS CLI）**  
使用 [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) 命令，如下所示。

```
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name DiskWriteBytes --period 360 \
--statistics "Sum" "SampleCount" --dimensions Name=AutoScalingGroupName,Value=my-asg --start-time 2022-10-16T23:18:00 --end-time 2022-10-18T23:18:00
```

下面是示例输出：

```
{
    "Datapoints": [
        {
            "SampleCount": 18.0, 
            "Timestamp": "2022-10-19T21:36:00Z", 
            "Sum": 0.0, 
            "Unit": "Bytes"
        }, 
        {
            "SampleCount": 5.0, 
            "Timestamp": "2022-10-19T21:42:00Z", 
            "Sum": 0.0, 
            "Unit": "Bytes"
        }
    ], 
    "Label": "DiskWriteBytes"
}
```

# 按 AMI 聚合统计数据
<a name="US_SingleMetricPerAMI"></a>

您可以通过 AMI 聚合已启用详细监控的实例的统计数据。聚合中不包含使用基本监控的实例。在获取多实例聚合统计数据前，必须[启用详细监控](manage-detailed-monitoring.md#enable-detailed-monitoring)（另外收费），以提供以 1 分钟为间隔的数据。

请注意，Amazon CloudWatch 不能跨各个 AWS 区域聚合数据。指标在各区域间彼此独立。

此示例显示了如何确定使用特定亚马逊机器映像（AMI）的所有实例的平均 CPU 使用率。平均值以 60 秒为时间间隔 1 天为周期。

**按 AMI 显示平均 CPU 利用率（控制台）**

1. 通过 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 打开 CloudWatch 控制台。

1. 在导航窗格中，选择**指标**。

1. 选择 **EC2** 命名空间，然后选择 **By Image (AMI) Id**。

1. 选择 **CPUUtilization** 指标和特定 AMI 所在的行，这将显示指定 AMI 的指标的图表。要为该图标命名，请选择铅笔图标。要更改时间范围，请选择某个预定义的值或选择 **custom**。

1. 要更改指标的统计数据或时间段，请选择 **Graphed metrics** 选项卡。选择列标题或单个值，然后选择其他值。

**获取某个映像 ID 的平均 CPU 利用率 (AWS CLI)**  
使用 [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) 命令，如下所示。

```
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization  --period 3600 \
--statistics Average --dimensions Name=ImageId,Value=ami-3c47a355 --start-time 2022-10-10T00:00:00 --end-time 2022-10-11T00:00:00
```

下面是示例输出。每个数值代表运行指定 AMI 的 EC2 实例的平均 CPU 使用率百分比。

```
{
    "Datapoints": [
        {
            "Timestamp": "2022-10-10T07:00:00Z", 
            "Average": 0.041000000000000009, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2022-10-10T14:00:00Z", 
            "Average": 0.079579831932773085, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2022-10-10T06:00:00Z", 
            "Average": 0.036000000000000011, 
            "Unit": "Percent"
        }
    ], 
    "Label": "CPUUtilization"
}
```

# 查看实例的监控图形
<a name="graphs-in-the-aws-management-console"></a>

在您启动实例后，可以打开 Amazon EC2 控制台并在 **Monitoring**（监控）选项卡上查看实例的监控图表。每个图表以一个可用的 Amazon EC2 指标为基础。

可供使用图形如下：
+ CPU 平均使用率 (%)
+ 平均读磁盘数 (字节)
+ 平均写磁盘数 (字节)
+ 最大网络输入 (字节)
+ 最大网络输出 (字节)
+ 读磁盘操作概括 (计数)
+ 写磁盘操作概括 (计数)
+ 状态概括 (任意)
+ 实例状态概括 (计数)
+ 系统状态概括 (计数)

有关指标及其向图表提供的数据的更多信息，请参阅 [可用于实例的 CloudWatch 指标](viewing_metrics_with_cloudwatch.md)。

**使用 CloudWatch 控制台绘制指标图标**  
您还可以使用 CloudWatch 控制台将 Amazon EC2 和其他 AWS 服务生成的指标数据绘制成图表。有关更多信息，请参阅《Amazon CloudWatch 用户指南》**中的[绘制指标图表](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph_metrics.html)。

# 为实例创建 CloudWatch 警报
<a name="using-cloudwatch-createalarm"></a>

您可以创建 CloudWatch 警报来监控您的任一实例的 CloudWatch 指标。当该指标达到指定阈值时，CloudWatch 自动向您发送通知。您可以使用 Amazon EC2 控制台创建 CloudWatch 警报，或者使用 CloudWatch 控制台提供的更多高级选项。

**使用 CloudWatch 控制台创建警报**  
有关示例，请参阅*Amazon CloudWatch 用户指南*中的[创建 Amazon CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。

**使用 Amazon EC2 控制台创建警报**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 选择所需实例，然后依次选择 **Actions**（操作）、**Monitor and troubleshoot**（监控和问题排查）、**Manage CloudWatch alarms**（管理 CloudWatch 警报）。

1. 在 **Manage CloudWatch alarms**（管理 CloudWatch 警报）详细信息页面中的 **Add or edit alarm**（添加或编辑警报）下，选择 **Create an alarm**（创建警报）。

1. 对于**警报通知**，选择是否配置 Amazon Simple Notification Service（Amazon SNS）通知。输入现有 Amazon SNS 主题或输入名称来创建新主题。

1. 对于**警报操作**，选择是否指定触发警报时要执行的操作。从列表中选择操作。

1. 对于**警报阈值**，选择警报的指标和条件。例如，要创建一个当 CPU 利用率在 5 分钟内达到 80% 时触发的警报，请执行以下操作：

   1. 为**样本分组依据**（**平均**）和**要采样的数据类型**（**CPU 利用率**）保留默认设置。

   1. 对于**警报触发条件**，选择 **>=** 并输入 **0.80** 作为**百分比**。

   1. 对于**连续周期**，输入 **1** 并选择 **5 分钟**作为**周期**。

1. （可选）对于**样本指标数据**，选择**添加到控制面板**。

1. 选择**创建**。

您可以从 Amazon EC2 控制台或 CloudWatch 控制台编辑 CloudWatch 警报设置。如果要删除警报，可以从 CloudWatch 控制台执行此操作。有关更多信息，请参阅《Amazon CloudWatch 用户指南》**中的[编辑或删除 CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Manage-CloudWatch-Alarm.html#Edit-CloudWatch-Alarm)。

# 创建停止、终止、重启或恢复实例的警报
<a name="UsingAlarmActions"></a>

利用 Amazon CloudWatch 警报操作，您可创建自动停止、终止、重启或恢复实例的警报。当不再需要某个实例运行时，您可使用停止或终止操作来帮助您节省资金。如果发生了系统损害，您可使用重启和恢复操作自动重启这些实例或将它们恢复到新硬件上。

**注意**  
有关 Amazon CloudWatch 告警账单和成本信息，请参阅《Amazon CloudWatch 用户指南》中的 [CloudWatch 账单和成本](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_billing.html)。**

`AWSServiceRoleForCloudWatchEvents` 服务相关角色使 AWS 能够代表您执行警报操作。当您首次在 AWS 管理控制台、AWS CLI 或 IAM API 中创建告警时，CloudWatch 会为您创建服务相关角色。

在许多情况下，您可能需要自动终止或停止实例。例如，您可能拥有专用于批工资单处理作业或科学计算任务的实例，这些实例在运行一段时间后就完成了其工作。与其让这些实例空闲 (并产生费用)，不如将其停止或终止以节省开支。使用停止警报操作和使用终止警报操作的主要区别在于，停止的实例在以后需要再次运行时，可以轻松地启动，并且可以保留相同的实例 ID 和根卷，而终止的实例则无法再启动。如此就必须启动一个新的实例。停止或终止实例后，实例存储卷上的数据将丢失。

您可以向为 Amazon EC2 每个实例指标设置的任何警报添加停止、终止、重启或恢复操作，这些指标包括 Amazon CloudWatch 提供的基本和详细监控指标（在 `AWS/EC2` 命名空间中），以及包含 `InstanceId` 维度的任何自定义指标，只要其值引用有效运行的 Amazon EC2 实例。

**重要**  
如果缺少指标数据点，状态检查警报可能会暂时进入 `INSUFFICIENT_DATA` 状态。尽管很少见，但当指标报告系统出现中断时，即使实例运行正常，也会发生这种情况。我们建议您将 `INSUFFICIENT_DATA` 状态视为数据丢失而不是警报违例，尤其是在配置警报以停止、终止、重启或恢复实例时。

**控制台支持**  
可使用 Amazon EC2 控制台或 CloudWatch 控制台创建警报。本文档中的过程使用 Amazon EC2 控制台。有关使用 CloudWatch 控制台的过程，请参阅《Amazon CloudWatch 用户指南》**中的[创建停止、终止、重新启动或恢复实例的告警](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/UsingAlarmActions.html)。

**权限**  
您必须拥有 `iam:CreateServiceLinkedRole` 才能创建或修改执行 EC2 告警操作的告警。服务角色是由一项服务担任、代表您执行操作的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。IAM 管理员可以在 IAM 中创建、修改和删除服务角色。有关更多信息，请参阅《IAM 用户指南》**中的[创建向 AWS 服务 委派权限的角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

**Topics**
+ [在 Amazon CloudWatch 警报中添加停止操作](#AddingStopActions)
+ [在 Amazon CloudWatch 警报中添加终止操作](#AddingTerminateActions)
+ [在 Amazon CloudWatch 警报中添加重启操作](#AddingRebootActions)
+ [在 Amazon CloudWatch 警报中添加恢复操作](#AddingRecoverActions)
+ [Amazon CloudWatch 警报操作场景](AlarmActionScenarios.md)

## 在 Amazon CloudWatch 警报中添加停止操作
<a name="AddingStopActions"></a>

可以创建当达到一定阈值后停止 Amazon EC2 实例的警报。例如，您可能运行了开发或测试实例而偶尔忘记将其关闭。可以创建当平均 CPU 使用率低于 10% 达 24 小时时触发的警报，同时告知其为空闲并不再使用。可以根据需要调整阈值、持续时间和周期，还可以添加 Amazon Simple Notification Service (Amazon SNS) 通知，以便在触发警报后，您能够收到电子邮件。

可以停止或终止将 Amazon EBS 卷用作根卷的实例，但只能终止将实例存储用作根卷的实例。停止或终止实例后，实例存储卷上的数据将丢失。

**创建停止空闲实例的警报（Amazon EC2 控制台）**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 选择所需实例，然后依次选择 **Actions**（操作）、**Monitor and troubleshoot**（监控和问题排查）、**Manage CloudWatch alarms**（管理 CloudWatch 警报）。

   或者，您可以在 **Alarm status**（警报状态）列中选择加号 (![\[Plus sign.\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/add-plus.png))。

1. 在 **Manage CloudWatch alarms**（管理 CloudWatch 警报）页面上，执行以下操作：

   1. 选择 **Create an alarm**（创建警报）。

   1. 要在警报触发时接收电子邮件，对于 **Alarm notification**（警报通知），选择现有的 Amazon SNS 主题。您首先需要使用 Amazon SNS 控制台创建 Amazon SNS 主题。有关更多信息，请参阅*Amazon Simple Notification Service 开发人员指南*中的[使用 Amazon SNS 进行应用程序对人 (A2P) 消息传送](https://docs.aws.amazon.com/sns/latest/dg/sns-user-notifications.html)。

   1. 开启 **Alarm action**（警报操作），然后选择 **Stop**（停止）。

   1. 对于 **Group samples by**（样本分组方式）和 **Type of data to sample**（要采样的数据类型），选择统计数据和指标。在此示例中，选择 **Average**（平均值）和 **CPU utilization**（CPU 利用率）。

   1. 对于 **Alarm When**（警报时间）和 **Percent**（百分比），请指定指标阈值。在此示例中，请指定 **<=** 和 **10**%。

   1. 对于 **Consecutive period**（连续周期）和 **Period**（周期），请指定警报的评估周期。在此示例中，将 **1** 个连续周期指定为 **5 分钟**。

   1. Amazon CloudWatch 自动为您创建警报名称。要更改名称，请在 **Alarm name**（警报名称）中输入新名称。警报名称必须仅包含 ASCII 字符。
**注意**  
可以在创建警报前根据自己的要求调整警报配置，也可以在之后编辑配置。这包括指标、阈值、时长、操作和通知等设置。但是，警报创建后其名称无法再次编辑。

   1. 选择**创建**。

## 在 Amazon CloudWatch 警报中添加终止操作
<a name="AddingTerminateActions"></a>

可以创建当达到一定阈值时自动终止 EC2 实例的警报 (只要该实例未启用终止保护)。例如，某个实例已经完成工作，您不再需要此实例而想将其终止。如果可能在之后使用该实例，则应该选择停止而不是终止。终止实例后，实例存储卷上的数据将丢失。有关为实例启用和禁用终止保护的信息，请参阅 [更改实例终止保护](Using_ChangingDisableAPITermination.md)。

**创建终止空闲实例的警报（Amazon EC2 控制台）**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 选择所需实例，然后依次选择 **Actions**（操作）、**Monitor and troubleshoot**（监控和问题排查）、**Manage CloudWatch alarms**（管理 CloudWatch 警报）。

   或者，您可以在 **Alarm status**（警报状态）列中选择加号 (![\[Plus sign.\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/add-plus.png))。

1. 在 **Manage CloudWatch alarms**（管理 CloudWatch 警报）页面上，执行以下操作：

   1. 选择 **Create an alarm**（创建警报）。

   1. 要在警报触发时接收电子邮件，对于 **Alarm notification**（警报通知），选择现有的 Amazon SNS 主题。您首先需要使用 Amazon SNS 控制台创建 Amazon SNS 主题。有关更多信息，请参阅*Amazon Simple Notification Service 开发人员指南*中的[使用 Amazon SNS 进行应用程序对人 (A2P) 消息传送](https://docs.aws.amazon.com/sns/latest/dg/sns-user-notifications.html)。

   1. 开启 **Alarm action**（警报操作），然后选择 **Terminate**（终止）。

   1. 对于 **Group samples by**（样本分组方式）和 **Type of data to sample**（要采样的数据类型），选择统计数据和指标。在此示例中，选择 **Average**（平均值）和 **CPU utilization**（CPU 利用率）。

   1. 对于 **Alarm When**（警报时间）和 **Percent**（百分比），请指定指标阈值。在此示例中，请指定 **=>** 和 **10**%。

   1. 对于 **Consecutive period**（连续周期）和 **Period**（周期），请指定警报的评估周期。在此示例中，将 **24** 个连续周期指定为 **1 小时**。

   1. Amazon CloudWatch 自动为您创建警报名称。要更改名称，请在 **Alarm name**（警报名称）中输入新名称。警报名称必须仅包含 ASCII 字符。
**注意**  
可以在创建警报前根据自己的要求调整警报配置，也可以在之后编辑配置。这包括指标、阈值、时长、操作和通知等设置。但是，警报创建后其名称无法再次编辑。

   1. 选择**创建**。

## 在 Amazon CloudWatch 警报中添加重启操作
<a name="AddingRebootActions"></a>

您可创建监控 Amazon EC2 实例并自动重启此实例的 Amazon CloudWatch 警报。在实例运行状况检查失败时，推荐重启警报操作（与恢复警报操作相反，该操作适合系统运行状况检查失败的情况）。实例重启相当于操作系统重启。在许多情况下，只需要几分钟时间即可重启您的实例。重启实例时，其仍驻留在相同的物理主机上，因此您的实例将保留其公有 DNS 名称、私有 IP 地址及其实例存储卷上的任何数据。

与停止并重新启动您的实例不同，重启实例不会启动新的实例计费周期（最低收取一分钟的费用）。重启实例后，实例存储卷上的数据会保留。重启后，必须将实例存储卷重新挂载到文件系统中。有关更多信息，请参阅 [重启 Amazon EC2 实例](ec2-instance-reboot.md)。

**重要**  
为了避免重启操作与恢复操作之间的竞争情况，请避免为重启警报和恢复警报设置相同的评估周期数。我们建议您将重启警报设置为 3 个 1 分钟的评估期。有关更多信息，请参阅 *Amazon CloudWatch 用户指南* 中的[评估警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation)。

**创建重启实例的警报（Amazon EC2 控制台）**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 选择所需实例，然后依次选择 **Actions**（操作）、**Monitor and troubleshoot**（监控和问题排查）、**Manage CloudWatch alarms**（管理 CloudWatch 警报）。

   或者，您可以在 **Alarm status**（警报状态）列中选择加号 (![\[Plus sign.\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/add-plus.png))。

1. 在 **Manage CloudWatch alarms**（管理 CloudWatch 警报）页面上，执行以下操作：

   1. 选择 **Create an alarm**（创建警报）。

   1. 要在警报触发时接收电子邮件，对于 **Alarm notification**（警报通知），选择现有的 Amazon SNS 主题。您首先需要使用 Amazon SNS 控制台创建 Amazon SNS 主题。有关更多信息，请参阅*Amazon Simple Notification Service 开发人员指南*中的[使用 Amazon SNS 进行应用程序对人 (A2P) 消息传送](https://docs.aws.amazon.com/sns/latest/dg/sns-user-notifications.html)。

   1. 开启 **Alarm action**（警报操作），然后选择 **Reboot**（重启）。

   1. 对于 **Group samples by**（样本分组方式）和 **Type of data to sample**（要采样的数据类型），选择统计数据和指标。在此示例中，选择 **Average**（平均值）和 **Status check failed: instance**（状态检查失败：实例）。

   1. 对于 **Consecutive period**（连续周期）和 **Period**（周期），请指定警报的评估周期。在此示例中，输入 **3** 个 **1 分钟**的连续周期。如果**禁用 1 分钟**，则必须[启用详细监控](manage-detailed-monitoring.md#enable-detailed-monitoring)，您也可以选择 **5 分钟**。

   1. Amazon CloudWatch 自动为您创建警报名称。要更改名称，请在 **Alarm name**（警报名称）中输入新名称。警报名称必须仅包含 ASCII 字符。

   1. 选择**创建**。

## 在 Amazon CloudWatch 警报中添加恢复操作
<a name="AddingRecoverActions"></a>

您可以创建 Amazon CloudWatch 警报来监控 Amazon EC2 实例。如果实例因需要 AWS 参与才能修复的基础硬件故障或问题而受损，您可自动恢复实例。无法恢复终止的实例。恢复的实例与原始实例相同，包括实例 ID、私有 IP 地址、弹性 IP 地址以及所有实例元数据。

CloudWatch 会阻止您将恢复操作添加到位于不支持恢复操作的实例上的警报。

当 `StatusCheckFailed_System` 警报触发且恢复操作启动时，您在创建警报及相关恢复操作时所选择的 Amazon SNS 主题将向您发出通知。在实例恢复过程中，实例将在重启时迁移，并且内存中的所有数据都将丢失。当该过程完成后，会向您已配置警报的 SNS 主题发布信息。任何订阅此 SNS 主题的用户都将收到一封电子邮件通知，其中包括恢复尝试的状态以及任何进一步的指示。您将注意到，实例会在已恢复的实例上重启。

**注意**  
恢复操作仅适用于 `StatusCheckFailed_System`，而不能用于 `StatusCheckFailed_Instance`。

下列问题可能导致系统状态检查失败：
+ 网络连接丢失
+ 系统电源损耗
+ 物理主机上的软件问题
+ 物理主机上影响到网络连接状态的硬件问题

仅具有以下特性的实例支持恢复操作。有关更多信息，请参阅 [实例自动恢复](ec2-instance-recover.md)。

如果您的实例具有公有 IP 地址，它会在恢复后保留公有 IP 地址。

**重要**  
为了避免重启操作与恢复操作之间的竞争情况，请避免为重启警报和恢复警报设置相同的评估周期数。我们建议您将恢复警报设置为 2 个 1 分钟的评估期。有关更多信息，请参阅 *Amazon CloudWatch 用户指南* 中的[评估警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation)。

**创建恢复实例的警报（Amazon EC2 控制台）**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 选择所需实例，然后依次选择 **Actions**（操作）、**Monitor and troubleshoot**（监控和问题排查）、**Manage CloudWatch alarms**（管理 CloudWatch 警报）。

   或者，您可以在 **Alarm status**（警报状态）列中选择加号 (![\[Plus sign.\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/add-plus.png))。

1. 在 **Manage CloudWatch alarms**（管理 CloudWatch 警报）页面上，执行以下操作：

   1. 选择 **Create an alarm**（创建警报）。

   1. 要在警报触发时接收电子邮件，对于 **Alarm notification**（警报通知），选择现有的 Amazon SNS 主题。您首先需要使用 Amazon SNS 控制台创建 Amazon SNS 主题。有关更多信息，请参阅*Amazon Simple Notification Service 开发人员指南*中的[使用 Amazon SNS 进行应用程序对人 (A2P) 消息传送](https://docs.aws.amazon.com/sns/latest/dg/sns-user-notifications.html)。
**注意**  
用户必须订阅指定的 SNS 主题才能在触发警报时收到电子邮件通知。执行实例自动恢复操作时，AWS 账户根用户 始终会收到电子邮件通知，即使未指定 SNS 主题或者根用户未订阅指定 SNS 主题也是如此。

   1. 开启 **Alarm action**（警报操作），然后选择 **Recover**（恢复）。

   1. 对于 **Group samples by**（样本分组方式）和 **Type of data to sample**（要采样的数据类型），选择统计数据和指标。在此示例中，选择 **Average**（平均值）和 **Status check failed: system**（状态检查失败：系统）。

   1. 对于 **Consecutive period**（连续周期）和 **Period**（周期），请指定警报的评估周期。在此示例中，输入 **2** 个 **1 分钟**的连续周期。如果**禁用 1 分钟**，则必须[启用详细监控](manage-detailed-monitoring.md#enable-detailed-monitoring)，您也可以选择 **5 分钟**。

   1. Amazon CloudWatch 自动为您创建警报名称。要更改名称，请在 **Alarm name**（警报名称）中输入新名称。警报名称必须仅包含 ASCII 字符。

   1. 选择**创建**。

# Amazon CloudWatch 警报操作场景
<a name="AlarmActionScenarios"></a>

可以使用 Amazon EC2 控制台创建当满足一定条件时停止或终止 Amazon EC2 实例的警报操作。在下方的控制台页面屏幕截图中，您设置了警报操作，我们对设置进行了编号。我们还对后续场景中的设置进行了编号，帮助您创建合适的操作。

![\[管理 Cloudwatch 警报页面。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/manage-cloudwatch-alarms.png)


## 场景 1：停止空闲开发和测试实例
<a name="StopIdleInstance"></a>

创建当用于软件开发或测试的实例空闲达到至少 1 小时时停止该实例的警报。


| 设置 | 值 | 
| --- | --- | 
|  1  |  停止  | 
|  2  |  最高  | 
|  3  |  CPU 利用率  | 
|  4  |  <=  | 
|  5  |  10%  | 
|  6  |  1  | 
|  7  |  1 小时  | 

## 场景 2：停止空闲实例
<a name="StopLowUtilizationInstance"></a>

创建一个当实例空闲达到 24 小时时停止该实例并发送电子邮件的警报。


| 设置 | 值 | 
| --- | --- | 
|  1  |  停止并发送电子邮件  | 
|  2  |  平均值  | 
|  3  |  CPU 利用率  | 
|  4  |  <=  | 
|  5  |  5%  | 
|  6  |  24  | 
|  7  |  1 小时  | 

## 场景 3：发送有关出现异常高流量的 Web 服务器的电子邮件
<a name="StopHighWebTraffic"></a>

创建一个当实例的出站网络流量每天超过 10 GB 时发送电子邮件的警报。


| 设置 | 值 | 
| --- | --- | 
|  1  |  电子邮件  | 
|  2  |  总计  | 
|  3  |  网络输出  | 
|  4  |  >  | 
|  5  |  10GB  | 
|  6  |  24  | 
|  7  |  1 小时  | 

## 场景 4：停止出现异常高流量的 Web 服务器
<a name="StopHighWebTraffic2"></a>

创建当出站流量超过每小时 1 GB 时停止实例并发送短消息 (SMS) 的警报。


| 设置 | 值 | 
| --- | --- | 
|  1  |  停止并发送短消息  | 
|  2  |  总计  | 
|  3  |  网络输出  | 
|  4  |  >  | 
|  5  |  1GB  | 
|  6  |  1  | 
|  7  |  1 小时  | 

## 场景 5：停止受损的实例
<a name="StopImpairedInstance"></a>

创建当实例连续 3 次状态检查 (每隔 5 分钟执行一次) 皆为故障时将其停止的警报。


| 设置 | 值 | 
| --- | --- | 
|  1  |  停止  | 
|  2  |  平均值  | 
|  3  |  状态检查失败：系统  | 
|  4  |  -  | 
|  5  |  -  | 
|  6  |  1  | 
|  7  |  15 分钟  | 

## 场景 6：在批处理作业完成时终止实例
<a name="TerminateBatchProcesses"></a>

创建当实例不再发送结果数据时终止运行批处理作业的实例的警报。


| 设置 | 值 | 
| --- | --- | 
|  1  |  终止  | 
|  2  |  最高  | 
|  3  |  网络输出  | 
|  4  |  <=  | 
|  5  |  100000 字节  | 
|  6  |  1  | 
|  7  |  5 分钟  | 