在服务器上安装和运行 CloudWatch 代理 - Amazon CloudWatch

在服务器上安装和运行 CloudWatch 代理

为 IAM 角色或 IAM 用户创建您的代理配置文件后,使用以下步骤在具有该配置的服务器上安装并运行 CloudWatch 代理。首先,将 IAM 角色或 IAM 用户附加到将要运行代理的服务器上。然后,在该服务器上,下载代理软件包并使用您创建的代理配置文件启动它。

使用 S3 下载链接下载 CloudWatch 代理软件包

注意

要下载 CloudWatch 代理,您的连接必须使用 TLS 1.2 或更高版本。

您需要在将要运行代理的每个服务器上安装代理。

Amazon Linux AMI

CloudWatch 代理在 Amazon Linux 2023 和 Amazon Linux 2 中,可作为软件包使用。如果您使用此操作系统,则可以通过输入以下命令来安装该软件包。您还必须确保附加到实例的 IAM 角色附加了 CloudWatchAgentServerPolicy。有关更多信息,请参阅 在 Amazon EC2 实例上创建要与 CloudWatch 代理一起使用的 IAM 角色

sudo yum install amazon-cloudwatch-agent

所有操作系统

在所有支持的操作系统中,您可以使用命令行以及以下步骤中所列的 Amazon S3 下载链接来下载并安装 CloudWatch 代理。

对于每个下载链接,有一个常规链接以及每个区域的链接。例如,对于 Amazon Linux 2023 和 Amazon Linux 2 以及 x86-64 架构,三个有效的下载链接如下:

  • https://amazoncloudwatch-agent.s3.amazonaws.com/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm

  • https://amazoncloudwatch-agent-us-east-1.s3.us-east-1.amazonaws.com/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm

  • https://amazoncloudwatch-agent-eu-central-1.s3.eu-central-1.amazonaws.com/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm

架构 平台 下载链接 签名文件链接

x86-64

Amazon Linux 2023 和 Amazon Linux 2

https://amazoncloudwatch-agent.s3.amazonaws.com/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm

https://amazoncloudwatch-agent.s3.amazonaws.com/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm.sig

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm.sig

x86-64

Centos

https://amazoncloudwatch-agent.s3.amazonaws.com/centos/amd64/latest/amazon-cloudwatch-agent.rpm

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/centos/amd64/latest/amazon-cloudwatch-agent.rpm

https://amazoncloudwatch-agent.s3.amazonaws.com/centos/amd64/latest/amazon-cloudwatch-agent.rpm.sig

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/centos/amd64/latest/amazon-cloudwatch-agent.rpm.sig

x86-64

Redhat

https://amazoncloudwatch-agent.s3.amazonaws.com/redhat/amd64/latest/amazon-cloudwatch-agent.rpm

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/redhat/amd64/latest/amazon-cloudwatch-agent.rpm

https://amazoncloudwatch-agent.s3.amazonaws.com/redhat/amd64/latest/amazon-cloudwatch-agent.rpm.sig

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/redhat/amd64/latest/amazon-cloudwatch-agent.rpm.sig

x86-64

SUSE

https://amazoncloudwatch-agent.s3.amazonaws.com/suse/amd64/latest/amazon-cloudwatch-agent.rpm

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/suse/amd64/latest/amazon-cloudwatch-agent.rpm

https://amazoncloudwatch-agent.s3.amazonaws.com/suse/amd64/latest/amazon-cloudwatch-agent.rpm.sig

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/suse/amd64/latest/amazon-cloudwatch-agent.rpm.sig

x86-64

Debian

https://amazoncloudwatch-agent.s3.amazonaws.com/debian/amd64/latest/amazon-cloudwatch-agent.deb

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/debian/amd64/latest/amazon-cloudwatch-agent.deb

https://amazoncloudwatch-agent.s3.amazonaws.com/debian/amd64/latest/amazon-cloudwatch-agent.deb.sig

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/debian/amd64/latest/amazon-cloudwatch-agent.deb.sig

x86-64

Ubuntu

https://amazoncloudwatch-agent.s3.amazonaws.com/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb

https://amazoncloudwatch-agent.s3.amazonaws.com/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb.sig

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb.sig

x86-64

Oracle

https://amazoncloudwatch-agent.s3.amazonaws.com/oracle_linux/amd64/latest/amazon-cloudwatch-agent.rpm

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/oracle_linux/amd64/latest/amazon-cloudwatch-agent.rpm

