AWS CloudWatch Agent如何配置依赖EC2标签的维度?
解决CloudWatch Agent无法解析EC2标签作为维度值的问题
问题背景
需要为CloudWatch Agent采集的CPU指标添加Role维度,维度值对应EC2实例的Role标签。尝试在配置中使用${aws:ec2:tag:Role}作为维度值,但该变量未被解析,直接以字面字符串${aws:ec2:tag:Role}传入指标。已确认实例关联的IAM角色具备ec2:DescribeTags和ec2:DescribeInstances权限。
尝试的错误配置:
"cpu" : { "append_dimensions" :{ "Role": "${aws:ec2:tag:Role}" } }
解决方案
- 纠正标签变量语法
CloudWatch Agent中引用EC2标签的正确变量格式为${aws:ec2:tag/<TagKey>},需将冒号替换为斜杠。修正后的配置:
"cpu" : { "append_dimensions" :{ "Role": "${aws:ec2:tag/Role}" } }
- 验证Agent版本兼容性
确保使用的CloudWatch Agent版本为1.247344.0或以上,旧版本不支持直接引用EC2标签变量。可通过以下命令查看版本:
amazon-cloudwatch-agent -version
确认元数据端点访问
实例需能正常访问EC2元数据端点(IPv4:169.254.169.254;IPv6:[fd00:ec2::254])。若使用代理,需配置代理允许访问该端点。重启CloudWatch Agent服务
修改配置后重启服务使变更生效:
- Linux系统:
sudo systemctl restart amazon-cloudwatch-agent
- Windows系统:在服务管理器中找到
Amazon CloudWatch Agent并重启。
参考说明
根据CloudWatch Agent官方文档:
若要为指标追加自定义键值对维度,需在对应指标的配置段使用
append_dimensions参数;若维度值依赖EC2元数据,需确保实例能访问EC2元数据端点。
内容的提问来源于stack exchange,提问作者visnja_bre
相关产品推荐
相关产品推荐

