You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Logstash CloudWatch插件采集Auto Scaling组CPUUtilization指标报错

问题产生原因

报错的核心原因是配置中使用的过滤维度和命名空间不匹配:

  • 你当前指定的AWS/EC2命名空间下,CPUUtilization指标的原生合法过滤维度只有InstanceId,不支持直接传入AutoScalingGroupName作为API请求的过滤参数
  • AutoScalingGroupName是CloudWatch基于EC2实例与ASG的绑定关系自动关联的附加维度,不属于EC2服务上报CPU指标时自带的原生维度,直接作为过滤参数传给CloudWatch API时,就会返回过滤器非法的错误。
配置调整方案

根据实际采集需求,二选一调整配置即可:

方案1:采集Auto Scaling组维度聚合的CPUUtilization

如果需要的是整个ASG维度聚合后的CPU平均指标,直接把命名空间改成Auto Scaling服务专属的AWS/AutoScaling即可,这个命名空间下的指标原生支持AutoScalingGroupName作为过滤维度,调整后的输入配置如下:

cloudwatch {
    access_key_id => "${PROD_KEY_ENV}"
    secret_access_key => "${PROD_SECRET_KEY_ENV}"
    type => "prod"
    tags => ["CWMetrics"]
    namespace => "AWS/AutoScaling"
    metrics => ["CPUUtilization"]
    filters => {"AutoScalingGroupName" => "name_of_asg"}
    period => 60
    statistics => ["Average"]
    region => "eu-central-1"
}

注意:该配置采集到的是整个ASG的聚合CPU数据,不是组内单台EC2实例的单独CPU指标。

方案2:采集ASG下每台EC2实例的CPUUtilization

如果需要拿到组内每台EC2实例的单独CPU数据,不能在CloudWatch输入阶段直接按ASG名过滤,分两步调整:

  1. 修改输入配置,移除filters中针对AutoScalingGroupName的过滤规则,先拉取对应区域下EC2实例的CPU指标(只要实例绑定了ASG,返回的事件中会自动携带AutoScalingGroupName字段)
  2. 在Logstash中新增过滤段,筛选出属于目标ASG的指标事件,丢弃其他无关数据,参考配置如下:
filter {
  if [AutoScalingGroupName] != "name_of_asg" {
    drop {}
  }
}

内容的提问来源于stack exchange,提问作者LucaFerraro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 06:57:21