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

EKS集群CloudWatch Agent采集K8s与Prometheus指标报错咨询

解决CloudWatch Agent同时采集K8s与Prometheus指标的问题

一、调整配置支持双指标采集

报错feature kubernetes, ecs, prometheus are mutually exclusive的核心原因是:CloudWatch Agent不允许在同一个agent配置块中同时启用kubernetes和prometheus特性。解决方法是使用多实例配置,在同一个配置文件中定义两个独立的agent段,分别处理K8s指标采集和Prometheus指标采集:

# 实例1:采集Kubernetes原生指标
agent:
  region: <你的AWS区域>
  metrics_collection_interval: 60
  feature: kubernetes
kubernetes:
  cluster_name: <你的EKS集群名称>
  metrics_collection_interval: 60
  api_server_url: <EKS API服务器地址>
  role_arn: <CW Agent的IAM角色ARN>

# 实例2:采集Prometheus指标
agent:
  region: <你的AWS区域>
  metrics_collection_interval: 60
  feature: prometheus
prometheus:
  config_path: /etc/prometheus/scrape-config.yml
  scrape_interval: 60s
  emf_processor:
    metric_declaration:
      - source_labels: [__name__]
        label_matcher: "^你要导出的Prometheus指标前缀.*$"
        metric_name: "自定义CloudWatch指标名称"
        unit: "对应指标单位"

关键注意点:

  • 两个agent实例的AWS区域需保持一致
  • 确保CW Agent Pod拥有访问EKS API和Prometheus端点的权限
  • Prometheus配置段可根据实际需求调整指标过滤规则、抓取路径等参数

二、获取原K8s采集的指标列表

如果要改用Prometheus采集替代原有K8s指标导出,可通过以下3种方式快速获取原指标列表:

  • 从Agent配置直接查看:在CW Agent Pod内执行命令,导出当前生效的K8s采集配置:

    /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/etc/amazon-cloudwatch-agent/config.json -s
    

    输出结果中kubernetes.metrics字段会列出所有配置采集的K8s指标。

  • 从CloudWatch控制台导出:进入CloudWatch控制台 → 指标 → Container Insights → EKS Clusters,查看kubernetes.io命名空间下的所有指标,可直接复制或导出这些指标名称。

  • 使用AWS CLI查询:执行以下命令批量获取K8s指标名称:

    aws cloudwatch list-metrics --namespace kubernetes.io --query 'Metrics[].MetricName' --output text
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 14:45:26