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

EC2配置Promtail执行Dry-run时出现DescribeInstances错误求助

Promtail EC2服务发现报错:InvalidAction - Could not find operation DescribeInstances for version 2

问题场景

在AML Linux 2实例上配置Promtail 2.7.1,执行以下命令做配置校验时触发错误:

./promtail-linux-amd64 -config.file=./ec2-promtail.yaml --dry-run

错误信息:

return (<ErrorResponse “http://webservices.amazon.com/AWSFault/200. Sender. InvalidAction. <|Message>Could not find operation DescribeInstances for version 2. . | 2bbe..caused by: expected element type but have ”
)

环境说明:

  • 实例无公网连接,需使用区域STS端点进行IAM角色认证
  • AWS角色已配置DescribeInstances、DescribeAvailabilityZones权限(注意:原描述中的DescribeInstance应为复数,需确认权限配置正确)

错误原因

你在ec2_sd_config里填的endpoint是STS服务的区域端点,但这个字段实际是用来指定EC2服务的区域端点的。Promtail把EC2服务发现需要的DescribeInstances请求发到了STS服务上,而STS根本没有这个API操作,所以返回了InvalidAction错误。

解决方案

  1. 修正EC2服务端点配置
    把ec2_sd_config中的endpoint从STS地址改为对应区域的EC2服务地址,格式为ec2.<region>.amazonaws.com。

  2. 启用区域STS端点认证
    通过环境变量AWS_STS_REGIONAL_ENDPOINTS=regional让Promtail使用区域STS端点进行角色认证,适配无公网的环境。

修正后的完整配置示例

http_listen_port: 3100
grpc_listen_port: 0

clients:
  - url: https://loki.dev.fdp.internal/loki/api/v1/push

positions:
  filename: /opt/promtail/positions.yaml

scrape_configs:
  - job_name: ec2-logs
    ec2_sd_configs:
      - region: ap-southeast-1
        role_arn: arn:aws:iam::xxxxxx:role/promtail_role
        endpoint: ec2.ap-southeast-1.amazonaws.com # 修正为EC2区域端点
    relabel_configs:
      - source_labels: [__meta_ec2_tag_Name]
        target_label: name
        action: replace
      - source_labels: [__meta_ec2_instance_id]
        target_label: instance
        action: replace
      - source_labels: [__meta_ec2_availability_zone]
        target_label: zone
        action: replace
      - action: replace
        replacement: /var/log/**.log
        target_label: __path__
      - source_labels: [__meta_ec2_private_dns_name]
        regex: "(.*)"
        target_label: __host__

验证命令

执行带环境变量的校验命令:

AWS_STS_REGIONAL_ENDPOINTS=regional ./promtail-linux-amd64 -config.file=./ec2-promtail.yaml --dry-run

如果需要永久生效环境变量,可以将AWS_STS_REGIONAL_ENDPOINTS=regional添加到实例的环境变量配置文件中(比如/etc/profile.d/aws.sh)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 18:20:34