为何AmazonCloudWatch-ManageAgent执行历史报Error但CloudWatch Agent正常运行?
问题
按照AWS官方文档完成CloudWatch Agent部署步骤:
- 启动附带
CloudWatchAgentServerRole和AmazonSSMManagedInstanceCore权限IAM角色的Amazon Linux 2 EC2实例 - 通过
AWS-ConfigureAWSPackage下载CloudWatch Agent包 - 在Systems Manager Parameter Store创建名为
AmazonCloudWatch-linux的参数并配置指标收集规则 - 执行
AmazonCloudWatch-ManageAgent并指定配置位置 - 通过命令确认CloudWatch Agent已成功运行
- 在CloudWatch Metrics中验证新指标生成
- 检查命令输出无异常
但发现AmazonCloudWatch-ManageAgent的执行历史中标记有Error信息,请问该Error出现的原因是什么?
可能的错误原因
- IAM角色权限配置问题:
- 角色信任关系未正确配置:IAM角色的信任策略未允许SSM服务(
ssm.amazonaws.com)扮演该角色,导致SSM无法执行文档 - 权限遗漏:虽然已附加指定的两个托管策略,但可能缺少访问Parameter Store的
ssm:GetParameter权限,或是CloudWatch Agent推送指标所需的cloudwatch:PutMetricData权限未被正确授予
- 角色信任关系未正确配置:IAM角色的信任策略未允许SSM服务(
- Parameter Store参数异常:
- 参数名称不匹配:执行
AmazonCloudWatch-ManageAgent时指定的参数名与实际创建的AmazonCloudWatch-linux存在拼写、大小写或格式差异 - 参数格式错误:参数内容不是合法的JSON格式,或是指标收集规则存在语法错误(如引号不闭合、逗号缺失)
- 参数权限不足:EC2实例的IAM角色未被授予读取该参数的权限,导致Agent无法拉取配置
- 参数名称不匹配:执行
- SSM代理状态问题:EC2实例上的
amazon-ssm-agent未正常运行,或是版本过低,无法正确处理AmazonCloudWatch-ManageAgent文档。可通过systemctl status amazon-ssm-agent命令检查状态。 - CloudWatch Agent安装异常:
AWS-ConfigureAWSPackage执行过程中未成功完成Agent安装,或是安装的版本与配置规则不兼容。可通过rpm -qa | grep amazon-cloudwatch-agent命令验证安装状态。 - 网络连通性限制:EC2实例无法访问SSM或CloudWatch服务端点,比如安全组/NACL限制了出站流量,或是私有子网未配置NAT网关/VPC端点,导致Agent无法获取配置或上报执行状态。
- 配置位置指定错误:执行
AmazonCloudWatch-ManageAgent时,配置位置的格式错误,比如未正确使用ssm:AmazonCloudWatch-linux的前缀格式,导致无法识别参数存储位置。
内容的提问来源于stack exchange,提问作者dmjy
相关产品推荐
相关产品推荐

