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

Consul Connect网格中Nomad部署的Spring Boot Actuator Prometheus采集问题

问题场景说明

当前核心矛盾是未接入Consul服务网格的Prometheus,无法直接访问网格内没有主机端口映射的Spring Boot应用,以下是可落地的解决方案和通用实践:

解决方案

方案1:将Prometheus接入Consul服务网格(安全性最高)

  1. 给Prometheus的Nomad任务配置Consul Connect sidecar,让Prometheus也运行在服务网格内
# Prometheus对应的Nomad配置新增部分
service {
  name = "prometheus"
  port = "9090"
  connect {
    sidecar_service {}
  }
}

network {
  mode = "bridge"
}
  1. 配置Consul意图,允许Prometheus访问api服务的9966端口
Kind = "service-intentions"
Name = "api"
Sources = [
  {
    Name   = "prometheus"
    Action = "allow"
  }
]
  1. 原有Prometheus采集配置无需大幅调整,服务发现拿到的api服务地址会被Prometheus的sidecar自动代理到目标实例,即可正常采集指标。

方案2:通过Sidecar暴露指标路径(无需修改应用,生产常用)

无需把Prometheus接入网格,直接在api服务的Sidecar配置中暴露指标路径,自动分配主机端口供Prometheus采集:

  1. 修改api服务的Nomad配置:
network {
  mode = "bridge"
  # 新增指标端口声明,自动分配主机端口
  port "metrics" {
    to = -1
  }
}

service {
  name = "api"
  port = "9966"
  connect {
    sidecar_service {
      proxy {
        expose {
          path {
            path = "/api/actuator/prometheus"
            local_path_port = 9966
            listener_port = "metrics"
          }
        }
      }
    }
  }
  # 可选:添加元数据方便Prometheus自动识别采集配置
  meta {
    metrics_path = "/api/actuator/prometheus"
    metrics_port = "metrics"
  }
}
  1. 修改Prometheus采集配置,通过Consul服务发现读取自动分配的指标端口:
- job_name: 'actuator'
  metrics_path: /api/actuator/prometheus
  consul_sd_configs:
  - server: '本地Consul客户端地址:8500'
    services: ['api']
  relabel_configs:
  # 替换采集端口为Sidecar暴露的metrics端口
  - source_labels: [__meta_consul_service_port_metrics]
    target_label: __address__
    regex: (.*)
    replacement: $1
服务网格内无端口映射应用指标采集通用实践
  • 安全优先:优先选择采集端接入网格的方案,全程流量都在网格内加密传输,不需要对外暴露任何应用端口,权限由服务网格统一管控
  • 端口隔离:业务端口和指标端口完全拆分,即使需要暴露指标端口,也只会暴露Sidecar的指标端口,不会直接暴露应用本身的业务端口
  • 自动适配:通过服务元数据标记指标路径、端口等信息,采集端通过重标记规则自动适配,不需要每次新增服务都修改采集配置
  • 权限管控:如果采用Sidecar暴露指标的方案,可配合主机防火墙、安全组规则,限制只有采集端的IP段可以访问指标端口

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:27:01