AWS Systems Manager
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

将日志发送到 CloudWatch Logs (CloudWatch 代理)

您可以配置和使用 Amazon CloudWatch 代理从实例收集指标和日志,而不是使用 SSM 代理完成此类任务。CloudWatch 代理能够收集的 Amazon EC2 实例相关指标比 SSM 代理要多。此外,还可以使用 CloudWatch 代理从本地服务器收集指标。

也可以将代理配置设置存储在 Systems Manager Parameter Store 中,以供 CloudWatch 代理使用。

注意

Currently, AWS Systems Manager supports migrating from SSM 代理 to the CloudWatch 代理 for collecting logs and metrics on 64-bit versions of Windows only. For information about setting up the CloudWatch 代理 on other operating systems, and for complete information about using the CloudWatch 代理, see Collect Metrics from Amazon Elastic Compute Cloud Instances and On-Premises Servers with the CloudWatch 代理 in the Amazon CloudWatch User Guide.

You can use the CloudWatch 代理 on other supported operating systems, but you will not be able to use Systems Manager to perform a tool migration.

将 Windows Server 实例日志收集迁移到 CloudWatch 代理

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

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

对于 64 位 Amazon EC2 Windows 实例,可以自动或手动执行到 CloudWatch 代理的迁移。对于本地实例,必须手动执行此过程。

注意

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

建议先在数量有限的实例上测试迁移,再将整个队列迁移到 CloudWatch 代理。迁移后,如果更倾向于使用 SSM 代理进行日志收集,可以改为使用 SSM 代理。

重要

在以下情况下,不能使用本主题中介绍的步骤向 CloudWatch 代理迁移:

  • SSM 代理的现有配置指定多个区域。

  • SSM 代理的现有配置指定多组访问/私有密钥凭证。

在上述情况下,必须在 SSM 代理中禁用日志收集并安装 CloudWatch 代理,而不执行迁移过程。有关更多信息,请参阅以下主题:

开始前的准备工作

在开始迁移到 CloudWatch 代理进行日志收集前,请确保将对其执行迁移的实例满足以下要求:

  • 操作系统为 64 位 Windows Server 版本。

  • 实例上安装了 SSM 代理 2.2.93.0 或更高版本。

  • 已在实例上配置 SSM 代理进行监控。

自动迁移到 CloudWatch 代理

对于仅 Amazon EC2 Windows 实例,可以使用 AWS Systems Manager 控制台或 AWS CLI 自动迁移到 CloudWatch 代理作为日志收集工具。

注意

Currently, AWS Systems Manager supports migrating from SSM 代理 to the CloudWatch 代理 for collecting logs and metrics on 64-bit versions of Windows only. For information about setting up the CloudWatch 代理 on other operating systems, and for complete information about using the CloudWatch 代理, see Collect Metrics from Amazon Elastic Compute Cloud Instances and On-Premises Servers with the CloudWatch 代理 in the Amazon CloudWatch User Guide.

You can use the CloudWatch 代理 on other supported operating systems, but you will not be able to use Systems Manager to perform a tool migration.

迁移成功后,请在 CloudWatch 中检查结果,确保正在接收预期的指标、日志或 Windows 事件日志。如果对结果满意,可以选择将 CloudWatch 代理配置设置存储到 Parameter Store 中。如果迁移不成功或者结果不符合预期,可以回滚到使用 SSM 代理进行日志收集

自动迁移到 CloudWatch 代理 (控制台)

  1. https://console.amazonaws.cn/systems-manager/ 上打开 AWS Systems Manager 控制台。

  2. 在导航窗格中,选择 Run Command,然后选择运行命令

    注意

    如果打开了 AWS Systems Manager 主页,请向下滚动并选择浏览 Run Command

  3. 命令文档列表中,选择 AmazonCloudWatch-MigrateCloudWatchAgent

  4. 目标部分,选择一个选项,然后选择要更新的实例。

  5. 选择 Run

自动迁移到 CloudWatch 代理 (AWS CLI)

  • 运行以下命令:

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

    ID1ID2ID3 表示要更新的实例的 ID,例如 i-1234567890abcdef0

手动迁移到 CloudWatch 代理

对于本地 Windows 实例或 Amazon EC2 Windows 实例,请按照以下步骤将日志收集手动迁移到 Amazon CloudWatch 代理。

第一步:安装 CloudWatch 代理

  1. https://console.amazonaws.cn/systems-manager/ 上打开 AWS Systems Manager 控制台。

  2. 在导航窗格中,选择 Run Command,然后选择运行命令

    注意

    如果打开了 AWS Systems Manager 主页,请向下滚动并选择浏览 Run Command

  3. 命令文档列表中,选择 AWS-ConfigureAWSPackage

  4. 目标部分,选择一个选项,然后选择要更新的实例。

  5. 操作列表中,选择安装

  6. 名称中,键入 AmazonCloudWatchAgent

  7. 版本中,键入最新 (如果未默认提供)。

  8. 选择 Run

