在服务器上安装和运行 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- |
https://amazoncloudwatch-agent.s3.amazonaws.com/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent- |
x86-64 |
Centos |
https://amazoncloudwatch-agent.s3.amazonaws.com/centos/amd64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent- |
https://amazoncloudwatch-agent.s3.amazonaws.com/centos/amd64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent- |
x86-64 |
Redhat |
https://amazoncloudwatch-agent.s3.amazonaws.com/redhat/amd64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent- |
https://amazoncloudwatch-agent.s3.amazonaws.com/redhat/amd64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent- |
x86-64 |
SUSE |
https://amazoncloudwatch-agent.s3.amazonaws.com/suse/amd64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent- |
https://amazoncloudwatch-agent.s3.amazonaws.com/suse/amd64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent- |
x86-64 |
Debian |
https://amazoncloudwatch-agent.s3.amazonaws.com/debian/amd64/latest/amazon-cloudwatch-agent.deb https://amazoncloudwatch-agent- |
https://amazoncloudwatch-agent.s3.amazonaws.com/debian/amd64/latest/amazon-cloudwatch-agent.deb.sig https://amazoncloudwatch-agent- |
x86-64 |
Ubuntu |
https://amazoncloudwatch-agent.s3.amazonaws.com/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb https://amazoncloudwatch-agent- |
https://amazoncloudwatch-agent.s3.amazonaws.com/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb.sig https://amazoncloudwatch-agent- |
x86-64 |
Oracle |
https://amazoncloudwatch-agent.s3.amazonaws.com/oracle_linux/amd64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent- |
https://amazoncloudwatch-agent.s3.amazonaws.com/oracle_linux/amd64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent- |
x86-64 |
macOS |
https://amazoncloudwatch-agent.s3.amazonaws.com/darwin/amd64/latest/amazon-cloudwatch-agent.pkg https://amazoncloudwatch-agent- |
https://amazoncloudwatch-agent.s3.amazonaws.com/darwin/amd64/latest/amazon-cloudwatch-agent.pkg.sig https://amazoncloudwatch-agent- |
x86-64 |
Windows |
https://amazoncloudwatch-agent.s3.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi https://amazoncloudwatch-agent- |
https://amazoncloudwatch-agent.s3.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi.sig https://amazoncloudwatch-agent- |
ARM64 |
Amazon Linux 2023 和 Amazon Linux 2 |
https://amazoncloudwatch-agent.s3.amazonaws.com/amazon_linux/arm64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent- |
https://amazoncloudwatch-agent.s3.amazonaws.com/amazon_linux/arm64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent- |
ARM64 |
Redhat |
https://amazoncloudwatch-agent.s3.amazonaws.com/redhat/arm64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent- |
https://amazoncloudwatch-agent.s3.amazonaws.com/redhat/arm64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent- |
ARM64 |
Ubuntu |
https://amazoncloudwatch-agent.s3.amazonaws.com/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb https://amazoncloudwatch-agent- |
https://amazoncloudwatch-agent.s3.amazonaws.com/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb.sig https://amazoncloudwatch-agent- |
ARM64 |
Debian |
https://amazoncloudwatch-agent.s3.amazonaws.com/debian/arm64/latest/amazon-cloudwatch-agent.deb https://amazoncloudwatch-agent- |
https://amazoncloudwatch-agent.s3.amazonaws.com/debian/arm64/latest/amazon-cloudwatch-agent.deb.sig https://amazoncloudwatch-agent- |
ARM64 |
SUSE |
https://amazoncloudwatch-agent.s3.amazonaws.com/suse/arm64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent- |
https://amazoncloudwatch-agent.s3.amazonaws.com/suse/arm64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent- |
使用命令行在 Amazon EC2 实例上安装 CloudWatch 代理
-
下载 CloudWatch 代理。对于 Linux 服务器,请输入以下命令。对于
download-link
,请使用上表中的相应下载链接。wget
download-link
对于运行 Windows Server 的服务器,请下载以下文件:
https://amazoncloudwatch-agent.s3.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi
-
在下载该软件包后,您可以选择验证软件包签名。有关更多信息,请参阅 验证 CloudWatch 代理软件包的签名。
-
安装 软件包。如果已在 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 配置文件
如果您还没有这样做,请在服务器上安装 AWS Command Line Interface。有关更多信息,请参阅安装 AWS CLI。
-
在 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_proxy
和https_proxy
字段中指定这些代理。如果应从代理中排除某些 URL,请在no_proxy
字段中指定这些 URL 并以逗号分隔。
使用命令行启动 CloudWatch 代理
可以执行以下步骤以使用命令行在服务器上启动 CloudWatch 代理。
使用命令行在服务器上启动 CloudWatch 代理
-
将要使用的代理配置文件复制到要运行代理的服务器。记下将其复制到的路径名。
-
此命令中,
-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