Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Grafana で Cloudflare Tunnel を監視する

最終更新 Markdown で表示Agent セットアップ

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

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

flowchart LR

  subgraph 192.168.1.1
  A[cloudflared]-->B[メトリクスエンドポイント]
  end

  B--->C
  subgraph 192.168.1.2
  C[Prometheus サーバー]-->D[Grafana ダッシュボード]
  end

このチュートリアルでは、メトリクスエンドポイントの作成、Prometheus サーバーのセットアップ、Grafana でのデータ表示までを扱います。

始める前に

  • Cloudflare Tunnel が必要です。トンネルの作成は、スタートガイド を参照してください。

メトリクスエンドポイントを作成する

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

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

トンネルをダッシュボードで作成した場合は、cloudflared のシステムサービス設定に --metrics フラグを追加する必要があります。手順は トンネルの run パラメーターを追加する を参照してください。

Prometheus をセットアップする

Prometheus と Grafana のサーバー(192.168.1.2)で次を行います。

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

  2. Prometheus を展開します。

    tar xvfz prometheus-*.tar.gz
    cd prometheus-*
  3. テキストエディターで prometheus.yml を開き、ファイル末尾に cloudflared ジョブを追加します。

    # my global config
    global:
      scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
      evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
      # scrape_timeout is set to the global default (10s).
    
    # Alertmanager configuration
    alerting:
      alertmanagers:
        - static_configs:
            - targets:
              # - alertmanager:9093
    
    # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
    rule_files:
      # - "first_rules.yml"
      # - "second_rules.yml"
    
    # A scrape configuration containing exactly one endpoint to scrape:
    # Here it's Prometheus itself.
    scrape_configs:
      # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
      - job_name: "prometheus"
    
        # metrics_path defaults to '/metrics'
        # scheme defaults to 'http'.
    
        static_configs:
          - targets: ["localhost:9090"] ## Address of Prometheus dashboard
    
      - job_name: "cloudflared"
        static_configs:
          - targets: ["198.168.1.1:60123"] ## cloudflared server IP and the --metrics port configured for the tunnel
  4. Prometheus を起動します。

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

    マシン再起動時に手動起動しなくて済むよう、Prometheus をサービスとして動かすこともできます。

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

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

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

利用可能なほかのメトリクスは、利用可能なメトリクス を参照してください。

Grafana を Prometheus に接続する

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

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

    sudo systemctl daemon-reload
    sudo systemctl start grafana-server
  3. Grafana が動いていることを確認します。

    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 日など、最近の期間のトンネルリクエストだけを表示できます。

役に立ちましたか?