第二步:更新配置数据 JSON 格式

  • 要更新 CloudWatch 代理现有配置设置的 JSON 格式,请使用 AWS Systems Manager Run Command 或直接使用 RDP 连接登录实例,然后在实例上运行以下 Windows PowerShell 命令 (一次运行一条命令):

    cd ${Env:ProgramFiles}\\Amazon\\AmazonCloudWatchAgent
    .\\amazon-cloudwatch-agent-config-wizard.exe --isNonInteractiveWindowsMigration

    {Env:ProgramFiles} 表示可找到包含 CloudWatch 代理的 Amazon 文件夹的位置,通常为 C:\Program Files

第三步:配置并启动 CloudWatch 代理

  1. https://console.amazonaws.cn/systems-manager/ 上打开 AWS Systems Manager 控制台。

  2. 在导航窗格中,选择 Run Command,然后选择运行命令

    注意

    如果打开了 AWS Systems Manager 主页,请向下滚动并选择浏览 Run Command

  3. Command document 列表中,选择 AWS-RunPowerShellScript

  4. 目标部分,选择一个选项,然后选择要更新的实例。

  5. 命令框中,输入以下两条命令:

    cd ${Env:ProgramFiles}\Amazon\AmazonCloudWatchAgent
    .\amazon-cloudwatch-agent-ctl.ps1 -a fetch-config -m ec2 -c file:config.json -s

    {Env:ProgramFiles} 表示可找到包含 CloudWatch 代理的 Amazon 文件夹的位置,通常为 C:\Program Files

  6. 选择 Run

第四步:在 SSM 代理中禁用日志收集

  1. https://console.amazonaws.cn/systems-manager/ 上打开 AWS Systems Manager 控制台。

  2. 在导航窗格中,选择 Run Command,然后选择运行命令

    注意

    如果打开了 AWS Systems Manager 主页,请向下滚动并选择浏览 Run Command

  3. 命令文档列表中,选择 AWS-ConfigurecloudWatch

  4. 目标部分,选择一个选项,然后选择要更新的实例。

  5. 状态列表中,选择禁用

  6. 选择 Run

    完成上述步骤后,请在 CloudWatch 中检查日志,确保正在接收预期的指标、日志或 Windows 事件日志。如果对结果满意,可以选择将 CloudWatch 代理配置设置存储到 Parameter Store 中。如果迁移不成功或者结果不符合预期,可以回滚到使用 SSM 代理进行日志收集

将 CloudWatch 代理配置设置存储到 Parameter Store 中

您可以将 Amazon CloudWatch 代理配置文件的内容存储到 Parameter Store 中。通过将此配置数据保存在一个参数中,多个实例可以从它获取配置设置,您不必再在实例上创建或手动更新配置文件。例如,您可以使用 Run Command 将此参数的内容写入多个实例的配置文件,或使用 状态管理器 帮助避免实例队列间的 CloudWatch 代理配置设置出现配置偏差。

运行 CloudWatch 代理配置向导时,可以选择让向导将配置设置保存为 Parameter Store 中的新参数。有关运行 CloudWatch 代理配置向导的信息,请参阅使用向导创建 CloudWatch 代理配置文件

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

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

{Env:ProgramFiles} 表示可找到包含 CloudWatch 代理的 Amazon 文件夹的位置,通常为 C:\Program Files

建议在此实例以外的位置保留此文件中 JSON 内容的备份。

有关创建参数的信息,请参阅创建 Systems Manager 参数

有关 CloudWatch 代理的更多信息,请参阅 Amazon CloudWatch User Guide 中的使用 CloudWatch 代理从 Amazon Elastic Compute Cloud 实例和本地服务器中收集指标

回滚到使用 SSM 代理进行日志收集

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

第一步:从 SSM 代理检索配置数据

  1. 在需要恢复为使用 SSM 代理收集日志的实例上,找到 SSM 代理配置文件的内容。此 JSON 文件通常位于以下位置:

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

    {Env:ProgramFiles} 表示可找到 Amazon 文件夹的位置,通常为 C:\Program Files

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

    建议在此实例以外的位置存储此 JSON 的备份。

第二步:卸载 CloudWatch 代理

  1. https://console.amazonaws.cn/systems-manager/ 上打开 AWS Systems Manager 控制台。

  2. 在导航窗格中,选择 Run Command,然后选择运行命令

    注意

    如果打开了 AWS Systems Manager 主页,请向下滚动并选择浏览 Run Command

  3. 命令文档列表中,选择 AWS-ConfigureAWSPackage

  4. 目标部分,选择一个选项,然后选择要更新的实例。

  5. 操作列表中,选择卸载

  6. 名称中,键入 AmazonCloudWatchAgent

  7. 选择 Run

第三步:在 SSM 代理中重新启用日志收集

  1. https://console.amazonaws.cn/systems-manager/ 上打开 AWS Systems Manager 控制台。

  2. 在导航窗格中,选择 Run Command,然后选择运行命令

    注意

    如果打开了 AWS Systems Manager 主页,请向下滚动并选择浏览 Run Command

  3. 命令文档列表中,选择 AWS-ConfigureCloudWatch

  4. 目标部分,选择一个选项,然后选择要更新的实例。

  5. 状态列表中,选择已启用

  6. 属性框 中,将保存的旧配置数据的内容粘贴到文本文件中。

  7. 选择 Run