使用代理配置在 EC2 实例上安装 CloudWatch 代理 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用代理配置在 EC2 实例上安装 CloudWatch 代理

在 Parameter Store 中保存 CloudWatch 代理配置后,您可以在其他服务器上安装该代理时使用该配置。

将 IAM 角色附加到实例

您必须将 CloudWatchAgentServerRole IAM 角色附加到 EC2 实例,才能在该实例上运行 CloudWatch 代理。该角色允许 CloudWatch 代理在实例上执行操作。您之前应该已经创建了此角色。有关更多信息,请参阅创建 IAM 角色和用户以用于 CloudWatch 代理

有关更多信息,请参阅适用于 Windows 实例的 Amazon EC2 用户指南中的将 IAM 角色附加到实例

在 Amazon EC2 实例上下载 CloudWatch 代理软件包

注意

当您安装或更新 CloudWatch 代理时,仅支持 Uninstall and reinstall(卸载并重新安装)选项。您无法使用 In-place update(就地更新)选项。

您可以使用 Systems Manager Run Command 或 Amazon S3 下载链接下载 CloudWatch 代理程序包。有关使用 Amazon S3 下载链接的信息,请参阅 下载 CloudWatch 代理软件包

使用 Systems Manager 在 Amazon EC2 实例上下载 CloudWatch 代理

您必须确保为 Systems Manager 正确配置实例,然后才能使用 Systems Manager 安装 CloudWatch 代理。

安装或更新 SSM Agent

在 Amazon EC2 实例上,CloudWatch 代理要求实例运行 2.2.93.0 或更高版本。在安装 CloudWatch 代理之前,如果还没有在实例上更新或安装 SSM Agent,请执行该操作。

有关在运行 Linux 的实例上安装或更新 SSM Agent 的信息,请参阅 Amazon Systems Manager 用户指南中的在 Linux 实例上安装和配置 SSM Agent

有关在运行 Windows 服务器的实例上安装或更新 SSM Agent 的信息,请参阅 Amazon Systems Manager 用户指南中的在 Windows 实例上安装和配置 SSM Agent

(可选)验证 Systems Manager 的先决条件

在使用 Systems Manager Run Command 安装和配置 CloudWatch 代理之前,请确保您的实例满足 Systems Manager 的最低要求。有关更多信息,请参阅 Amazon Systems Manager 用户指南中的设置 Amazon Systems Manager

验证互联网访问权限

您的 Amazon EC2 实例必须具有出站互联网访问权限,才能将数据发送到 CloudWatch 或 CloudWatch Logs。有关如何配置互联网访问权限的更多信息,请参阅 Amazon VPC 用户指南中的互联网网关

下载 CloudWatch 代理软件包

Systems Manager Run Command 使您能够管理实例配置。您可以指定一个 Systems Manager 文档,指定一些参数,然后在一个或多个实例上执行命令。实例上的 SSM Agent 负责处理命令并按指定方式配置实例。

使用 Run Command 下载 CloudWatch 代理
  1. 通过 https://console.aws.amazon.com/systems-manager/ 打开 Systems Manager 控制台。

  2. 在导航窗格中,选择 Run Command

    –或者–

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

  3. 选择 Run command(运行命令)

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

  5. Targets(目标)区域中,选择要在其上安装 CloudWatch 代理的实例。如果未看到特定的实例,则可能没有为 Run Command 配置该实例。有关更多信息,请参阅 Amazon Systems Manager 用户指南中的为混合环境设置 Amazon Systems Manager

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

  7. Name (名称) 框中,输入 AmazonCloudWatchAgent

  8. Version (版本) 设置为 latest (最新) 以安装最新版本的代理。

  9. 选择运行

  10. (可选)在 Targets and outputs(目标和输出)区域中,选择实例名称旁边的按钮,然后选择 View output(查看输出)。Systems Manager 将显示已成功安装该代理。

(可选)修改 CloudWatch 代理的通用配置和命名配置文件

CloudWatch 代理包含一个名为 common-config.toml 的配置文件。您可以使用该文件指定代理和区域信息(可选)。

在运行 Linux 的服务器上,该文件位于 /opt/aws/amazon-cloudwatch-agent/etc 目录中。在运行 Windows Server 的服务器上,该文件位于 C:\ProgramData\Amazon\AmazonCloudWatchAgent 目录中。

默认 common-config.toml 如下所示:

