如何在Prometheus ec2_sd_config配置中指定多个端口无需重复配置参数
结论
原生EC2服务发现(ec2_sd_config)的port字段仅支持填写单个端口,无法直接在单组配置中指定多端口列表。
你可以通过以下两种方案避免重复配置区域、密钥等公共参数:
方案1:YAML锚点复用公共配置(推荐,改造成本最低)
利用YAML原生的锚点语法复用重复配置项,仅需修改端口字段即可:
ec2_sd_configs: - &common_ec2_config # 定义公共配置锚点 region: us-west-2 access_key: OMITTED secret_key: OMITTED port: 9101 - <<: *common_ec2_config # 继承锚点的所有公共配置 port: 9182 # 仅覆盖端口字段
方案2:单组SD配置+重打标生成多端口目标(适合端口数量较多的场景)
如果你使用的是Prometheus 2.37及以上版本,可以仅配置单组EC2 SD,通过clone重打标动作生成多端口的抓取目标:
scrape_configs: - job_name: ec2_multi_port ec2_sd_configs: - region: us-west-2 access_key: OMITTED secret_key: OMITTED port: 9101 # 先配置第一个端口生成初始target relabel_configs: # 克隆原有target生成副本 - action: clone source_labels: [__address__] target_label: __tmp_origin_addr # 将副本的端口替换为9182 - source_labels: [__tmp_origin_addr] regex: (.+):\d+ replacement: ${1}:9182 target_label: __address__
内容的提问来源于stack exchange,提问作者emack
相关产品推荐
相关产品推荐

