Prometheus: Blackbox Exporter

Prometheus Blackbox Exporterを使用してHTTPおよびICMP(ping)エンドポイントをプローブする方法

👋 Stackheroのドキュメントへようこそ!

Stackheroは、数多くの利点を提供するPrometheusクラウドソリューションを提供しています。主な利点は以下の通りです:

  • Alert Managerが含まれており、SlackMattermostPagerDutyなどにアラートを送信できます。
  • 無制限のメールアラートを送信できる専用メールサーバー。
  • BlackboxHTTPICMPTCPなどをプローブ。
  • オンライン設定ファイルエディタによる簡単な設定
  • ワンクリックでの手間いらずの更新
  • プライベートで専用のVMによる最適なパフォーマンスと強固なセキュリティ

時間を節約し、生活を簡素化:StackheroのPrometheusクラウドホスティングソリューションを試すのに5分しかかかりません!

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がエクスポーターからデータを取得する方法を定義するprometheus.ymlという2つの主要なファイルを使用します。

blackbox-exporter.ymlファイルにあるコア設定では、サポートするプロトコルとその監視方法を指定します。

Stackhero for Prometheusでは、このファイルはICMP監視とHTTP/HTTPS監視(GETおよびPOSTリクエスト経由)をサポートするように事前設定されています。より高度なシナリオに合わせてこのファイルを調整する必要がある場合は、Blackbox Exporterリポジトリの設定例を確認し、公式ドキュメントを参照してください。

ほとんどの設定はprometheus.ymlファイルで行われ、他のエクスポーターと同様にPrometheusにBlackbox Exporterからデータを取得するよう指示します。

たとえば、以下の設定はprometheus.iografana.comから15秒ごとにICMP(ping)応答を確認します(scrape_intervalで定義されています)。このブロックをprometheus.ymlファイルのscrape_configsセクションに追加し、監視したいドメイン名やIPアドレスでtargets配列を更新できます。

  - 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セクションに挿入し、監視したいURLでtargets配列を更新できます。

  - 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のドキュメントを参照してください。

Prometheus Blackbox Exporterデータに基づいてGrafanaが生成したダッシュボードの例Prometheus Blackbox Exporterデータに基づいてGrafanaが生成したダッシュボードの例