🦄概述
后羿 - TenSunS(原ConsulManager)是一個使用Flask+Vue開發,基於Consul的WEB運維平臺,彌補了Consul官方UI對Services管理的不足;並且基於Consul的服務發現與鍵值儲存:實現了Prometheus自動發現多雲廠商各資源資訊;基於Blackbox對站點監控的視覺化維護;以及對自建與雲上資源的優雅管理與展示。
倉庫地址:https://github.com/starsliao/TenSunS
Consul欄位設計說明
- 所有資料存在一個名為
blackbox_exporter
的Services項中,每個監控目標為一個子Service。 - 每個Service使用Meta的kv儲存監控目標的屬性:
module
,company
,project
,env
,name
,instance
,分別表示:監控型別,公司部門,專案,環境,名稱,例項url。 - 新增監控時,監控型別欄位(
module
)和Blackbox配置中的module
必須保持一致。 - 前5個欄位合併即為consul的serviceID,作為唯一監控項標識
配置Prometheus與Blackbox
原理:基於Consul實現Prometheus的自動發現功能配置
- 把Consul每個service的Meta的KV關聯到Prometheus每個指標的標籤。
- 根據每個指標的標籤來對監控目標分類,分組,方便管理維護。
1. 配置Blackbox_Exporter
- 在Web頁面點選
Blackbox 站點監控/Blackbox 配置
,點選複製配置
。 - 編輯blackbox_exporter的
blackbox.yml
,清空已有的配置,把複製的內容貼上進去,重啟blackbox_exporter。
2. 配置Prometheus
- 在Web頁面點選
Blackbox 站點監控/Prometheus 配置
,點選複製配置
。 - 編輯Prometheus的
prometheus.yml
,把複製的內容追加到最後,reload或重啟Prometheus。
3. 配置Prometheus告警規則
- 在Web頁面點選
Blackbox 站點監控/告警規則
,點選複製配置
。 - 編輯Prometheus的
rules.yml
,把複製的內容追加到最後,reload或重啟Prometheus。
4. 檢視Prometheus
- 在Prometheus的Web頁面中,點選Status-Targets,能看到新增的Job即表示資料同步到Prometheus。
5. 匯入Blackbox Exporter Dashboard
- 支援Grafana 8,基於blackbox_exporter 0.19.0設計
- 採用圖表+曲線圖方式展示TCP,ICMP,HTTPS的服務狀態,各階段請求延時,HTTPS證書資訊等
- 最佳化展示效果,支援監控目標的分組、分類級聯展示,多服務同時對比展示。
- 匯入ID:9965
- 詳細URL:https://grafana.com/grafana/dashboards/9965
批次匯入指令碼【現已支援直接在Web頁面上批次匯入監控站點!】
在專案倉庫根目錄的tools
目錄下:編輯blackbox-instance.list
,寫入監控目標的資訊:監控型別,公司/部門,專案,環境,名稱,例項url,每行一個,空格分隔。
注意:前5個欄位組合起來必須唯一,作為一個監控項的ID。即Consul的ServiceID
再修改匯入指令碼blackbox-input.py
中的consul_token和consul_url,儲存後執行blackbox-input.py
,即可匯入所有監控目標到Consul,並符合Prometheus的自動發現配置。