# This common-config is used to configure items used for both ssm and cloudwatch access ## Configuration for shared credential. ## Default credential strategy will be used if it is absent here: ## Instance role is used for EC2 case by default. ## AmazonCloudWatchAgent profile is used for onPremise case by default. # [credentials] # shared_credential_profile = "{profile_name}" # shared_credential_file= "{file_name}" ## Configuration for proxy. ## System-wide environment-variable will be read if it is absent here. ## i.e. HTTP_PROXY/http_proxy; HTTPS_PROXY/https_proxy; NO_PROXY/no_proxy ## Note: system-wide environment-variable is not accessible when using ssm run-command. ## Absent in both here and environment-variable means no proxy will be used. # [proxy] # http_proxy = "{http_url}" # https_proxy = "{https_url}" # no_proxy = "{domain}"

最初将注释所有行。要设置凭证配置文件或代理设置,请从该行中删除 # 并指定一个值。您可以手动编辑该文件,或者使用 Systems Manager 中的 RunShellScript Run Command 执行该操作:

  • shared_credential_profile – 对于本地部署服务器,此行指定 IAM 用户凭证配置文件,以用于将数据发送到 CloudWatch。如果您将此行注释掉,则会使用 AmazonCloudWatchAgent

    在 EC2 实例上,您可以使用此行让 CloudWatch 代理将数据从该实例发送到不同 Amazon 区域中的 CloudWatch。要执行此操作,请指定一个包含 region 字段的命名配置文件,该字段指定要发送到的区域的名称。

    如果指定 shared_credential_profile,您还必须从 [credentials] 行开头删除 #

  • shared_credential_file – 要让代理在位于默认路径以外的路径中的文件中查找凭证,请在此处指定完整的路径和文件名。在 Linux 上,默认路径为 /root/.aws;在 Windows Server 上,默认路径为 C:\\Users\\Administrator\\.aws

    下面的第一个示例显示对 Linux 服务器有效的 shared_credential_file 行的语法,第二个示例对 Windows Server 有效。在 Windows Server 上,您必须转义 \ 字符。

    shared_credential_file= "/usr/username/credentials"
    shared_credential_file= "C:\\Documents and Settings\\username\\.aws\\credentials"

    如果指定 shared_credential_file,您还必须从 [credentials] 行开头删除 #

  • 代理设置 – 如果您的服务器使用 HTTP 或 HTTPS 代理联系 Amazon 服务,请在 http_proxyhttps_proxy 字段中指定这些代理。如果应从代理中排除某些 URL,请在 no_proxy 字段中指定这些 URL 并以逗号分隔。

启动 CloudWatch 代理

您可以使用 Systems Manager Run Command 或命令行来启动代理。

使用 Systems Manager Run Command 启用 CloudWatch 代理

使用 Systems Manager Run Command 执行以下步骤来启动代理。

使用 Run Command 启动 CloudWatch 代理
  1. 通过 https://console.aws.amazon.com/systems-manager/ 打开 Systems Manager 控制台。

  2. 在导航窗格中,选择 Run Command

    –或者–

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

  3. 选择 Run command(运行命令)

  4. 命令文档列表中,选择 AmazonCloudWatch-ManageAgent

  5. Targets(目标)区域中,选择安装了 CloudWatch 代理的实例。

  6. 操作列表中,选择配置

  7. 可选的配置源列表中,选择 ssm

  8. 可选的配置位置框中,输入您创建并保存到 Systems Manager Parameter Store 的代理配置文件的 Systems Manager 参数名称,如 创建 CloudWatch 代理配置文件 中所述。

  9. 在完成这些步骤后,在可选的重新启动列表中选择以启动该代理。

  10. 选择运行

  11. (可选)在 Targets and outputs(目标和输出)区域中,选择实例名称旁边的按钮,然后选择 View output(查看输出)。Systems Manager 将显示已成功启动该代理。

使用命令行在 Amazon EC2 实例上启动 CloudWatch 代理

可以执行以下步骤以使用命令行在 Amazon EC2 实例上安装 CloudWatch 代理。

使用命令行在 Amazon EC2 实例上启动 CloudWatch 代理
  • 此命令中,-a fetch-config 会使代理加载最新版本的 CloudWatch 代理配置文件,-s 则会启动该代理。

    Linux 和 macOS:如果在 Systems Manager Parameter Store 中保存了配置文件,请输入以下命令:

    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c ssm:configuration-parameter-store-name

    Linux 和 macOS:如果在本地电脑上保存了配置文件,请输入以下命令。将 configuration-file-path 替换为指向代理配置文件的路径。如果您使用向导创建此文件,则此文件命名为 config.json;如果您手动创建该文件,则该文件可能命名为 amazon-cloudwatch-agent.json

    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:configuration-file-path

    Windows Server:如果在 Systems Manager Parameter Store 中保存代理配置文件,请从 PowerShell 控制台中输入以下命令:

    & "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c ssm:configuration-parameter-store-name

    Windows Server:如果在本地计算机上保存代理配置文件,请从 PowerShell 控制台中输入以下命令:

    & "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c file:"C:\Program Files\Amazon\AmazonCloudWatchAgent\config.json"