Prometheus: Blackbox Exporter

如何使用 Prometheus Blackbox Exporter 探測 HTTP 和 ICMP(ping)端點

👋 歡迎來到 Stackhero 文件!

Stackhero 提供一個即用型的 Prometheus cloud 解決方案,帶來多項好處,包括:

  • 包含 Alert Manager,可發送警報至 SlackMattermostPagerDuty 等。
  • 專用電郵伺服器發送無限電郵警報
  • Blackbox 用於探測 HTTPICMPTCP 等。
  • 使用線上配置文件編輯器進行簡易配置
  • 只需點擊即可輕鬆完成更新
  • 專用私有 VM提供的最佳性能和強大安全性

節省時間簡化您的生活:只需 5 分鐘即可嘗試 Stackhero 的 Prometheus cloud hosting 解決方案!

Prometheus Blackbox Exporter 是一個強大的工具,讓您可以使用多種協議探測端點,包括 HTTP、HTTPS、DNS、TCP 和 ICMP。這種靈活性允許全面監控基礎設施和服務的不同方面。

例如,在探測 HTTP 和 HTTPS 端點時,您可以:

  • 通過檢查 2xx HTTP 狀態碼來驗證網站的可用性。
  • 確保返回特定內容,例如將網頁標題與預期文本匹配。
  • 通過檢索 TLS 證書的到期日期來驗證它們,幫助您防止意外的續期問題。
  • 通過評估 DNS 解析時間和 TLS 握手的持續時間來衡量性能。

使用 ICMP,您可以確認伺服器對 ping 請求的回應並測量其回應時間。此外,DNS 探測提供回應時間的見解,而 TCP 探測讓您連接到服務以驗證 SSH 伺服器橫幅的內容和版本。

Stackhero for Prometheus 的大圖Stackhero for Prometheus 的大圖

設置 Blackbox Exporter 涉及兩個關鍵文件:blackbox-exporter.yml 用於核心設置,prometheus.yml 用於定義 Prometheus 如何從 exporter 中抓取數據。

blackbox-exporter.yml 文件中找到的核心配置,指定支持哪些協議以及如何監控它們。

Stackhero for Prometheus 上,這個文件預先配置為支持 ICMP 監控和 HTTP/HTTPS 監控(通過 GET 和 POST 請求)。如果您需要為更高級的場景定制此文件,可以查看 Blackbox Exporter 存儲庫 中的配置示例,並參考官方文檔 以獲得進一步指導。

大多數配置將在 prometheus.yml 文件中進行,您可以指示 Prometheus 像其他 exporter 一樣從 Blackbox Exporter 中抓取數據。

例如,考慮下面的配置,每 15 秒檢查一次 prometheus.iografana.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 顯示最近抓取的結果Blackbox UI 顯示最近抓取的結果

Grafana 使創建儀表板變得簡單,這些儀表板可視化由 Blackbox Exporter 收集的性能和可用性指標。只需幾次點擊,您就可以設置動態儀表板,讓您的 Prometheus 數據栩栩如生。要了解有關 Grafana 與 Prometheus 集成的更多詳細信息,您可以探索 Grafana 的文檔

由 Grafana 生成的儀表板示例,基於 Prometheus Blackbox Exporter 數據由 Grafana 生成的儀表板示例,基於 Prometheus Blackbox Exporter 數據