如何安装和配置统一的 CloudWatch 代理,以将指标和日志从 EC2 实例发送到 CloudWatch?

2 分钟阅读
0

我想使用统一的 Amazon CloudWatch 代理将指标和日志从 Amazon Elastic Compute Cloud (Amazon EC2) 实例发送到 CloudWatch。

解决方法

在开始之前,请在 EC2 实例中建立互联网连接。EC2 实例必须具有互联网连接才能连接到所需的端点。

创建一个 IAM 角色,以在 EC2 实例上运行 CloudWatch 代理

完成以下步骤:

  1. 打开 AWS Identify and Access Management (IAM) 控制台
  2. 在导航窗格中,选择 Roles(角色)。
  3. 选择 Create role(创建角色)。
  4. 对于 Choose the service that will use this role(选择将使用此角色的服务),选择 EC2
  5. 选择 Next: Permissions(下一步:权限)。
  6. 在策略列表中,选择 CloudWatchAgentServerPolicy
  7. 选择 Next: 标签,然后选择下一步: Review(下一步:查看)。
  8. Role name(角色名称)中,输入角色的名称,例如 CloudWatchAgentServerRole
  9. (可选)提供角色描述。
  10. 确认 CloudWatchAgentServerPolicy 显示在 Policies(策略)旁边。
  11. 选择 Create role(创建角色)。
  12. 将新的 IAM 角色附加到 EC2 实例。

下载并安装统一的 CloudWatch 代理

Linux EC2 实例

完成以下步骤:

  1. 要下载 CloudWatch 代理,请在终端中运行以下命令:

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

    **注意:**在前面的命令中,请将 region 替换为您的 AWS 区域。

  2. 要安装 CloudWatch 代理,请在终端中运行以下命令:

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

Windows EC2 实例

在 Windows PowerShell 中,以管理员身份完成以下步骤:

  1. 导航到要下载安装程序的文件夹:

    cd "path"

    **注意:**在前面的命令中,请将 path 替换为要下载安装程序的文件夹的路径。

  2. 要下载 CloudWatch 代理,请运行以下命令:

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

    **注意:**在前面的命令中,请将 region 替换为您的区域。

    如果您的 TLS 版本早于版本 1.2,则您在运行前面的 Invoke-WebRequest 命令时会收到以下错误:

    “Invoke-WebRequest: 请求已中止: 无法创建 SSL/TLS 安全通道”

    要配置您的 TLS 版本,请运行以下命令,然后再次运行前面的 Invoke-WeRequest 命令:

    [Net.ServicePointManager]::SecurityProtocol = "Tls, Tls11, Tls12, Ssl3"
  3. 要启动代理安装程序,请运行以下命令:

    msiexec /i amazon-cloudwatch-agent.msi

创建代理配置文件

要创建代理配置文件,请使用向导。然后,手动编辑该文件以添加或删除指标或日志。

Linux EC2 实例

运行以下命令:

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard

Windows EC2 实例

在 Windows PowerShell 中,以管理员身份运行以下命令:

cd "C:\Program Files\Amazon\AmazonCloudWatchAgent"  
.\amazon-cloudwatch-agent-config-wizard.exe

默认情况下,向导会创建路径为 C:\Program Files\Amazon\AmazonCloudWatchAgent\config.json 的代理配置文件。

启动 CloudWatch 代理

Linux EC2 实例

运行以下命令:

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

**注意:**在前面的示例中,请将 configuration-file-path 替换为您的配置文件的路径。

Windows EC2 实例

在 Windows PowerShell 中,以管理员身份运行以下命令:

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

**注意:**在前面的命令中,请将 configuration-file-path 替换为您的配置的路径。

默认情况下,代理会将指标发送到 NameSpace CWAgent

验证代理状态

代理需要一些时间来填充您在 CloudWatch 中配置的指标。要在代理填充指标之前验证代理是否正在运行,请运行以下命令。

Linux EC2 实例:

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status

Windows EC2 实例:

& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -m ec2 -a status

代理配置文件向导使用提示

使用代理配置文件向导时,请使用以下提示来帮助您回答问题。

**是否要启用 StatsD 进程守护程序?以及是否要监控 CollectD 的指标?**如果您的 EC2 实例上安装了 StatsDCollectD 插件,请对于这些问题选择 Yes(是)。

**您想要哪种默认指标配置?**有关默认配置的详细信息,请参阅 CloudWatch 代理预定义指标集。然后,选择最适合您的使用案例的选项。

是否要导入现有 CloudWatch Logs 代理配置文件以进行迁移?如果您安装了 awslogs 代理,且其正在运行,请选择 Yes(是)。如果您选择 Yes(是),则向导会读取 awslogs 代理配置文件(/etc/awslogs/awslogs.conf/var/awslogs/etc/awslogs.conf),以确定您必须监控的日志文件。

**是否想要将配置存储在 Parameter Store(AWS Systems Manager 的一项功能)中?**若要将代理配置文件存储在 Parameter Store 中,以便以后重复使用该文件,请选择 Yes(是)。在将代理配置文件存储在 Parameter Store 中时,用于启动代理的命令会有所不同。

配置向导后,代理配置文件默认存储在 /opt/aws/amazon-cloudwatch-agent/bin/config.json 中。要添加或删除指标或日志,您可以手动编辑该文件

有关自定义配置文件示例,请参阅 CloudWatch agent configuration file: Complete examples

**注意:**修改代理配置文件后,使用 fetch-config 命令启动代理,确保代理反映所做的更改。

启动和停止 CloudWatch 代理

有关详细信息,请参阅停止和重新启动 CloudWatch 代理

AWS 官方
AWS 官方已更新 3 个月前