Prometheus基於Consul的服務發現

生產環境部署


上面介紹了consul原理和單點、集群部署方法,下面重點講下在生產環境中怎麼部署以及和Prometheus集成。


由於生產環境中採用的是docker-compose編排部署,直接看編排文件


<code>  consul-node1:

image: bitnami/consul

environment:

-

CONSUL

_BOOTSTRAP_

EXPECT=3

-

CONSUL

_CLIENT_

LAN_ADDRESS=0.0.0.0

-

CONSUL

_DISABLE_

KEYRING_FILE=true

-

CONSUL

_RETRY_

JOIN_ADDRESS=consul-node1

ports:

-

'8300:8300'

-

'8301:8301'

-

'8301:8301/udp'

-

'8500:8500'

-

'8600:8600'

-

'8600:8600/udp'

volumes:

-

'./consul-node1_data:/bitnami' consul-node2:

image: bitnami/consul

environment:

-

CONSUL

_BOOTSTRAP_

EXPECT=3

-

CONSUL

_CLIENT_

LAN_ADDRESS=0.0.0.0

-

CONSUL

_DISABLE_

KEYRING_FILE=true

-

CONSUL

_RETRY_

JOIN_ADDRESS=consul-node1

-

CONSUL

_ENABLE_

UI=false

volumes:

-

'./consul-node2_data:/bitnami' consul-node3:

image: bitnami/consul

environment:

-

CONSUL

_BOOTSTRAP_

EXPECT=3

-

CONSUL

_CLIENT_

LAN_ADDRESS=0.0.0.0

-

CONSUL

_DISABLE_

KEYRING_FILE=true

-

CONSUL

_RETRY_

JOIN_ADDRESS=consul-node1

-

CONSUL

_ENABLE_

UI=false

volumes:

-

'./consul-node3_data:/bitnami'/<code>


依次啟動consul-node1、consul-node2、consul-node3


<code>$ docker-compose up -d consul-node1
$ docker-compose up -d consul-node2
$ docker-compose up -d consul-node3/<code>


打開控制檯
https://xxxx.addnewer.com/,默認端口是8500,我這裡用nginx做了代理,這裡也通過api註冊了兩臺集群


Prometheus基於Consul的服務發現


api註冊語句示例


<code>$ curl -X PUT -d '{

"id"

:

"bj-ali-ops-bastion-0-1"

,

"name"

:

"gp-ops-ops"

,

"address"

:

"192.168.0.1"

,

"port"

:

9100

,

"tags"

: [

"prod"

],

"checks"

: [{

"http"

:

"http://192.168.0.1:9100/"

,

"interval"

:

"5s"

}]}' http: $ curl -X PUT -d '{

"id"

:

"bj-ali-ops-ansible-15-54"

,

"name"

:

"gp-ops-ops"

,

"address"

:

"192.168.15.54"

,

"port"

:

9100

,

"tags"

: [

"prod"

],

"checks"

: [{

"http"

:

"http://192.168.15.54:9100/"

,

"interval"

:

"5s"

}]}' http:/<code>


  • name: 定義了這兩臺集群所屬的業務分組
  • tags: 定義標籤


Prometheus基於Consul的服務發現


consul集成prometheus


<code>

$

cat

prometheus/prometheus.yml

-

job_name:

'node_exporter'

scrape_interval:

5s

scheme:

http

consul_sd_configs:

-

server:

consul-node1:8500

services:

[]

relabel_configs:

-

source_labels:

[__meta_consul_tags]

regex:

.*prod.*

action:

keep

/<code>


  • regex: .*prod.* 就是過濾上面api註冊時候打的標籤tags


從新加載promentheus配置文件,就可以用看到獲取的信息


Prometheus基於Consul的服務發現


分享到:


相關文章: