コンテンツにスキップ

GrafanaでCloudflareトンネルを監視する

Last reviewed: 10 months ago

Grafanaは、他のデータベースに保存されたデータを可視化するダッシュボードツールです。Grafanaを使用して、トンネルメトリクスを実用的なインサイトに変換できます。

cloudflaredからGrafanaにメトリクスを直接プッシュすることはできません。代わりに、cloudflaredPrometheusメトリクスエンドポイントを実行し、Prometheusサーバーが定期的にスクレイプします。Grafanaはその後、Prometheusをデータソースとして使用して、管理者にメトリクスを表示します。

flowchart LR

  subgraph 192.168.1.1
  A[cloudflared]-->B[Metrics endpoint]
  end

  B--->C
  subgraph 192.168.1.2
  C[Prometheus server]-->D[Grafana dashboard]
  end

このチュートリアルでは、メトリクスエンドポイントの作成、Prometheusサーバーの設定、およびGrafanaでのデータの表示方法について説明します。

始める前に

  • Cloudflareトンネルが必要です。トンネルを作成するには、はじめにガイドを参照してください。

メトリクスエンドポイントの作成

CLIを介してトンネルが作成された場合、cloudflaredサーバー(192.168.1.1)で次のコマンドを実行します。

Terminal window
cloudflared tunnel --metrics 192.168.1.1:60123 run my-tunnel

ダッシュボードを介してトンネルが作成された場合、cloudflaredシステムサービス構成に—metricsフラグを追加する必要があります。これを行う方法については、トンネル実行パラメータの追加を参照してください。

Prometheusの設定

PrometheusおよびGrafanaサーバー(192.168.1.2)で:

  1. Prometheusをダウンロードします。

  2. Prometheusを抽出します:

    Terminal window
    tar xvfz prometheus-*.tar.gz
    cd prometheus-*
  3. テキストエディタでprometheus.ymlを開き、ファイルの最後にcloudflaredジョブを追加します:

    # my global config
    global:
    scrape_interval: 15s # スクレイプ間隔を15秒ごとに設定します。デフォルトは1分ごとです。
    evaluation_interval: 15s # ルールを15秒ごとに評価します。デフォルトは1分ごとです。
    # scrape_timeoutはグローバルデフォルト(10s)に設定されています。
    # Alertmanagerの設定
    alerting:
    alertmanagers:
    - static_configs:
    - targets:
    # - alertmanager:9093
    # ルールを一度読み込み、グローバルな'evaluation_interval'に従って定期的に評価します。
    rule_files:
    # - "first_rules.yml"
    # - "second_rules.yml"
    # スクレイプするエンドポイントを正確に1つ含むスクレイプ構成:
    # ここではPrometheus自体です。
    scrape_configs:
    # ジョブ名は、スクレイプされた任意のタイムシリーズにラベル`job=<job_name>`として追加されます。
    - job_name: "prometheus"
    # metrics_pathはデフォルトで'/metrics'です。
    # schemeはデフォルトで'http'です。
    static_configs:
    - targets: ["localhost:9090"] ## Prometheusダッシュボードのアドレス
    - job_name: "cloudflared"
    static_configs:
    - targets: ["198.168.1.1:60123"] ## cloudflaredサーバーのIPとトンネル用に設定された--metricsポート
  4. Prometheusを起動します:

    Terminal window
    ./prometheus --config.file="prometheus.yml"

    オプションで、Prometheusをサービスとして実行するように設定し、マシンが再起動した場合に手動で起動する必要がないようにできます。

  5. ブラウザを開き、http://localhost:9090/にアクセスします。Prometheusダッシュボードにアクセスできるはずです。

  6. Prometheusがトンネルメトリクスを取得していることを確認するには、式コンソールにcloudflared_tunnel_total_requestsを入力し、Executeを選択します。

    トンネルメトリクスデータを表示するPrometheusダッシュボード

他の利用可能なメトリクスを確認するには、利用可能なメトリクスを参照してください。

GrafanaをPrometheusに接続する

  1. Grafanaをダウンロードしてインストールします。

  2. Grafanaをシステムサービスとして起動します:

    Terminal window
    sudo systemctl daemon-reload
    sudo systemctl start grafana-server
  3. Grafanaが実行中であることを確認します:

    Terminal window
    sudo systemctl status grafana-server
  4. ブラウザを開き、http://localhost:3000/にアクセスします。GrafanaがリッスンするデフォルトのHTTPポートは3000です。別のポートを設定していない限り。

  5. サインインページで、Grafanaの認証情報を入力します。

    アカウントなしでテストするには、ユーザー名とパスワードの両方にadminを入力し、パスワード変更ステップをスキップできます。

  6. Grafanaで、Connections > Data sourcesに移動します。

  7. Add a new data sourceを選択し、Prometheusを選択します。

  8. Prometheus server URLフィールドに、PrometheusダッシュボードのIPアドレスとポート(http://localhost:9090)を入力します。

  9. Save & testを選択します。

Grafanaダッシュボードの構築

  1. Grafanaで、Dashboards > New > New dashboardに移動します。
  2. Add visualizationを選択します。
  3. Prometheusを選択します。
  4. メトリクスフィールドにcloudflared_tunnel_total_requestsを入力し、Run queriesを選択します。リクエスト数を時間の関数として示すグラフが表示されます。

トンネルメトリクスグラフを表示するGrafanaダッシュボード

クエリに操作を追加して、表示内容を変更できます。たとえば、メトリクスの報告が始まってからのすべてのトンネルリクエストではなく、最近の期間(たとえば1日)のすべてのトンネルリクエストを表示することができます。