

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用亚马逊监控亚马逊 EC2 API 请求 CloudWatch
<a name="monitor"></a>

您可以使用亚马逊监控亚马逊 EC2 API 请求 CloudWatch，亚马逊会收集原始数据并将其处理为可读的近乎实时的指标。这些指标提供了一种简单的方法来跟踪 Amazon EC2 API 操作在一段时间内的使用情况和结果。这些信息可以让您更好地了解 Web 应用程序的运行状况，并帮助您识别和诊断各种问题。您还可以设置警告，以监控特定阈值，当达到阈值时发送通知或执行特定操作。

有关的更多信息 CloudWatch，请参阅 [Amazon CloudWatch 用户指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)。

**重要**  
亚马逊 EC2 API 指标是一项可选功能。您必须请求访问此功能。有关更多信息，请参阅 [启用亚马逊 EC2 API 指标](#enable-ec2-api-metrics)。

**Topics**
+ [启用亚马逊 EC2 API 指标](#enable-ec2-api-metrics)
+ [亚马逊 EC2 API 指标和维度](#monitor-metrics_dimensions)
+ [指标数据留存](#monitor-retention)
+ [监控代表您发起的请求](#throttling-metrics)
+ [计费](#monitor-billing)
+ [与亚马逊合作 CloudWatch](#monitor-using)

## 启用亚马逊 EC2 API 指标
<a name="enable-ec2-api-metrics"></a>

请按照以下过程为您的 AWS 账户请求访问此功能。

**请求访问此功能**

1. 打开 [AWS 支持 中心](https://console.aws.amazon.com/support/home#/)。

1. 选择**创建工单**。

1. 选择**账户和账单**。

1. 对于**服务**，选择**一般信息和入门**。

1. 在 **“类别”** 中，选择 “**使用 AWS 和服务**”。

1. 选择**下一步：其他信息**。

1. 对于 **Subject (主题)**，请输入 **Request access to Amazon EC2 API metrics**。

1. 对于**描述**，输入 **Please grant my account access to Amazon EC2 API metrics. Related page: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/monitor.html**。还要包括您需要访问的区域。

1. 选择**下一步：立即解决或联系我们**。

1. 在**联系我们**选项卡上，选择您的首选联系语言和首选联系方式。

1. 选择**提交**。

## 亚马逊 EC2 API 指标和维度
<a name="monitor-metrics_dimensions"></a>

### 指标
<a name="monitor-metrics"></a>

Amazon EC2 API 指标包含在`AWS/EC2/API`命名空间中。下表列出了可用于 Amazon EC2 API 请求的指标。


| 指标 | 说明 | 
| --- | --- | 
|  `ClientErrors` |  客户端错误导致的 API 请求失败次数。 这些错误通常是由于客户端操作引起的，例如在请求中指定了错误或无效的参数，或者以没有权限的用户身份使用某个操作或资源。 单位：个  | 
|  `RequestLimitExceeded` |  您的账户超出亚马逊 EC2 APIs 允许的最大请求速率的次数。 Amazon EC2 API 请求会受到限制，以帮助维持服务的性能。如果您的请求被节流，会返回 `Client.RequestLimitExceeded` 错误。 单位：个  | 
|  `AwsTriggeredRequestLimitExceeded` |  由于操作问题而应用的限制导致 AWS 的 API 请求失败的数量。 当出现这种限制时，您会收到一条`Client.RequestLimitExceeded`错误消息，表明您的请求因操作问题而受到限制。 AWS 这种限制是暂时的，一旦操作问题得到解决，就会自动解决。实现指数退避和重试逻辑，以优雅地处理这些临时限制。 单位：个  | 
|  `ServerErrors` |  服务器内部错误导致的 API 请求失败次数。 这些错误通常是由 AWS 服务器端错误、异常或故障引起的。 单位：个  | 
|  `SuccessfulCalls` |  成功完成的 API 请求次数。 单位：个  | 

### Dimensions
<a name="monitor-dimensions"></a>

可以在所有 EC2 API 操作中筛选亚马逊 EC2 指标数据。有关尺寸的更多信息，请参阅 [Amazon CloudWatch 概念](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html)。

## 指标数据留存
<a name="monitor-retention"></a>

亚马逊 EC2 API 指标每隔 1 分钟发送 CloudWatch 一次。 CloudWatch 按如下方式保留指标数据：
+ 时间段为 60 秒（1 分钟）的数据点可用 15 天。
+ 时间段为 300 秒（5 分钟）的数据点可用 63 天。
+ 时间段为 3600 秒（1 小时）的数据点可用 455 天（15 个月）。

## 监控代表您发起的请求
<a name="throttling-metrics"></a>

 AWS 服务代表您发出的 API 请求（例如服务相关角色发出的请求）不计入您的 API 限制限制，也不会向亚马逊发送您账户 CloudWatch 的指标。无法使用监控这些请求 CloudWatch。

第三方服务提供商代表您发出的 API 请求会计入您的 API 限制限制，并且它们会向亚马逊发送您账户 CloudWatch 的指标。可以使用监视这些请求 CloudWatch。

## 计费
<a name="monitor-billing"></a>

适用标准 CloudWatch 定价和费用。使用 Amazon EC2 API 指标不收取任何额外费用。有关更多信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

## 与亚马逊合作 CloudWatch
<a name="monitor-using"></a>

**Contents**
+ [查看 CloudWatch 指标](#monitor-using-viewing)
+ [创建 CloudWatch 警报](#monitor-creating)

### 查看 CloudWatch 指标
<a name="monitor-using-viewing"></a>

使用以下步骤查看 Amazon EC2 API 指标。

**先决条件**  
您必须允许访问您的账户 EC2 的 Amazon API 指标。有关更多信息，请参阅 [启用亚马逊 EC2 API 指标](#enable-ec2-api-metrics)。

**使用控制台查看 Amazon EC2 API 指标**

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 在导航窗格中，依次选择**指标**、**所有指标**。

1. 在**浏览**选项卡**指标**下，选择所需的区域以查看指标。

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

1. 要查看指标，选择指标维度，例如**每实例指标**。
**注意**  
指标在两周处于非活动状态后会被隐藏。如果过去两周没有接收到新的数据点，这些指标将不再出现在控制台中，在控制台搜索框中输入指标名称或维度名称时它们也不会显示，并且 [list-metrics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) AWS CLI 命令也不会返回这些指标。要检索这些指标，请使用[get-metric-data]()或[get-metric-statistics]()命令。

**使用命令行查看 Amazon EC2 API 指标**

使用以下命令之一：
+ [list-metrics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) (AWS CLI)

  ```
  aws cloudwatch list-metrics --namespace "AWS/EC2/API"
  ```
+ [获取-CWMetric 列表](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-CWMetricList.html) (AWS Tools for Windows PowerShell)

  ```
  Get-CWMetricList -Namespace "AWS/EC2/API"
  ```

### 创建 CloudWatch 警报
<a name="monitor-creating"></a>

您可以创建一个 CloudWatch 警报，当警报状态发生变化时，该警报会发送 Amazon SNS 消息。告警会监控您指定的时间段内的某个指标。它会根据指标在多个时间段内相对于指定阈值的值，向 SNS 主题发送通知。

例如，您可以创建一个警报，监控由于服务器端错误而失败 DescribeInstances的 API 请求数量。当 DescribeInstances API 请求失败次数在 5 分钟内达到 10 个服务器端错误的阈值时，以下警报会发送电子邮件通知。

**先决条件**  
您必须允许访问您账户的 Amazon EC2 API 指标。有关更多信息，请参阅 [启用亚马逊 EC2 API 指标](#enable-ec2-api-metrics)。

**要为 Amazon EC2 DescribeInstances API 创建警报，请请求服务器错误**

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 在导航窗格中，依次选择 **Alarms**（警报）和 **All alarms**（所有警报）。

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

1. 选择**选择指标**并执行以下操作：

   1. 选择 **EC2/API**。

   1. 选择**每项操作指标**。

   1. 选中与**ServerErrors**指标名称位于同一行旁边的复选框。**DescribeInstances**

   1. 选择**选择指标**。

1. 将显示 **Specify metric and conditions（指定指标和条件）**页面，其中显示一个图表以及有关您选择的指标和统计数据的其他信息。

   1. 在**指标**下，指定以下内容：

      1. 对于 **Statistic（统计数据）**，选择 **Sum（总计）**。

      1. 对于**时段**，确认已选择 **5 分钟**。

   1. 在**条件**下面，指定以下内容：

      1. 对于 **Threshold type（阈值类型）**，选择 **Static（静态）**。

      1. **对于 “**无论何时 ServerErrors 是**”，选择 “**大于/等于 >=**”。**

      1. 对于**数值...**，输入 **10**。

   1. 选择**下一步**。

1. **Configure actions**（配置操作）页面会显示。

   1. 在**通知**下，指定以下内容：

     1. 对于**警报状态触发器**，选择**警报中**。

     1. 对于**选择 SNS 主题**，选择**选择现有 SNS 主题**或**创建新主题**，然后填写通知的必填字段。

     1. 选择**下一步**。

1. 将显示**添加名称和描述**页面。

   1. 对于**警报名称**，输入警报的名称。名称只能包含 ASCII 字符。

   1. 对于**警报描述**，为您的警报输入一个可选的描述。

   1. 选择**下一步**。

1. 将显示**预览并创建**页面。验证信息是否正确，然后选择**创建警报**。

有关更多信息，请参阅[亚马逊* CloudWatch 用户指南中的使用亚马逊 CloudWatch *警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。