https://amazoncloudwatch-agent.s3.amazonaws.com/oracle_linux/amd64/latest/amazon-cloudwatch-agent.rpm.sig

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/oracle_linux/amd64/latest/amazon-cloudwatch-agent.rpm.sig

x86-64

macOS

https://amazoncloudwatch-agent.s3.amazonaws.com/darwin/amd64/latest/amazon-cloudwatch-agent.pkg

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/darwin/amd64/latest/amazon-cloudwatch-agent.pkg

https://amazoncloudwatch-agent.s3.amazonaws.com/darwin/amd64/latest/amazon-cloudwatch-agent.pkg.sig

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/darwin/amd64/latest/amazon-cloudwatch-agent.pkg.sig

x86-64

Windows

https://amazoncloudwatch-agent.s3.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi

https://amazoncloudwatch-agent.s3.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi.sig

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi.sig

ARM64

Amazon Linux 2023 和 Amazon Linux 2

https://amazoncloudwatch-agent.s3.amazonaws.com/amazon_linux/arm64/latest/amazon-cloudwatch-agent.rpm

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/amazon_linux/arm64/latest/amazon-cloudwatch-agent.rpm

https://amazoncloudwatch-agent.s3.amazonaws.com/amazon_linux/arm64/latest/amazon-cloudwatch-agent.rpm.sig

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/amazon_linux/arm64/latest/amazon-cloudwatch-agent.rpm.sig

ARM64

Redhat

https://amazoncloudwatch-agent.s3.amazonaws.com/redhat/arm64/latest/amazon-cloudwatch-agent.rpm

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/redhat/arm64/latest/amazon-cloudwatch-agent.rpm

https://amazoncloudwatch-agent.s3.amazonaws.com/redhat/arm64/latest/amazon-cloudwatch-agent.rpm.sig

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/redhat/arm64/latest/amazon-cloudwatch-agent.rpm.sig

ARM64

Ubuntu

https://amazoncloudwatch-agent.s3.amazonaws.com/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb

https://amazoncloudwatch-agent.s3.amazonaws.com/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb.sig

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb.sig

ARM64

Debian

https://amazoncloudwatch-agent.s3.amazonaws.com/debian/arm64/latest/amazon-cloudwatch-agent.deb

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/debian/arm64/latest/amazon-cloudwatch-agent.deb

https://amazoncloudwatch-agent.s3.amazonaws.com/debian/arm64/latest/amazon-cloudwatch-agent.deb.sig

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/debian/arm64/latest/amazon-cloudwatch-agent.deb.sig

ARM64

SUSE

https://amazoncloudwatch-agent.s3.amazonaws.com/suse/arm64/latest/amazon-cloudwatch-agent.rpm

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/suse/arm64/latest/amazon-cloudwatch-agent.rpm

https://amazoncloudwatch-agent.s3.amazonaws.com/suse/arm64/latest/amazon-cloudwatch-agent.rpm.sig

https://amazoncloudwatch-agent-region.s3.region.amazonaws.com/suse/arm64/latest/amazon-cloudwatch-agent.rpm.sig

使用命令行在 Amazon EC2 实例上安装 CloudWatch 代理
  1. 下载 CloudWatch 代理。对于 Linux 服务器,请输入以下命令。对于 download-link,请使用上表中的相应下载链接。

    wget download-link

    对于运行 Windows Server 的服务器,请下载以下文件:

    https://amazoncloudwatch-agent.s3.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi
  2. 在下载该软件包后,您可以选择验证软件包签名。有关更多信息,请参阅 验证 CloudWatch 代理软件包的签名

  3. 安装 软件包。如果已在 Linux 服务器上下载 RPM 程序包,请更改为包含程序包的目录,并输入以下内容:

    sudo rpm -U ./amazon-cloudwatch-agent.rpm

    如果已在 Linux 服务器上下载 DEB 程序包,请更改为包含程序包的目录,并输入以下内容:

    sudo dpkg -i -E ./amazon-cloudwatch-agent.deb

    如果已运行在 Windows Server 的服务器上下载 MSI 程序包,请更改为包含程序包的目录,并输入以下内容:

    msiexec /i amazon-cloudwatch-agent.msi

    此命令还可在 PowerShell 中发挥作用。有关 MSI 命令选项的更多信息,请参阅 Microsoft Windows 文档中的命令行选项

