如何優雅的使用TenSunS管理Blackbox站點監控

StarsL發表於2024-11-03

🦄概述

后羿 - 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儲存監控目標的屬性:modulecompanyprojectenvnameinstance,分別表示:監控型別,公司部門,專案,環境,名稱,例項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的自動發現配置。

相關文章