AWS Systems Manager
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 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-ag;。

重要

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

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

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

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

开始前的准备工作

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

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

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

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

自动迁移到 CloudWatch 代理

只有对于 Amazon EC2 Windows 实例,才能使用 AWS Systems Manager 控制台、Amazon EC2 控制台或 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 代理 进行日志收集

注意

如果需要迁移包含 {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. 通过以下网址打开 AWS Systems Manager 控制台:https://console.amazonaws.cn/systems-manager/

    -或者-

    打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

    注意

    如果您使用的是 Amazon EC2 控制台,则某些字段名称和位置可能稍有不同。

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

    注意

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

  3. Command document (命令文档) 列表中,选择 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-02573cafcfEXAMPLE

手动迁移到 CloudWatch 代理

对于本地 Windows 实例或 Amazon EC2 Windows 实例,请按照以下步骤将日志收集手动迁移到 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. 通过以下网址打开 AWS Systems Manager 控制台:https://console.amazonaws.cn/systems-manager/

    -或者-

    打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

    注意

    如果您使用的是 Amazon EC2 控制台,则某些字段名称和位置可能稍有不同。

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

    注意

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

  3. Command document (命令文档) 列表中,选择 AWS-ConfigureAWSPackage

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

  5. Action (操作) 列表中,选择 Install

  6. Name (名称) 中键入 AmazonCloudWatchAgent

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

  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. 通过以下网址打开 AWS Systems Manager 控制台:https://console.amazonaws.cn/systems-manager/

    -或者-

    打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

    注意

    如果您使用的是 Amazon EC2 控制台,则某些字段名称和位置可能稍有不同。

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

    注意

    仅 AWS Systems Manager:如果打开了 AWS Systems Manager 主页,请向下滚动并选择Explore Run Command (浏览 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. 通过以下网址打开 AWS Systems Manager 控制台:https://console.amazonaws.cn/systems-manager/

    -或者-

    打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

    注意

    如果您使用的是 Amazon EC2 控制台,则某些字段名称和位置可能稍有不同。

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

    注意

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

  3. Command document (命令文档) 列表中,选择 AWS-ConfigurecloudWatch

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

  5. Status (状态) 列表中,选择 Disabled

  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 Agent 从 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. 通过以下网址打开 AWS Systems Manager 控制台:https://console.amazonaws.cn/systems-manager/

    -或者-

    打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

    注意

    如果您使用的是 Amazon EC2 控制台,则某些字段名称和位置可能稍有不同。

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

    注意

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

  3. Command document (命令文档) 列表中,选择 AWS-ConfigureAWSPackage

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

  5. Action (操作) 列表中,选择 Uninstall

  6. Name (名称) 中键入 AmazonCloudWatchAgent

  7. 选择 Run

第三步:在 SSM 代理 中重新启用日志收集(控制台)

  1. 通过以下网址打开 AWS Systems Manager 控制台:https://console.amazonaws.cn/systems-manager/

    -或者-

    打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

    注意

    如果您使用的是 Amazon EC2 控制台,则某些字段名称和位置可能稍有不同。

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

    注意

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

  3. Command document (命令文档) 列表中,选择 AWS-ConfigureCloudWatch

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

  5. Status (状态) 列表中,选择 Enabled

  6. Properties (属性)(AWS Systems Manager 控制台)或 Parameters (参数) 框(Amazon EC2 控制台) 中,将保存的旧配置数据的内容粘贴到文本文件中。

  7. 选择 Run