跳至内容

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

3 分钟阅读
0

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

解决方法

**先决条件:**确保在 Amazon EC2 实例中建立互联网连接,以连接到所需端点或私密连接到虚拟私有云 (VPC) 端点

创建一个 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: Tags(下一步:标签),然后选择 Next: Review(下一步:查看)。
  8. Role name(角色名称)中,输入角色的名称,例如 CloudWatchAgentServerRole
  9. (可选)提供角色描述。
  10. 确认 CloudWatchAgentServerPolicy 显示在 Policies(策略)旁边。
  11. 选择 Create role(创建角色)。
  12. 将新的 IAM 角色附加到 EC2 实例

下载并安装统一的 CloudWatch 代理

Linux EC2 实例
完成以下步骤:

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

    wget https://amazoncloudwatch-agent.s3.amazonaws.com/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
  2. 要安装 CloudWatch 代理,请运行以下命令:

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

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

  1. 要打开用于下载安装程序的文件夹,请运行以下命令:

    cd "path"

    **注意:**将 path 替换为用于下载安装程序的文件夹的路径。

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

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

    如果您使用传输层安全性协议 (TLS) 版本 1.2 或更早版本,则在运行前面的 Invoke-WebRequest 命令时会收到以下错误消息:
    “Invoke-WebRequest: The request was aborted: Could not create SSL/TLS secure channel”
    要配置您的 TLS 版本,请运行以下命令:

    [Net.ServicePointManager]::SecurityProtocol = "Tls, Tls11, Tls12, Ssl3"

    然后,再次运行前面的 Invoke-WeRequest 命令。

  3. 要启动代理安装程序,请运行以下命令:

    msiexec /i amazon-cloudwatch-agent.msi

创建代理配置文件

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

使用向导时配置以下设置:

  • 如果您在 EC2 实例上安装了 [StatsDcollectd](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-custom-metrics-collectd.html) 插件,那么对于 Do you want to turn on StatsD daemon?(您想打开 StatsD 进程守护程序吗?)以及 Do you want to monitor metrics from collectd?(您想监控来自 collectd 的指标吗?),请选择 Yes(是)。
  • 如果您安装了 awslogs 代理并且它正在运行,那么对于 Do you have an existing CloudWatch Logs Agent configuration file to import for migration?(是否要导入现有 CloudWatch Logs 代理配置文件以进行迁移?),请选择 Yes(是)。
    注意:如果您选择 Yes(是),则向导会读取 awslogs 代理配置文件(/etc/awslogs/awslogs.conf/var/awslogs/etc/awslogs.conf),以确定您必须监控的日志文件。
  • 对于 Do you want to store the configuration in the Parameter Store, a capability of AWS Systems Manager?(是否想要将配置存储在 Parameter Store(AWS Systems Manager 的一项功能)中?),请选择 Yes(是),将代理配置文件存储在 Parameter Store 中,以便以后重用该文件。
    **注意:**在将代理配置文件存储在 Parameter Store 中时,用于启动代理的命令会有所不同。

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

有关自定义配置文件示例,请参阅 Manually create or edit the CloudWatch agent configuration file(手动创建或编辑 CloudWatch 代理配置文件)中的 Uploading the CloudWatch agent configuration file to Systems Manager Parameter Store(将 CloudWatch 代理配置文件上传到 Systems Manager Parameter Store)。

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

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

启动和停止 CloudWatch 代理

有关详细信息,请参阅 Stopping and restarting the CloudWatch agent(停止和重新启动 CloudWatch 代理)。

AWS 官方已更新 7 个月前