Prometheus:如何从多个数据中心获取 Consul 节点

Prometheus: How to get Consul nodes from multiple datacenters

我想使用 Prometheus 的 Consul 集成来自动发现我所有的 consul 节点。目前,我的 Prometheus 服务器仅从 Consul 中的 单个 数据中心接收节点,尽管我从未真正指定在配置中使用哪个数据中心(我猜它只是选择了我的 consul-客户端(安装在我的普罗米修斯服务器上)是的一部分。

如何从 all consul 知道的数据中心获取 all 节点?

解决方案 we found 是在配置中使用 'datacenter' 关键字 - 并明确列出我们拥有的数据中心。它不是最优的(因为我们将来可能 add/remove 个数据中心)但它确实有效。下面是一个例子:

scrape_configs:
  - job_name: 'consul'
    consul_sd_configs:
       - server:   '0.0.0.0:8500'
         datacenter: 'datacenter-name-1'
       - server:   '0.0.0.0:8500'
         datacenter: 'datacenter-name-2'
       - server:   '0.0.0.0:8500'
         datacenter: 'datacenter-name-3'