

• Amazon Systems Manager CloudWatch 控制面板在 2026 年 4 月 30 日之后将不再可用。客户可以像现在一样继续使用 Amazon CloudWatch 控制台来查看、创建和管理其 Amazon CloudWatch 控制面板。有关更多信息，请参阅 [Amazon CloudWatch 控制面板文档](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

# 将节点日志发送到统一的 CloudWatch Logs（CloudWatch 代理）
<a name="monitoring-cloudwatch-agent"></a>

您可以配置和使用 Amazon CloudWatch 代理，以从节点收集指标和日志，而不是使用 Amazon Systems Manager 代理 (SSM Agent) 完成此类任务。CloudWatch 代理使您能够收集到比使用 SSM Agent 收集时更多的 Amazon EC2 实例相关指标。此外，您还可以使用 CloudWatch 代理从本地服务器收集指标。

您也可以将代理配置设置存储在 Systems Manager Parameter Store 中，以便与 CloudWatch 代理一起使用。Parameter Store 是 Amazon Systems Manager 中的一项工具。

**注意**  
Amazon Systems Manager 支持从 SSM Agent 迁移到统一的 CloudWatch 代理，以便仅在 64 位版本的 Windows 上收集日志和指标。有关在其他操作系统中设置统一 CloudWatch 代理的信息，以及有关使用 CloudWatch 代理的完整信息，请参阅 *[Amazon CloudWatch 用户指南](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/)*中的[使用 CloudWatch 代理从 Amazon EC2 实例和本地服务器收集指标和日志](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)。  
您可以在其他受支持的操作系统上使用 CloudWatch 代理，但无法使用 Systems Manager 执行工具迁移。

SSM Agent 将有关执行、计划操作、错误和运行状况的信息写入每个节点上的日志文件。手动连接到节点以查看日志文件并对 SSM Agent 的问题进行故障排除是非常耗时的工作。为更高效地监控节点，可以配置 SSM Agent 本身或 CloudWatch 代理，以将此日志数据发送到 Amazon CloudWatch Logs。

**重要**  
统一的 CloudWatch 代理已取代 SSM Agent，作为将日志数据发送到 Amazon CloudWatch Logs 的工具。不支持 SSM Agent aws:cloudWatch 插件。我们建议仅将统一的 CloudWatch 代理用于您的日志收集过程。有关更多信息，请参阅以下主题：  
[将节点日志发送到统一的 CloudWatch Logs（CloudWatch 代理）](#monitoring-cloudwatch-agent)
[将 Windows Server 节点日志收集迁移到 CloudWatch 代理](#monitoring-cloudwatch-agent-migrate)
《Amazon CloudWatch 用户指南》**中的[使用 CloudWatch 代理收集指标、日志和跟踪信息](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)。

借助 CloudWatch Logs，可以实时监控日志数据，可以通过创建一个或多个指标筛选器来搜索和筛选日志数据，可以归档历史数据并在需要时进行检索。有关 CloudWatch Logs 的更多信息，请参阅 *[Amazon CloudWatch Logs 用户指南](https://docs.amazonaws.cn/AmazonCloudWatch/latest/logs/)*。

配置代理将日志数据发送到 Amazon CloudWatch Logs 有以下好处：
+ 适用于所有 SSM Agent 日志文件的集中日志文件存储。
+ 实现对文件的更快访问，以调查错误。
+ 无限日志文件保留（可配置）。
+ 无论节点的状态如何，都可以维护和访问日志。
+ 可以访问其他 CloudWatch 功能（例如指标和告警）。

有关监控 Session Manager 活动的信息，请参阅 [记录会话活动](session-manager-auditing.md) 和 [启用和禁用会话日志记录](session-manager-logging.md)。

## 将 Windows Server 节点日志收集迁移到 CloudWatch 代理
<a name="monitoring-cloudwatch-agent-migrate"></a>

如果在受支持的 Windows Server 节点上使用 SSM Agent 将 SSM Agent 日志文件发送到 Amazon CloudWatch Logs，则可以使用 Systems Manager 从 SSM Agent 迁移到作为日志收集工具的 CloudWatch 代理，并迁移配置设置。

CloudWatch 代理在 32 位版本的 Windows Server 上不受支持。

对于 Windows Server 的 64 位 Amazon EC2 实例，您可以自动或手动执行向 CloudWatch 代理的迁移。对于本地服务器和虚拟机，必须手动执行该过程。

**注意**  
迁移期间，发送到 CloudWatch 的数据可能会中断或重复发送。迁移完成后，指标和日志数据会再次准确记录到 CloudWatch 中。

建议先在有限数量的节点上测试迁移，再将整个机群迁移到 CloudWatch 代理。迁移后，如果更倾向于使用 SSM Agent 进行日志收集，可以改为使用它。

**重要**  
在以下情况下，不能使用本主题中介绍的步骤向 CloudWatch 代理迁移：  
SSM Agent 的现有配置指定多个区域。
SSM Agent 的现有配置指定多组访问/私密密钥凭证。
在上述情况下，必须在 SSM Agent 中关闭日志收集并安装 CloudWatch 代理，而不执行迁移过程。有关更多信息，请参阅 *Amazon CloudWatch 用户指南*中的以下主题：  
[安装 CloudWatch 代理](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html)
[在本地部署服务器上安装 CloudWatch 代理](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-premise.html)

**开始前的准备工作**  
在开始迁移到 CloudWatch 代理进行日志收集前，请确保将对其执行迁移的节点满足以下要求：
+ 操作系统为 64 位版本的 Windows Server。
+ 节点上安装了 SSM Agent 2.2.93.0 或更高版本。
+ 已在节点上配置 SSM Agent 进行监控。

**Topics**
+ [自动迁移到 CloudWatch 代理](#monitoring-cloudwatch-agent-migrate-auto)
+ [手动迁移到 CloudWatch 代理](#monitoring-cloudwatch-agent-migrate-manual)

### 自动迁移到 CloudWatch 代理
<a name="monitoring-cloudwatch-agent-migrate-auto"></a>

仅对于 Windows Server 的 Amazon EC2 实例，您可以使用 Amazon Systems Manager 控制台或 Amazon Command Line Interface (Amazon CLI) 自动迁移到 CloudWatch 代理以作为日志收集工具。

**注意**  
Amazon Systems Manager 支持从 SSM Agent 迁移到统一的 CloudWatch 代理，以便仅在 64 位版本的 Windows 上收集日志和指标。有关在其他操作系统中设置统一 CloudWatch 代理的信息，以及有关使用 CloudWatch 代理的完整信息，请参阅 *[Amazon CloudWatch 用户指南](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/)*中的[使用 CloudWatch 代理从 Amazon EC2 实例和本地服务器收集指标和日志](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)。  
您可以在其他受支持的操作系统上使用 CloudWatch 代理，但无法使用 Systems Manager 执行工具迁移。

迁移成功后，请在 CloudWatch 中检查结果，以确保正在接收预期的指标、日志或 Windows 事件日志。如果对结果满意，可以选择[将 CloudWatch 代理配置设置存储到 Parameter Store 中](#monitoring-cloudwatch-agent-store-config)。如果迁移不成功或者结果不符合预期，可以尝试[回滚到使用 SSM Agent 进行日志收集](#monitoring-cloudwatch-agent-roll-back)。

**注意**  
如果需要迁移包含 `{hostname}` 条目的源配置文件，则请注意，在迁移完成后，`{hostname}` 条目会更改字段的值。例如，假设下面的 `"LogStream": "{hostname}"` 条目映射到名为 *MyLogServer001* 的服务器。  

```
{
"Id": "CloudWatchIISLogs",
"FullName": "AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch",
"Parameters": {
"AccessKey": "",
"SecretKey": "",
"Region": "us-east-1",
"LogGroup": "Production-Windows-IIS",
"LogStream": "{hostname}"
     }
}
```
迁移完成后，该条目将映射到一个域，例如 ip-11-1-1-11.production。ExampleCompany.com。要保留本地主机名值，请指定 `{local_hostname}` 而不是 `{hostname}`。

**自动迁移到 CloudWatch 代理（控制台）**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.amazonaws.cn/systems-manager/)，打开 Amazon Systems Manager 控制台。

1. 在导航窗格中，选择 **Run Command**，然后选择 **Run command（运行命令）**。

1. 在 **Command document（命令文档）**列表中，请选择 `AmazonCloudWatch-MigrateCloudWatchAgent`。

1. 对于 **Status（状态）**，选择 **Enabled（已启用）**。

1. 在 **Targets**（目标）部分中，通过指定标签、手动选择实例或边缘设备或指定资源组，选择要在其上运行此操作的托管式节点。
**提示**  
如果未列出您希望看到的托管式节点，请参阅 [排除托管式节点可用性的问题](fleet-manager-troubleshooting-managed-nodes.md) 以获取故障排除技巧。

1. 对于 **Rate control（速率控制）**：
   + 对于 **Concurrency**（并发），请指定要同时运行该命令的托管式节点的数量或百分比。
**注意**  
如果您通过指定应用于托管式节点的标签或指定 Amazon Resource Groups 来选择目标，但不确定有多少个托管式节点已被设为目标，则可通过指定百分比来限制可同时运行该文档的目标的数量。
   + 对于 **Error threshold**（错误阈值），请指定当命令在一定数量或百分比的节点上失败后，何时在其他托管式节点上停止运行该命令。例如，如果您指定三个错误，Systems Manager 将在收到第四个错误时停止发送该命令。仍在处理该命令的托管式节点也可能发送错误。

1. （可选）对于 **输出选项**，要将命令输出保存到文件，请选中 **将命令输出写入 S3 存储桶** 框。在输入框中输入存储桶和前缀（文件夹）名称。
**注意**  
授予将数据写入 S3 存储桶的能力的 S3 权限，是分配给实例的实例配置文件（适用于 EC2 实例）或 IAM 服务角色（混合激活的计算机）的权限，而不是执行此任务的 IAM 用户的权限。有关更多信息，请参阅[配置 Systems Manager 所需的实例权限](setup-instance-permissions.md)或[为混合环境创建 IAM 服务角色](hybrid-multicloud-service-role.md)。此外，如果指定的 S3 存储桶位于不同的 Amazon Web Services 账户 中，请确保与该托管式节点关联的实例配置文件或 IAM 服务角色具有写入该存储桶的所需权限。

1. 在 **SNS 通知**部分，如果需要发送有关命令执行状态的通知，请选中 **Enable SNS notifications（启用 SNS 通知）**复选框。

   有关为 Run Command 配置 Amazon SNS 通知的更多信息，请参阅 [使用 Amazon SNS 通知监控 Systems Manager 状态更改](monitoring-sns-notifications.md)。

1. 选择 **Run（运行）**。

**自动迁移到 CloudWatch 代理 (Amazon CLI)**
+ 运行如下命令。

  ```
  aws ssm send-command --document-name AmazonCloudWatch-MigrateCloudWatchAgent --targets Key=instanceids,Values=ID1,ID2,ID3
  ```

  *ID1*、*ID2* 和 *ID3* 表示要更新的节点的 ID，例如 *i-02573cafcfEXAMPLE*。

### 手动迁移到 CloudWatch 代理
<a name="monitoring-cloudwatch-agent-migrate-manual"></a>

对于本地 Windows Server 节点或适用于 Windows Server 的 Amazon EC2 实例，请按照以下步骤将日志收集手动迁移到 Amazon CloudWatch 代理。

**注意**  
如果需要迁移包含 `{hostname}` 条目的源配置文件，则请注意，在迁移完成后，`{hostname}` 条目会更改字段的值。例如，假设下面的 `"LogStream": "{hostname}"` 条目映射到名为 *MyLogServer001* 的服务器。  

```
{
"Id": "CloudWatchIISLogs",
"FullName": "AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch",
"Parameters": {
"AccessKey": "",
"SecretKey": "",
"Region": "us-east-1",
"LogGroup": "Production-Windows-IIS",
"LogStream": "{hostname}"
     }
}
```
迁移完成后，该条目将映射到一个域，例如 ip-11-1-1-11.production.ExampleCompany.com。要保留本地主机名值，请指定 `{local_hostname}` 而不是 `{hostname}`。

**第一步：安装 CloudWatch 代理（控制台）**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.amazonaws.cn/systems-manager/)，打开 Amazon Systems Manager 控制台。

1. 在导航窗格中，选择 **Run Command**，然后选择 **Run command（运行命令）**。

1. 在 **Command document（命令文档）**列表中，请选择 `AWS-ConfigureAWSPackage`。

1. 对于 **Action**（操作），选择 `Install`。

1. 对于**名称**，请输入 **AmazonCloudWatchAgent**。

1. 对于 **Version**（版本），输入 **latest**（如果在预设情况下未提供）。

1. 在 **Targets**（目标）部分中，通过指定标签、手动选择实例或边缘设备或指定资源组，选择要在其上运行此操作的托管式节点。
**提示**  
如果未列出您希望看到的托管式节点，请参阅 [排除托管式节点可用性的问题](fleet-manager-troubleshooting-managed-nodes.md) 以获取故障排除技巧。

1. 对于 **Rate control（速率控制）**：
   + 对于 **Concurrency**（并发），请指定要同时运行该命令的托管式节点的数量或百分比。
**注意**  
如果您通过指定应用于托管式节点的标签或指定 Amazon Resource Groups 来选择目标，但不确定有多少个托管式节点已被设为目标，则可通过指定百分比来限制可同时运行该文档的目标的数量。
   + 对于 **Error threshold**（错误阈值），请指定当命令在一定数量或百分比的节点上失败后，何时在其他托管式节点上停止运行该命令。例如，如果您指定三个错误，Systems Manager 将在收到第四个错误时停止发送该命令。仍在处理该命令的托管式节点也可能发送错误。

1. （可选）对于 **输出选项**，要将命令输出保存到文件，请选中 **将命令输出写入 S3 存储桶** 框。在输入框中输入存储桶和前缀（文件夹）名称。
**注意**  
授予将数据写入 S3 存储桶的能力的 S3 权限，是分配给实例的实例配置文件（适用于 EC2 实例）或 IAM 服务角色（混合激活的计算机）的权限，而不是执行此任务的 IAM 用户的权限。有关更多信息，请参阅[配置 Systems Manager 所需的实例权限](setup-instance-permissions.md)或[为混合环境创建 IAM 服务角色](hybrid-multicloud-service-role.md)。此外，如果指定的 S3 存储桶位于不同的 Amazon Web Services 账户 中，请确保与该托管式节点关联的实例配置文件或 IAM 服务角色具有写入该存储桶的所需权限。

1. 在 **SNS 通知**部分，如果需要发送有关命令执行状态的通知，请选中 **Enable SNS notifications（启用 SNS 通知）**复选框。

   有关为 Run Command 配置 Amazon SNS 通知的更多信息，请参阅 [使用 Amazon SNS 通知监控 Systems Manager 状态更改](monitoring-sns-notifications.md)。

1. 选择 **Run（运行）**。

**第二步：更新配置数据 JSON 格式**
+ 要更新 CloudWatch 代理的现有配置设置的 JSON 格式，请使用 **Run Command**（Amazon Systems Manager 中的一项工具），或直接使用 RDP 连接登录节点，然后在该节点上运行以下 Windows PowerShell 命令（一次运行一条命令）。

  ```
  cd ${Env:ProgramFiles}\\Amazon\\AmazonCloudWatchAgent
  ```

  ```
  .\\amazon-cloudwatch-agent-config-wizard.exe --isNonInteractiveWindowsMigration
  ```

  *\$1Env:ProgramFiles\$1* 表示可找到包含 CloudWatch 代理的 Amazon 目录的位置，通常为 `C:\Program Files`。

**第三步：配置并启动 CloudWatch 代理（控制台）**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.amazonaws.cn/systems-manager/)，打开 Amazon Systems Manager 控制台。

1. 在导航窗格中，选择 **Run Command**，然后选择 **Run command（运行命令）**。

1. 在 **Command document（命令文档）** 列表中，请选择 `AWS-RunPowerShellScript`。

1. 对于 **Commands**（命令），输入以下两条命令。

   ```
   cd ${Env:ProgramFiles}\Amazon\AmazonCloudWatchAgent
   ```

   ```
   .\amazon-cloudwatch-agent-ctl.ps1 -a fetch-config -m ec2 -c file:config.json -s
   ```

   *\$1Env:ProgramFiles\$1* 表示可找到包含 CloudWatch 代理的 Amazon 目录的位置，通常为 `C:\Program Files`。

1. 在 **Targets**（目标）部分中，通过指定标签、手动选择实例或边缘设备或指定资源组，选择要在其上运行此操作的托管式节点。
**提示**  
如果未列出您希望看到的托管式节点，请参阅 [排除托管式节点可用性的问题](fleet-manager-troubleshooting-managed-nodes.md) 以获取故障排除技巧。

1. 对于 **Rate control（速率控制）**：
   + 对于 **Concurrency**（并发），请指定要同时运行该命令的托管式节点的数量或百分比。
**注意**  
如果您通过指定应用于托管式节点的标签或指定 Amazon Resource Groups 来选择目标，但不确定有多少个托管式节点已被设为目标，则可通过指定百分比来限制可同时运行该文档的目标的数量。
   + 对于 **Error threshold**（错误阈值），请指定当命令在一定数量或百分比的节点上失败后，何时在其他托管式节点上停止运行该命令。例如，如果您指定三个错误，Systems Manager 将在收到第四个错误时停止发送该命令。仍在处理该命令的托管式节点也可能发送错误。

1. （可选）对于 **输出选项**，要将命令输出保存到文件，请选中 **将命令输出写入 S3 存储桶** 框。在输入框中输入存储桶和前缀（文件夹）名称。
**注意**  
授予将数据写入 S3 存储桶的能力的 S3 权限，是分配给实例的实例配置文件（适用于 EC2 实例）或 IAM 服务角色（混合激活的计算机）的权限，而不是执行此任务的 IAM 用户的权限。有关更多信息，请参阅[配置 Systems Manager 所需的实例权限](setup-instance-permissions.md)或[为混合环境创建 IAM 服务角色](hybrid-multicloud-service-role.md)。此外，如果指定的 S3 存储桶位于不同的 Amazon Web Services 账户 中，请确保与该托管式节点关联的实例配置文件或 IAM 服务角色具有写入该存储桶的所需权限。

1. 在 **SNS 通知**部分，如果需要发送有关命令执行状态的通知，请选中 **Enable SNS notifications（启用 SNS 通知）**复选框。

   有关为 Run Command 配置 Amazon SNS 通知的更多信息，请参阅 [使用 Amazon SNS 通知监控 Systems Manager 状态更改](monitoring-sns-notifications.md)。

1. 选择 **Run（运行）**。

**第四步：在 SSM Agent（控制台）中关闭日志收集**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.amazonaws.cn/systems-manager/)，打开 Amazon Systems Manager 控制台。

1. 在导航窗格中，选择 **Run Command**，然后选择 **Run command（运行命令）**。

1. 在 **Command document（命令文档）** 列表中，请选择 `AWS-ConfigureCloudWatch`。

1. 对于 **Status**（状态），请选择 **Disabled**（已禁用）。

1. 在 **Targets**（目标）部分中，通过指定标签、手动选择实例或边缘设备或指定资源组，选择要在其上运行此操作的托管式节点。
**提示**  
如果未列出您希望看到的托管式节点，请参阅 [排除托管式节点可用性的问题](fleet-manager-troubleshooting-managed-nodes.md) 以获取故障排除技巧。

1. 对于 **Status**（状态），请选择 `Disabled`。

1. 对于 **Rate control（速率控制）**：
   + 对于 **Concurrency**（并发），请指定要同时运行该命令的托管式节点的数量或百分比。
**注意**  
如果您通过指定应用于托管式节点的标签或指定 Amazon Resource Groups 来选择目标，但不确定有多少个托管式节点已被设为目标，则可通过指定百分比来限制可同时运行该文档的目标的数量。
   + 对于 **Error threshold**（错误阈值），请指定当命令在一定数量或百分比的节点上失败后，何时在其他托管式节点上停止运行该命令。例如，如果您指定三个错误，Systems Manager 将在收到第四个错误时停止发送该命令。仍在处理该命令的托管式节点也可能发送错误。

1. （可选）对于 **输出选项**，要将命令输出保存到文件，请选中 **将命令输出写入 S3 存储桶** 框。在输入框中输入存储桶和前缀（文件夹）名称。
**注意**  
授予将数据写入 S3 存储桶的能力的 S3 权限，是分配给实例的实例配置文件（适用于 EC2 实例）或 IAM 服务角色（混合激活的计算机）的权限，而不是执行此任务的 IAM 用户的权限。有关更多信息，请参阅[配置 Systems Manager 所需的实例权限](setup-instance-permissions.md)或[为混合环境创建 IAM 服务角色](hybrid-multicloud-service-role.md)。此外，如果指定的 S3 存储桶位于不同的 Amazon Web Services 账户 中，请确保与该托管式节点关联的实例配置文件或 IAM 服务角色具有写入该存储桶的所需权限。

1. 在 **SNS 通知**部分，如果需要发送有关命令执行状态的通知，请选中 **Enable SNS notifications（启用 SNS 通知）**复选框。

   有关为 Run Command 配置 Amazon SNS 通知的更多信息，请参阅 [使用 Amazon SNS 通知监控 Systems Manager 状态更改](monitoring-sns-notifications.md)。

1. 选择 **Run（运行）**。

   完成上述步骤后，请在 CloudWatch 中检查日志，以验证并确保正在接收预期的指标、日志或 Windows 事件日志。如果对结果满意，可以选择[将 CloudWatch 代理配置设置存储到 Parameter Store 中](#monitoring-cloudwatch-agent-store-config)。如果迁移不成功或者结果不符合预期，可以[回滚到使用 SSM Agent 进行日志收集](#monitoring-cloudwatch-agent-roll-back)。

## 将 CloudWatch 代理配置设置存储到 Parameter Store 中
<a name="monitoring-cloudwatch-agent-store-config"></a>

您可以将 CloudWatch 代理配置文件的内容存储到 Parameter Store 中。通过将此配置数据保存在一个参数中，多个节点可以从该参数获取配置设置，您不必再在节点上创建或手动更新配置文件。例如，您可以使用 Run Command 将该参数的内容写入多个节点上的配置文件，或使用State Manager（Amazon Systems Manager 中的一项工具）帮助避免一群节点间的 CloudWatch 代理配置设置出现配置偏差。

运行 CloudWatch 代理配置向导时，可以选择让该向导将配置设置保存为 Parameter Store 中的新参数。有关运行 CloudWatch 代理配置向导的信息，请参阅 *Amazon CloudWatch 用户指南*中的[使用向导创建 CloudWatch 代理配置文件](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html)。

如果在运行该向导时没有选择将设置保存为参数的选项，或者手动创建了 CloudWatch 代理配置文件，则可以在以下文件中检索要在节点上保存为参数的数据。

```
${Env:ProgramFiles}\Amazon\AmazonCloudWatchAgent\config.json
```

*\$1Env:ProgramFiles\$1* 表示可找到包含 CloudWatch 代理的 Amazon 目录的位置，通常为 `C:\Program Files`。

建议在该节点以外的位置保留此文件中 JSON 的备份。

有关创建参数的信息，请参阅 [在 Systems Manager 中创建 Parameter Store 参数](sysman-paramstore-su-create.md)。

有关 CloudWatch 代理的更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[使用 CloudWatch 代理从 Amazon EC2 实例和本地服务器收集指标和日志](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)。

## 回滚到使用 SSM Agent 进行日志收集
<a name="monitoring-cloudwatch-agent-roll-back"></a>

如果需要恢复为使用 SSM Agent 进行日志收集，请执行以下步骤。

**第一步：从 SSM Agent 检索配置数据**

1. 在需要恢复为使用 SSM Agent 收集日志的节点上，找到 SSM Agent 配置文件的内容。此 JSON 文件通常位于以下位置：

   `${Env:ProgramFiles}\\Amazon\\SSM\\Plugins\\awsCloudWatch\\AWS.EC2.Windows.CloudWatch.json`

   *\$1Env:ProgramFiles\$1* 表示可找到 `Amazon` 目录的位置，通常为 `C:\Program Files`。

1. 将这些数据复制到一个文本文件中，以便在后面的步骤中使用。

   建议在该节点以外的位置存储 JSON 的备份。

**第二步：卸载 CloudWatch 代理（控制台）**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.amazonaws.cn/systems-manager/)，打开 Amazon Systems Manager 控制台。

1. 在导航窗格中，选择 **Run Command**，然后选择 **Run command（运行命令）**。

1. 在 **Command document（命令文档）** 列表中，请选择 `AWS-ConfigureAWSPackage`。

1. 对于 **Action**（操作），选择 **Uninstall**（卸载）。

1. 对于 **Name（名称）**，请输入 **AmazonCloudWatchAgent**。

1. 在 **Targets**（目标）部分中，通过指定标签、手动选择实例或边缘设备或指定资源组，选择要在其上运行此操作的托管式节点。
**提示**  
如果未列出您希望看到的托管式节点，请参阅 [排除托管式节点可用性的问题](fleet-manager-troubleshooting-managed-nodes.md) 以获取故障排除技巧。

1. 对于 **Rate control（速率控制）**：
   + 对于 **Concurrency**（并发），请指定要同时运行该命令的托管式节点的数量或百分比。
**注意**  
如果您通过指定应用于托管式节点的标签或指定 Amazon Resource Groups 来选择目标，但不确定有多少个托管式节点已被设为目标，则可通过指定百分比来限制可同时运行该文档的目标的数量。
   + 对于 **Error threshold**（错误阈值），请指定当命令在一定数量或百分比的节点上失败后，何时在其他托管式节点上停止运行该命令。例如，如果您指定三个错误，Systems Manager 将在收到第四个错误时停止发送该命令。仍在处理该命令的托管式节点也可能发送错误。

1. （可选）对于 **输出选项**，要将命令输出保存到文件，请选中 **将命令输出写入 S3 存储桶** 框。在输入框中输入存储桶和前缀（文件夹）名称。
**注意**  
授予将数据写入 S3 存储桶的能力的 S3 权限，是分配给实例的实例配置文件（适用于 EC2 实例）或 IAM 服务角色（混合激活的计算机）的权限，而不是执行此任务的 IAM 用户的权限。有关更多信息，请参阅[配置 Systems Manager 所需的实例权限](setup-instance-permissions.md)或[为混合环境创建 IAM 服务角色](hybrid-multicloud-service-role.md)。此外，如果指定的 S3 存储桶位于不同的 Amazon Web Services 账户 中，请确保与该托管式节点关联的实例配置文件或 IAM 服务角色具有写入该存储桶的所需权限。

1. 在 **SNS 通知**部分，如果需要发送有关命令执行状态的通知，请选中 **Enable SNS notifications（启用 SNS 通知）**复选框。

   有关为 Run Command 配置 Amazon SNS 通知的更多信息，请参阅 [使用 Amazon SNS 通知监控 Systems Manager 状态更改](monitoring-sns-notifications.md)。

1. 选择 **Run（运行）**。

**第三步：在 SSM Agent（控制台）中重新打开日志收集**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.amazonaws.cn/systems-manager/)，打开 Amazon Systems Manager 控制台。

1. 在导航窗格中，选择 **Run Command**，然后选择 **Run command（运行命令）**。

1. 在 **Command document（命令文档）** 列表中，请选择 `AWS-ConfigureCloudWatch`。

1. 对于 **Status**（状态），请选择 `Enabled`。

1. 对于 **Properties**（属性），将保存的旧配置数据的内容粘贴到文本文件中。

1. 在 **Targets**（目标）部分中，通过指定标签、手动选择实例或边缘设备或指定资源组，选择要在其上运行此操作的托管式节点。
**提示**  
如果未列出您希望看到的托管式节点，请参阅 [排除托管式节点可用性的问题](fleet-manager-troubleshooting-managed-nodes.md) 以获取故障排除技巧。

1. 对于 **Rate control（速率控制）**：
   + 对于 **Concurrency**（并发），请指定要同时运行该命令的托管式节点的数量或百分比。
**注意**  
如果您通过指定应用于托管式节点的标签或指定 Amazon Resource Groups 来选择目标，但不确定有多少个托管式节点已被设为目标，则可通过指定百分比来限制可同时运行该文档的目标的数量。
   + 对于 **Error threshold**（错误阈值），请指定当命令在一定数量或百分比的节点上失败后，何时在其他托管式节点上停止运行该命令。例如，如果您指定三个错误，Systems Manager 将在收到第四个错误时停止发送该命令。仍在处理该命令的托管式节点也可能发送错误。

1. （可选）对于 **输出选项**，要将命令输出保存到文件，请选中 **将命令输出写入 S3 存储桶** 框。在输入框中输入存储桶和前缀（文件夹）名称。
**注意**  
授予将数据写入 S3 存储桶的能力的 S3 权限，是分配给实例的实例配置文件（适用于 EC2 实例）或 IAM 服务角色（混合激活的计算机）的权限，而不是执行此任务的 IAM 用户的权限。有关更多信息，请参阅[配置 Systems Manager 所需的实例权限](setup-instance-permissions.md)或[为混合环境创建 IAM 服务角色](hybrid-multicloud-service-role.md)。此外，如果指定的 S3 存储桶位于不同的 Amazon Web Services 账户 中，请确保与该托管式节点关联的实例配置文件或 IAM 服务角色具有写入该存储桶的所需权限。

1. 在 **SNS 通知**部分，如果需要发送有关命令执行状态的通知，请选中 **Enable SNS notifications（启用 SNS 通知）**复选框。

   有关为 Run Command 配置 Amazon SNS 通知的更多信息，请参阅 [使用 Amazon SNS 通知监控 Systems Manager 状态更改](monitoring-sns-notifications.md)。

1. 选择 **Run（运行）**。