Prometheus基于集群模式Consul自动发现(consul_sd_configs)
1. 安装配置 Consul 集群模式
Consul 集群模式支持高可用性,多个节点协同工作。以下是安装和配置步骤:
1.1 安装 Consul集群
下载并解压 Consul 二进制文件:
1
2
3wget https://releases.hashicorp.com/consul/1.15.2/consul_1.15.2_linux_amd64.zip
unzip consul_1.15.2_linux_amd64.zip
sudo mv consul /usr/local/bin/创建 Consul 数据目录:
1
sudo mkdir -p /opt/consul/data
1.2 配置 Consul 服务器节点
在每个服务器节点上创建 Consul 配置文件(如 /etc/consul.d/consul.json
):
1 |
|
配置说明:
- bootstrap_expect:期望的 Consul 服务器节点数量(如上面配置当中的3,表示会有3个节点)。
- retry_join:加入集群的其他节点 IP。
- bind_addr:当前节点的 IP 地址。
启动 Consul 服务器节点(集群模式需要在不同的服务器节点上进行启动):
1 |
|
1.3 配置 Consul 客户端节点
客户端节点配置文件示例(位于 /etc/consul.d/consul.json
):
1 |
|
启动客户端节点:
1 |
|
1.4 验证 Consul 集群
通过 Web UI 验证集群状态,访问 http://<任意服务器IP>:8500/ui
。
2. 将应用注册到 Consul 集群
Consul 支持 手动服务注册 和 自动服务注册。
2.1 手动注册服务
可以创建服务定义文件,如 /etc/consul.d/my-web-app.json
,注册服务:
1 |
|
然后通过以下命令重新加载 Consul 配置:
1 |
|
2.2 自动注册服务
服务可以通过调用 Consul API 自动注册。例如,使用 curl
命令进行注册:
1 |
|
3. 配置 Prometheus 动态发现 Consul 注册的服务
3.1 修改 Prometheus 配置文件
在 Prometheus 配置文件 prometheus.yml
中添加 Consul 服务发现配置:
1 |
|
3.2 重新启动 Prometheus
更新配置后,重新启动 Prometheus:
1 |
|
3.3 验证服务发现
访问 Prometheus Web UI (http://localhost:9090
),进入 Targets 页面,检查 my-web-app
是否已被动态发现并抓取。
总结
- Consul 集群模式 提供高可用服务发现。
- 应用可以通过手动或自动方式注册到 Consul。
- Prometheus 可以通过 Consul 服务发现 动态抓取已注册的服务指标。
Prometheus基于集群模式Consul自动发现(consul_sd_configs)
https://blog.t-ao.cn/2025/03/19/Prometheus基于集群模式Consul自动发现(consul-sd-configs)/