天天看点

Prometheus服务发现Consul

启动第一个consul服务:consul1

8500 http 端口,用于 http 接口和 web ui

8300 server rpc 端口,同一数据中心 consul server 之间通过该端口通信

8301 serf lan 端口,同一数据中心 consul client 通过该端口通信

8302 serf wan 端口,不同数据中心 consul server 通过该端口通信

8600 dns 端口,用于服务发现

-bbostrap-expect 2: 集群至少两台服务器,才能选举集群leader

-ui:运行 web 控制台

-bind: 监听网口,0.0.0.0 表示所有网口,如果不指定默认为127.0.0.1,则无法和容器通信

-client : 限制某些网口可以访问

获取 consul server1 的 ip 地址

Prometheus服务发现Consul

启动第二个consul服务:consul2, 并加入consul1(使用join命令)

启动第三个consul服务:consul3,并加入consul1

查看运行的容器(consul集群状态)

接下来,我们要注册服务到 consul 中,可以通过其提供的 api 标准接口来添加。那么先注册一个测试服务,该测试数据为本机 ​<code>​node-exporter​</code>​​ 服务信息,服务地址及端口为 ​<code>​node-exporter​</code>​ 默认提供指标数据的地址,执行如下命令:

Prometheus服务发现Consul

提一下,如果要注销掉某个服务,可以通过如下 api 命令操作,例如注销上边添加的 ​<code>​node-exporter​</code>​ 服务

现在 consul 服务已经启动完毕,并成功注册了一个服务,接下来,我们需要配置 prometheus 来使用 consul 自动服务发现,目的就是能够将上边添加的服务自动发现到 prometheus 的 targets 中,增加 ​<code>​prometheus.yml​</code>​ 配置如下:

Prometheus服务发现Consul
Prometheus服务发现Consul

consul 可以使用的元标签: