生產環境部署
上面介紹了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-node1ports:
-
'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=falsevolumes:
-
'./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=falsevolumes:
-
'./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註冊了兩臺集群
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: 定義標籤
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配置文件,就可以用看到獲取的信息