Global outage event
If you're experiencing issues with your AWS services, then please refer to the AWS Health Dashboard. You can find the overall status of ongoing outages, the health of AWS services, and the latest updates from AWS engineers.
如何使用 AWS Systems Manager 一次性在多个实例上安装 CloudWatch 代理(Linux 和 Windows)
本文讲解了如何使用 AWS Systems Manager 一次性在多个 EC2 实例上安装和配置 CloudWatch 代理,简化监控性能指标的流程。
管理需要监控的大量实例可能具有挑战性,尤其是如果需要手动在每个实例上安装 CloudWatch 代理的话。在没有 AWS Systems Manager (SSM) 的情况下,您通常需要通过 SSH 或 RDP 分别登录到每个实例,这既费时又低效。
使用 AWS Systems Manager,您可以快速高效地在多个实例上一次性安装 CloudWatch 代理。以下步骤详细介绍了如何使用 SSM 在 Linux 和 Windows 实例上安装 CloudWatch 代理。
注意: 安装步骤对 Windows 和 Linux 系统是相同的,唯一的区别在于 CloudWatch 代理配置内容,具体细节我们将在下文中详细介绍。
CloudWatch 代理安装步骤指南:
步骤 1:创建或修改实例的 IAM 角色
为了使实例能够与 CloudWatch 和 Systems Manager 通信,您需要创建一个新的 IAM 角色或修改现有的 IAM 角色,并附加以下两个策略:
CloudWatchAgentServerPolicyAmazonSSMManagedInstanceCore
请参考 AWS 文档以获取创建 IAM 角色的详细步骤 点击这里。
步骤 2:将 IAM 角色附加到实例
- 进入 EC2 控制台。
- 选择目标实例。
- 选择 操作 → 安全性 → 修改 IAM 角色。
- 选择在步骤 1 中创建的 IAM 角色。
- 点击 更新 IAM 角色。
注意: 当前,AWS 控制台不支持一次性将 IAM 角色附加到多个实例。
您也可以使用 AWS CLI 和一个简单的
for循环来一次性将实例配置文件附加到多个实例。以下是一个示例:
instance_ids=("i-022d145xxxxxx15e6" "i-09a2158xxxxxxd2b2") # Add more instance IDs profile_name="your-iam-role-name" # Set your instance profile name here for instance_id in "${instance_ids[@]}"; do aws ec2 associate-iam-instance-profile \ --instance-id $instance_id \ --iam-instance-profile Name=$profile_name done
步骤 3:使用 SSM 安装 CloudWatch 代理
- 进入 AWS Systems Manager 控制台,选择 Run Command。
- 在 Command document 部分,选择 AWS-ConfigureAWSPackage。
- 在 Command parameters 中,输入
AmazonCloudWatchAgent到 Name 字段。 - 在 Targets 部分,选择您想要安装代理的实例:
- 您可以手动选择实例或使用实例标签来定位一组实例。
- 请耐心等待,可能需要 10 分钟以上,所有实例才会显示出来。
- (可选)将命令输出保存到 CloudWatch 日志或 S3 存储桶。
- 点击 Run 执行命令。
命令成功执行后,CloudWatch 代理通常会在 1-2 分钟内安装到所有选定的实例上。
查看截图了解更多信息:
步骤 4:在参数存储中创建 CloudWatch 代理配置
现在CloudWatch 代理已安装,您需要为它创建一个CloudWatch代理配置文件。请确保在将配置部署到多个实例之前测试您的 CloudWatch 配置,以确保它按预期工作。
- 在 SSM 控制台,导航到 Parameter Store 并点击 Create parameter。
- 给您的参数命名,例如
AmazonCloudWatch-WinConfig。 - 在 Value 字段中,粘贴您的 CloudWatch 代理配置文件(JSON 格式)。
以下是 Linux 和 Windows 的示例配置文件:
- Linux CloudWatch 代理配置:
此示例配置从 Linux 实例中收集磁盘使用率(used_percent)和内存使用率(mem_used_percent)指标,并每 60 秒将其推送到 CloudWatch。
{ "metrics": { "aggregation_dimensions": [ [ "InstanceId" ] ], "metrics_collected": { "disk": { "measurement": [ "used_percent" ], "metrics_collection_interval": 60, "resources": [ "*" ] }, "mem": { "measurement": [ "mem_used_percent" ], "metrics_collection_interval": 60 } }, "append_dimensions": { "InstanceId": "${aws:InstanceId}" } } }
- Windows CloudWatch 代理配置:
此示例配置从 Windows 实例中收集各种性能指标,包括磁盘使用率(% Free Space)和内存使用率(% Committed Bytes In Use)。这些指标每 60 秒推送到 CloudWatch。
{ "metrics": { "aggregation_dimensions": [ [ "InstanceId" ] ], "metrics_collected": { "LogicalDisk": { "measurement": [ "% Free Space" ], "metrics_collection_interval": 60, "resources": [ "*" ] }, "Memory": { "measurement": [ "% Committed Bytes In Use" ], "metrics_collection_interval": 60 } }, "append_dimensions": { "InstanceId": "${aws:InstanceId}" } } }
4. 点击 Create parameter 以保存。
查看截图了解更多信息:
步骤 5:启动 CloudWatch 代理
现在,您需要使用刚刚创建的配置文件在实例上启动 CloudWatch 代理服务。
- 返回 SSM 控制台 中的 Run Command。
- 在 Command document 部分,选择 AmazonCloudWatch-ManageAgent。
- 在 Command parameters 部分,指定 可选配置位置(例如,
AmazonCloudWatch-WinConfig)。 - 选择目标实例。
- (可选)将命令输出保存到 CloudWatch 日志或 S3 存储桶。
- 点击 Run。
查看截图了解更多信息:
命令成功运行后,您应该会在 CloudWatch 的 CWAgent 命名空间中看到这些指标。根据您配置的 metrics_collection_interval,可能需要几分钟,指标才会显示在 CloudWatch 控制台中。
如何编辑或修改 CloudWatch 代理配置
如果您需要修改 CloudWatch 代理的配置文件并将新配置部署到多个实例,请按照以下步骤操作:
- 在 SSM 控制台 中导航到 Parameter Store。
- 点击您要修改的参数上的 Edit。
- 更新 Value 字段中的 JSON 内容并保存更改。
- 转到 Run Command 部分的 Command history 标签页,找到您用于启动代理的命令,或者按照上述步骤创建一个新命令。
- 使用 Rerun 选项将更新后的配置部署到实例。
查看截图了解更多信息:
通过遵循这些步骤,您可以高效地在多个实例上安装、修改和管理 CloudWatch 代理。如果您有任何疑问或需要进一步的帮助,请联系 AWS 支持。
- 语言
- 中文 (简体)
相关内容
AWS 官方已更新 2 年前