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

关于Prometheus Docker Swarm服务发现relabel配置与路由网格的疑惑

Prometheus Docker Swarm节点指标采集配置的疑问解析

你对官方配置的误解主要出在两个核心点:__meta_dockerswarm_node_address的实际含义,以及Docker Swarm路由网格的作用范围。

  • __meta_dockerswarm_node_address是节点的真实物理/内网IP
    这个服务发现标签返回的是Docker Swarm节点自身的实际IP地址,不是用于服务路由的VIP或Ingress地址。Prometheus基于这个IP构造的__address__,是直接指向目标节点的网络接口,不会经过Swarm的路由网格。

  • Swarm路由网格只作用于服务发布的端口
    路由网格的转发逻辑仅针对通过docker service create命令对外发布的服务端口(比如-p 80:80这类端口映射)。而节点上用于暴露Docker daemon指标的组件,是直接监听在节点自身IP的9323端口上,属于节点本地的监听端口,完全不受路由网格影响,请求不会被转发到其他节点。

所以官方给出的relabel配置是完全正确的:

relabel_configs:
      # Fetch metrics on port 9323.
      - source_labels: [__meta_dockerswarm_node_address]
        target_label: __address__
        replacement: $1:9323

它的作用就是把服务发现拿到的节点真实IP拼接上监控端口,让Prometheus直接抓取目标节点的指标,不存在被路由网格转发的问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 06:12:07