

# 先决条件
<a name="prerequisites"></a>

首次安装 CloudWatch 代理之前须满足以下先决条件。

## 用于 CloudWatch 代理的 IAM 角色和用户
<a name="iam-setup"></a>

要访问 AWS 资源，需要具有相应的权限。您创建 IAM 角色和/或 IAM 用户，以授予 CloudWatch 代理将指标写入 CloudWatch 所需的权限。

### 为 Amazon EC2 实例创建 IAM 角色
<a name="iam-role-ec2"></a>

如果打算在 Amazon EC2 实例上运行 CloudWatch 代理，请创建具有必要权限的 IAM 角色。

1. 登录 AWS 管理控制台，并通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中选择**角色**，然后选择**创建角色**。

1. 确保在 **Trusted entity type**（受信任实体的类型）下选择了 **AWS service**（服务）。

1. 对于**使用案例**，在**常见使用案例**下选择 **EC2**。

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

1. 在策略列表中，选中 **CloudWatchAgentServerPolicy** 旁边的复选框。如有必要，请使用搜索框查找该策略。

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

1. 在**角色名称**中，输入角色的名称，例如 `CloudWatchAgentServerRole`。（可选）为其指定说明。然后选择**创建角色**。

（可选）如果代理将向 CloudWatch Logs 发送日志，并且您想要代理能够为这些日志组设置保留策略，则需要将 `logs:PutRetentionPolicy` 权限添加到角色。

### 为本地服务器创建 IAM 用户
<a name="iam-user-onprem"></a>

如果打算在本地部署服务器上运行 CloudWatch 代理，请创建具有必要权限的 IAM 用户。

**注意**  
此场景需要 IAM 用户具有编程访问权限和长期凭证，这会带来安全风险。为帮助减轻这种风险，我们建议仅向这些用户提供执行任务所需的权限，并在不再需要这些用户时将其移除。

1. 登录 AWS 管理控制台，并通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中选择**用户**，然后选择**添加用户**。

1. 为新用户输入用户名。

1. 选择 **Access key - Programmatic access**（访问密钥 - 编程访问），然后选择 **Next: Permissions**（下一步: 权限）。

1. 选择**直接附上现有策略**。

1. 在策略列表中，选中 **CloudWatchAgentServerPolicy** 旁边的复选框。如有必要，请使用搜索框查找该策略。

1. 选择**下一步：标签**。

1. 可以选择为新 IAM 用户创建标签，然后选择 **下一步：审核**。

1. 确认列出了正确的策略，然后选择 **Create user**（创建用户）。

1. 在新用户的名称旁边，选择**显示**。将访问密钥和私有密钥复制到一个文件以便在安装该代理时使用。选择**关闭**。

### 将 IAM 角色附加到 Amazon EC2 实例
<a name="attach-iam-role"></a>

要使 CloudWatch 代理能够从 Amazon EC2 实例发送数据，必须将 IAM 角色附加到该实例。

有关将 IAM 角色附加到实例的更多信息，请参阅《Amazon Elastic Compute Cloud 用户指南》中的[将 IAM 角色附加到实例](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/iam-roles-for-amazon-ec2.html#attach-iam-role)。

### 允许 CloudWatch 代理设置日志保留策略
<a name="CloudWatch-Agent-PutLogRetention"></a>

您可以配置 CloudWatch 代理，以便为接收其发送的日志事件的日志组设置保留策略。如果您这样做，您必须向代理使用的 IAM 角色或用户授予 `logs:PutRetentionPolicy`。代理使用 IAM 角色在 Amazon EC2 实例上运行，使用本地部署服务器的 IAM 用户。

**向 CloudWatch 代理的 IAM 角色授予设置日志保留策略的权限**

1. 登录 AWS 管理控制台，然后通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在左侧导航窗格中，选择 **Roles（角色）**。

1. 在搜索框中，键入 CloudWatch 代理的 IAM 角色名称的开头部分。您在创建角色时选择了此名称。其可能被命名为 `CloudWatchAgentServerRole`。

   当您看到角色时，选择角色的名称。

1. 在 **Permissions**（权限）选项卡中，依次选择 **Add permissions**（添加权限）和 **Create inline policy**（创建内联策略）。

1. 选择 **JSON** 选项卡并将以下策略复制到框中，替换框中默认的 JSON:

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "logs:PutRetentionPolicy",
         "Resource": "*"
       }
     ]
   }
   ```

------

1. 选择**查看策略**。

1. 对于 **Name**（名称），输入 **CloudWatchAgentPutLogsRetention** 或类似内容，然后选择 **Create policy**（创建策略）。

**向 CloudWatch 代理的 IAM 用户授予设置日志保留策略的权限**

1. 登录 AWS 管理控制台，然后通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在左侧导航窗格中，选择 **用户**。

1. 在搜索框中，键入 CloudWatch 代理的 IAM 用户名称的开头部分。您在创建用户时选择了此名称。

   当您看到用户时，选择用户的名称。

1. 在**权限**选项卡中，选择 **添加内联策略**。

1. 选择 **JSON** 选项卡并将以下策略复制到框中，替换框中默认的 JSON:

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "logs:PutRetentionPolicy",
         "Resource": "*"
       }
     ]
   }
   ```

------

1. 选择**查看策略**。

1. 对于 **Name**（名称），输入 **CloudWatchAgentPutLogsRetention** 或类似内容，然后选择 **Create policy**（创建策略）。

## 网络要求
<a name="network-requirements"></a>

**注意**  
服务器位于公有子网中时，确保能访问互联网网关。服务器位于私有子网中时，确保能通过 NAT 网关或 VPC 端点进行访问。有关 NAT 网关的更多信息，请参阅 [https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)。

您的 Amazon EC2 实例必须具有出站互联网访问权限，才能将数据发送到 CloudWatch 或 CloudWatch Logs。有关如何配置互联网访问权限的更多信息，请参阅《Amazon VPC 用户指南》中的[互联网网关](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)。

### 使用 VPC 端点
<a name="vpc-endpoints"></a>

如果使用的是 VPC，且想在没有公共互联网访问权限的情况下使用 CloudWatch 代理，则可为 CloudWatch 和 CloudWatch Logs 配置 VPC 端点。

要在您的代理上配置的终端节点和端口如下所示：
+ 如果要使用代理收集指标，则必须将相应区域的 CloudWatch 端点加入白名单。这些端点在 [Amazon CloudWatch 端点和配额](https://docs.aws.amazon.com/general/latest/gr/cw_region.html)中列出。
+ 如果要使用代理收集日志，则必须将相应区域的 CloudWatch Logs 端点加入白名单。这些端点在 [Amazon CloudWatch Logs 端点和配额](https://docs.aws.amazon.com/general/latest/gr/cwl_region.html)中列出。
+ 如果使用 Systems Manager 安装代理或使用 Parameter Store 存储配置文件，您必须将相应区域的 Systems Manager 端点加入白名单。这些端点列于 [AWS Systems Manager endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/ssm.html) 中。