consul的集群介紹可以檢視這篇部落格:
啟動第乙個consul服務:consul1
docker run --name consul1 -d -p 8500:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8600:8600 consul:1.2.2 agent -server -bootstrap-expect 2 -ui -bind=0.0.0.0 -client=0.0.0.0
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 位址
docker inspect --format '}' consul1
啟動第二個consul服務:consul2, 並加入consul1(使用join命令)
docker run --name consul2 -d -p 8501:8500 consul agent -server -ui -bind=0.0.0.0 -client=0.0.0.0 -join 172.17.0.5
啟動第三個consul服務:consul3,並加入consul1
docker run --name consul3 -d -p 8502:8500 consul agent -server -ui -bind=0.0.0.0 -client=0.0.0.0 -join 172.17.0.5
檢視執行的容器(consul集群狀態)
[root@localhost targets]# docker exec -it consul1 consul members
node address status type build protocol dc segment
2fa2b95d31d5 172.17.0.5:8301 alive server 1.2.2 2 dc1 4b8b097f95c9 172.17.0.7:8301 alive server 1.8.4 2 dc1 d383118f1ffb 172.17.0.6:8301 alive server 1.8.4 2 dc1
接下來,我們要註冊服務到 consul 中,可以通過其提供的 api 標準介面來新增。那麼先註冊乙個測試服務,該測試資料為本機node-exporter
服務資訊,服務位址及埠為node-exporter
預設提供指標資料的位址,執行如下命令:
提一下,如果要登出掉某個服務,可以通過如下 api 命令操作,例如登出上邊新增的node-exporter
服務
curl -x put
現在 consul 服務已經啟動完畢,並成功註冊了乙個服務,接下來,我們需要配置 prometheus 來使用 consul 自動服務發現,目的就是能夠將上邊新增的服務自動發現到 prometheus 的 targets 中,增加prometheus.yml
配置如下:
prometheus 配置consul 服務發現
consul 可以使用的元標籤:
__meta_consul_dc:目標的資料中心名稱
__meta_consul_metadata_:目標的每個節點元資料鍵值
__meta_consul_node:為目標定義的節點名稱
__meta_consul_service_id:目標的服務id
__meta_consul_service_metadata_:目標的每個服務元資料鍵值
__meta_consul_service_port:目標的服務埠
__meta_consul_service:目標所屬服務的名稱
__meta_consul_tags:標記分隔符連線的目標的標記列表
Prometheus服務發現Consul
consul的集群介紹可以檢視這篇部落格 啟動第乙個consul服務 consul1 docker run name consul1 d p 8500 8500 p 8300 8300 p 8301 8301 p 8302 8302 p 8600 8600 consul 1.2.2 agent se...
Prometheus的服務發現
scrape configs the job name is added as a label job to any timeseries scraped from this config.job name nodes file sd configs files targets node yaml ...
Prometheus之服務發現介紹
對於中大型的系統環境或具有較強動態性的雲計算環境來說,靜態配置顯然難以使用 因此,prometheus為此專門設計了一組服務發現機制,以便於能夠基於服務註冊中自動發現 檢測 分類可被監控的各target,以及更新發生了變動的target 配置標籤會在抓取的生命週期中被重複利用以生成其它標籤,例如,指...