文章目錄
- 前言
- 一、Consul 在這里的作用
- 二、原理
- 三、實現過程
- 安裝 consul
- 節點信息(exporter)注冊進去consul
- 節點信息(exporter)從consul解除注冊:
- prometheus配置consul地址
- 總結
前言
我們平時使用 prometheus 收集監控數據,例如通過 node_exporter 獲取監控數據,那每次新增一個監控的節點,我們都得相對應地修改 prometheus 的配置文件并重啟他,相當麻煩,于是,prometheus 就提供了服務發現地機制,可以動態新增監控的節點。
一、Consul 在這里的作用
consul 這里是用于實現prometheus的服務發現,可以讓prometheus動態地發現和監控在 Consul 注冊的服務,實現便捷的注冊新的監控節點。
二、原理
將節點信息(exporter)注冊到consul,然后將consul注冊到promethesu,這樣prometheus就能自動識別里面對應的節點信息。不需要每次新增刪除一個監控節點,還得修改prometheus的配置并重啟,只需要調用consul的API就可以注冊進去,實現動態新增刪除。
根據服務名區分node_exporter、process_exporter等不同的組件,然后每個組件都可以注冊多個節點(注冊中心一個服務多個實例集群的概念)。
三、實現過程
安裝 consul
下載:
https://releases.hashicorp.com/consul/1.17.0/consul_1.17.0_linux_amd64.zip
解壓,進去目錄,啟動
nohup ./consul agent -dev -data-dir=/usr/local/consul/data -client 0.0.0.0 &
訪問 consul
http://192.168.231.56:8500
節點信息(exporter)注冊進去consul
把節點的實際 ip 替換下面的 ${ip}
curl -X PUT -d '{ "id": "${ip}", "name": "node_exporter", "address": "${ip}", "port": 9100, "tags": ["prometheus"], "checks": [{"http": "http://${ip}:9100/metrics","interval": "10s"}]}' http://192.168.231.56:8500/v1/agent/service/register
節點信息(exporter)從consul解除注冊:
把節點的實際 ip 替換下面的 ${ip}
curl --request PUT http://192.168.231.56:8500/v1/agent/service/deregister/${ip}
prometheus配置consul地址
下面用你節點的實際 ip 替換
scrape_configs:- job_name: 'node_exporter'consul_sd_configs:- server: '192.168.231.56:8500'services: ['node_exporter']
總結
歡迎指出我的錯誤!