GrafanaでCloudflareトンネルを監視する
Grafana ↗は、他のデータベースに保存されたデータを可視化するダッシュボードツールです。Grafanaを使用して、トンネルメトリクスを実用的なインサイトに変換できます。
cloudflaredからGrafanaにメトリクスを直接プッシュすることはできません。代わりに、cloudflaredはPrometheus ↗メトリクスエンドポイントを実行し、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)で次のコマンドを実行します。
cloudflared tunnel --metrics 192.168.1.1:60123 run my-tunnelダッシュボードを介してトンネルが作成された場合、cloudflaredシステムサービス構成に—metricsフラグを追加する必要があります。これを行う方法については、トンネル実行パラメータの追加を参照してください。
PrometheusおよびGrafanaサーバー(192.168.1.2)で:
-
Prometheusを抽出します:
Terminal window tar xvfz prometheus-*.tar.gzcd prometheus-* -
テキストエディタで
prometheus.ymlを開き、ファイルの最後にcloudflaredジョブを追加します:# my global configglobal: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ポート -
Prometheusを起動します:
Terminal window ./prometheus --config.file="prometheus.yml"オプションで、Prometheusをサービスとして実行するように設定し、マシンが再起動した場合に手動で起動する必要がないようにできます。
-
ブラウザを開き、
http://localhost:9090/にアクセスします。Prometheusダッシュボードにアクセスできるはずです。 -
Prometheusがトンネルメトリクスを取得していることを確認するには、式コンソールに
cloudflared_tunnel_total_requestsを入力し、Executeを選択します。
他の利用可能なメトリクスを確認するには、利用可能なメトリクスを参照してください。
-
Grafanaをダウンロード ↗してインストールします。
-
Grafanaをシステムサービスとして起動します:
Terminal window sudo systemctl daemon-reloadsudo systemctl start grafana-server -
Grafanaが実行中であることを確認します:
Terminal window sudo systemctl status grafana-server -
ブラウザを開き、
http://localhost:3000/にアクセスします。GrafanaがリッスンするデフォルトのHTTPポートは3000です。別のポートを設定していない限り。 -
サインインページで、Grafanaの認証情報を入力します。
アカウントなしでテストするには、ユーザー名とパスワードの両方に
adminを入力し、パスワード変更ステップをスキップできます。 -
Grafanaで、Connections > Data sourcesに移動します。
-
Add a new data sourceを選択し、Prometheusを選択します。
-
Prometheus server URLフィールドに、PrometheusダッシュボードのIPアドレスとポート(
http://localhost:9090)を入力します。 -
Save & testを選択します。
- Grafanaで、Dashboards > New > New dashboardに移動します。
- Add visualizationを選択します。
- Prometheusを選択します。
- メトリクスフィールドに
cloudflared_tunnel_total_requestsを入力し、Run queriesを選択します。リクエスト数を時間の関数として示すグラフが表示されます。

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