Prometheus: Blackbox Exporter
如何使用 Prometheus Blackbox Exporter 探測 HTTP 和 ICMP(ping)端點
👋 歡迎來到 Stackhero 文件!
Stackhero 提供一個即用型的 Prometheus cloud 解決方案,帶來多項好處,包括:
- 包含
Alert Manager,可發送警報至Slack、Mattermost、PagerDuty等。- 專用電郵伺服器發送無限電郵警報。
Blackbox用於探測HTTP、ICMP、TCP等。- 使用線上配置文件編輯器進行簡易配置。
- 只需點擊即可輕鬆完成更新。
- 由專用私有 VM提供的最佳性能和強大安全性。
節省時間並簡化您的生活:只需 5 分鐘即可嘗試 Stackhero 的 Prometheus cloud hosting 解決方案!
Prometheus Blackbox Exporter 簡介
Prometheus Blackbox Exporter 是一個強大的工具,讓您可以使用多種協議探測端點,包括 HTTP、HTTPS、DNS、TCP 和 ICMP。這種靈活性允許全面監控基礎設施和服務的不同方面。
例如,在探測 HTTP 和 HTTPS 端點時,您可以:
- 通過檢查 2xx HTTP 狀態碼來驗證網站的可用性。
- 確保返回特定內容,例如將網頁標題與預期文本匹配。
- 通過檢索 TLS 證書的到期日期來驗證它們,幫助您防止意外的續期問題。
- 通過評估 DNS 解析時間和 TLS 握手的持續時間來衡量性能。
使用 ICMP,您可以確認伺服器對 ping 請求的回應並測量其回應時間。此外,DNS 探測提供回應時間的見解,而 TCP 探測讓您連接到服務以驗證 SSH 伺服器橫幅的內容和版本。
Stackhero for Prometheus 的大圖
Prometheus Blackbox Exporter 配置
設置 Blackbox Exporter 涉及兩個關鍵文件:blackbox-exporter.yml 用於核心設置,prometheus.yml 用於定義 Prometheus 如何從 exporter 中抓取數據。
配置 Blackbox Exporter 核心
在 blackbox-exporter.yml 文件中找到的核心配置,指定支持哪些協議以及如何監控它們。
在 Stackhero for Prometheus 上,這個文件預先配置為支持 ICMP 監控和 HTTP/HTTPS 監控(通過 GET 和 POST 請求)。如果您需要為更高級的場景定制此文件,可以查看 Blackbox Exporter 存儲庫 中的配置示例,並參考官方文檔 以獲得進一步指導。
配置 Prometheus Blackbox Exporter 目標
大多數配置將在 prometheus.yml 文件中進行,您可以指示 Prometheus 像其他 exporter 一樣從 Blackbox Exporter 中抓取數據。
例如,考慮下面的配置,每 15 秒檢查一次 prometheus.io 和 grafana.com 的 ICMP(ping)回應(由 scrape_interval 定義)。您可以將此塊添加到 prometheus.yml 文件的 scrape_configs 部分,並更新 targets 陣列以監控您希望的域名或 IP 地址:
- job_name: "blackbox-icmp"
metrics_path: "/blackbox-exporter/probe"
params:
module: [ "icmp" ]
relabel_configs:
- source_labels: [ "__address__" ]
target_label: "__param_target"
- source_labels: [ "__param_target" ]
target_label: "instance"
- target_label: "__address__"
replacement: "prometheus-blackbox-exporter:9115"
static_configs:
- targets: [ "prometheus.io", "grafana.com" ]
同樣,下面的配置監控 HTTP 伺服器。在此設置中,如果 HTTP 回應狀態不在 2xx 範圍內,目標將被標記為錯誤。您可以將此塊插入到 prometheus.yml 文件的 scrape_configs 部分,並更新 targets 陣列以監控您希望的 URL:
- job_name: "blackbox-http"
metrics_path: "/blackbox-exporter/probe"
params:
module: [ "http_2xx" ]
relabel_configs:
- source_labels: [ "__address__" ]
target_label: "__param_target"
- source_labels: [ "__param_target" ]
target_label: "instance"
- target_label: "__address__"
replacement: "prometheus-blackbox-exporter:9115"
static_configs:
- targets: [ "https://prometheus.io/", "https://grafana.com/" ]
配置好抓取任務後,您可以在 Blackbox UI 中查看調試日誌。UI 的鏈接可在您的 Stackhero 儀表板上找到,提供有關探測結果的寶貴見解。
Blackbox UI 顯示最近抓取的結果
配置 Grafana 以顯示來自 Blackbox Exporter 的 Prometheus 數據
Grafana 使創建儀表板變得簡單,這些儀表板可視化由 Blackbox Exporter 收集的性能和可用性指標。只需幾次點擊,您就可以設置動態儀表板,讓您的 Prometheus 數據栩栩如生。要了解有關 Grafana 與 Prometheus 集成的更多詳細信息,您可以探索 Grafana 的文檔。
由 Grafana 生成的儀表板示例,基於 Prometheus Blackbox Exporter 數據