今天來用 Blackbox Exporter 來監測 IPAM, kubeadm 的 control planeBlackbox Exporter
的運作原理跟 Node Exporter
有點不一樣Node Exporter
是透過抓取本機資料後將本機的 9100 Port 開放給 Prometheus 抓取Blackbox Exporter
是不需要到本機上抓取資料 可以由一台 Agent 來去做監測
再由 Agent 開放 9115 Port 給 Prometheus 抓取
所以 Blackbox Exporter 能夠個 Agent 負責非常多 Server / Host 的檢測
且能夠設定 module 來對應不同類別的服務和協定
以今天要實作的 IPAM Service 監測來說的話運作原理類似下圖
一樣用 APT 來進行安裝
apt-get install prometheus-blackbox-exporter -y
接著檢查一下 Blackbox Exporter 有沒有正常運作
service prometheus-blackbox-exporter status
一切正常 很棒
接著來寫 Blackbox Exporter 的設定
vim /etc/prometheus/blackbox.yml
可以看到預設就有 module 可以給我們使用了
在第2行的 http_2xx 這個模組就能夠給監測 IPAM 站台使用了
也有 tcp_connect 可以用來查看 kubeadm 的 Control plane
那麼就直接來設定 prometheus 的設定檔吧
vim /etc/prometheus/prometheus.yml
scrape_configs:
- job_name: 'kubeadm-control-plane'
metrics_path: /probe
params:
module: [tcp_connect] # 使用 TCP 連線探測
static_configs:
- targets:
- lke-main.ironman.test:6443
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: localhost:9115
- job_name: 'ipam_service'
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets:
- http://ipam.ironman.test
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: localhost:9115
接著重開 Prometheus
service prometheus restart
到 Prometheus 的頁面上觀測看看 以 probe_success
為 Metric 查詢看看
? 只有一條線? 用 Console 來檢視看看
兩個都是有正常回應的 但是因為值一樣所以只顯示一條出來 ==
還有其實可以在 Graph 把鼠標一到 Metric 的名字上面就會把該 Metric 的圖層一到最高
移到其中一個就可以在圖表上看到囉