(在 EC2 实例上安装)附加 IAM 角色

要使 CloudWatch 代理能够从实例发送数据,您必须将 IAM 角色附加到实例。要附加的角色是 CloudWatchAgentServerRole。您之前应该已经创建了此角色。有关更多信息,请参阅创建 IAM 角色和用户以用于 CloudWatch 代理

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

(安装在本地部署服务器上)指定 IAM 凭证和 AWS 区域

要使 CloudWatch 代理能够从本地部署服务器发送数据,您必须指定先前创建的 IAM 用户的访问密钥和私有密钥。有关创建此用户的更多信息,请参阅创建 IAM 角色和用户以用于 CloudWatch 代理

您还必须使用 AWS 配置文件的 [AmazonCloudWatchAgent] 部分中的 region 字段指定要将指标发送到的 AWS 区域,如以下示例中所示。

[profile AmazonCloudWatchAgent] region = us-west-1

下面是使用 aws configure 命令为 CloudWatch 代理创建命名配置文件的示例。该示例假设您使用默认配置文件名称 AmazonCloudWatchAgent

为 CloudWatch 代理创建 AmazonCloudWatchAgent 配置文件
  1. 如果您还没有这样做,请在服务器上安装 AWS Command Line Interface。有关更多信息,请参阅安装 AWS CLI

  2. 在 Linux 服务器上,输入以下命令并按照提示进行操作:

    sudo aws configure --profile AmazonCloudWatchAgent

    在 Windows Server 上,以管理员身份打开 PowerShell,输入以下命令并按照提示进行操作。

    aws configure --profile AmazonCloudWatchAgent

验证互联网访问权限

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

要在您的代理上配置的终端节点和端口如下所示:

  • 如果要使用代理收集指标,则必须将相应区域的 CloudWatch 端点加入白名单。这些端点在 Amazon CloudWatch 端点和配额中列出。

  • 如果要使用代理收集日志,则必须将相应区域的 CloudWatch Logs 端点加入白名单。这些端点在 Amazon CloudWatch Logs 端点和配额中列出。

  • 如果使用 Systems Manager 安装代理或使用 Parameter Store 存储配置文件,您必须将相应区域的 Systems Manager 端点加入白名单。这些端点在 AWS Systems Manager 端点和配额中列出。

(可选)修改代理的通用配置或区域信息

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

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

注意

建议您在本地模式下运行 CloudWatch 代理时使用 common-config.toml 文件来提供共享配置和凭证,当您在 Amazon EC2 上运行并且想要重复使用现有的共享凭证配置文件和文件时,该文件也非常有用。通过 common-config.toml 启用该文件还有一个额外的好处,那就是如果您的共享凭证文件在到期后使用续订的凭证进行轮换,则代理无需重启即可自动选取新凭证。

默认 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 the on-premises 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。有关创建此配置文件的更多信息,请参阅(安装在本地部署服务器上)指定 IAM 凭证和 AWS 区域

    在 EC2 实例上,您可以使用此行让 CloudWatch 代理将数据从该实例发送到不同 AWS 区域中的 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 代理联系 AWS 服务,请在 http_proxyhttps_proxy 字段中指定这些代理。如果应从代理中排除某些 URL,请在 no_proxy 字段中指定这些 URL 并以逗号分隔。

使用命令行启动 CloudWatch 代理

可以执行以下步骤以使用命令行在服务器上启动 CloudWatch 代理。

使用命令行在服务器上启动 CloudWatch 代理
  1. 将要使用的代理配置文件复制到要运行代理的服务器。记下将其复制到的路径名。

  2. 此命令中,-a fetch-config 会使代理加载最新版本的 CloudWatch 代理配置文件,-s 则会启动该代理。

    输入下列命令之一。将 configuration-file-path 替换为指向代理配置文件的路径。如果您使用向导创建此文件,则此文件命名为 config.json;如果您手动创建该文件,则该文件可能命名为 amazon-cloudwatch-agent.json

    在运行 Linux 的 EC2 实例上,输入以下命令。

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

    在运行 Linux 的本地服务器上,输入以下内容:

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

    在运行 Windows Server 的 EC2 实例上,从 PowerShell 控制台中输入以下内容:

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

    在运行 Windows Server 的本地服务器上,从 PowerShell 控制台中输入以下内容:

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