# consul
# **SERVER**
https://github.com/hashicorp/learn-consul-docker
git clone下來
我都放/opt下面
進入/datacenter-deploy-secure
會使用這三個檔案
client.json
consul-acl.json
docker-compose.yml
先用docker-compose up -d 啟動
可以參考10.55.1.116
/opt/learn-consul-docker/datacenter-deploy-secure
consul web ui 是 http://10.55.1.116:8500
先用docker-compose up -d 啟動
和gitlab上有不同的是
consul-acl.json裡會加上下面這行
"acl_master_token": "2d337b97-1885-4d28-a96d-ec50ed77f63a"
用token登入

acl.json可以直接複製10.55.1.116裡的
啟動後檢查是否可以查看web ui介面(port 8500)
# **Linux-CLIENT**
通常放在/opt/tools/consul.sh
會在rc.local放 /bin/bash /opt/tools/consul.sh 讓他開機自動執行
server端正常後 client只要執行這隻東東馬上就可以在web ui裡看到

裡面長這樣
例如第七行
你在client下指令
local_ip=`ip route get 1 | awk '{print $7;exit}'`
然後在輸入 echo $local_ip 他就可以抓的到client的ip

第14行,每個環境都要到ad dns上加上consul server的dns,
在ad上新建這筆A紀錄,才能解析的到。

故不同環境consul.sh的第14行都需要修改。
# **Windows-CLIENT**
機器記得要先裝windows_exporter
以下已註冊10.30.95.188的win10機器為例
(consul server為10.30.95.56)
curl -X PUT --header "X-Consul-Token: 2d337b97-1885-4d28-a96d-ec50ed77f63a" -d '{
"id": "'"10.30.95.188"'",
"name": "'"10.30.0.0/16"'",
"address": "'"10.30.95.188"'",
"port": 9182,
"tags": ["'"team=IT"','"env=M"'"],
"checks": [{"http": "'"http://10.30.95.188:9182/metrics"'", "interval": "10s"}]}' \
http://10.30.95.56:8500/v1/agent/service/register
取消註冊可以直接執行以下
curl -X PUT --header "X-Consul-Token: 2d337b97-1885-4d28-a96d-ec50ed77f63a" -d '{
"id": "'"10.30.95.188"'",
"name": "'"10.30.0.0/16"'",
"address": "'"10.30.95.188"'",
"port": 9182,
"tags": ["'"team=IT"','"env=M"'"],
"checks": [{"http": "'"http://10.30.95.188:9182/metrics"'", "interval": "10s"}]}' \
http://10.30.95.56:8500/v1/agent/service/deregister/10.30.95.188
---
# **CLIENT&ansblie-playbook**
在新建機器上會跑以下三個playbook腳本
1. playbook/hostname.yml
* 機器命名正規化 & firewalld add 9100 port
跑hostname.yml 之前inventories/T4/DBA 內容須先改為以下格式

2. playbooks/install-node-exporter.yml
* 確保node-exporter有安裝
3. playbooks/depoly-consul.yml
* copy consul.sh & 執行
# **prom**
https://gitlab.com/
https://gitlab.com/tools111/prom.git
ansible-playbook app-prom.yml -i inventories/host -e host=GCP
執行完後 docker-compose up -d
docker ps

vim /opt/prom/prometheus/prometheus.yml

上圖是T4我將consul機器分成10.30.0.0,10.40.0.0兩群
garfana import dashborad
http://10.30.95.56/d/9CWBz0bik/1-node-exporter-for-prometheus-dashboard-cn-20201010?orgId=1