Skip to content

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

エンドポイントヘルスチェックを実行する(ベータ)

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

Magic Transit は、ネットワーク間接続 全体の健全性を判断するためにエンドポイントヘルスチェックを使います。プローブは顧客ネットワークの名前空間の外側にある Cloudflare インフラから始まり、トンネル終端のボーダールーターより内側の、ネットワーク深部の IP アドレスを対象にします。こうした「長距離」プローブは診断専用です。

ヘルスチェックで監視するエンドポイント IP アドレスを選ぶときは、次の指針を使います。

  • Cloudflare が広報するプレフィックスごとに、IP アドレスを 1 つ指定します。
  • 同じ ISP(インターネットサービスプロバイダー)とインフラを通る冗長 IP は必須ではありませんが、トラブルシューティング時に役立ちます。

Cloudflare は、公開されている Cloudflare IP 範囲 内からヘルスチェック用 IP へ ping します。この範囲は Cloudflare API でも確認できます。

IP プレフィックスのエンドポイントヘルスチェックを設定するときは、その IP プレフィックスの範囲内の IP アドレスを選びます。エンドポイントヘルスチェック構成の例は次の表を参照してください。

プレフィックス エンドポイント IP アドレス
103.21.244.0/24 103.21.244.100
103.21.245.0/24 103.21.245.100

詳細は トンネルヘルスチェック を参照してください。

エンドポイントヘルスチェックを設定する(ベータ)

エンドポイントヘルスチェックは Cloudflare API でのみ設定できます。ダッシュボードでは利用できません。現時点では、ヘルスチェックの設定はベータ機能です。

エンドポイントヘルスチェックの作成、一覧表示、削除の方法は API ドキュメント を参照してください。次の例は、新しいエンドポイントヘルスチェックを作成します。

curl "https://api.cloudflare.com/client/v4/accounts/account_id/diagnostics/endpoint-healthchecks" \
	--request POST \
	--json '{
		"check_type": "icmp",
		"endpoint": "8.31.160.1",
		"name": "Datacenter 1 - primary"
	}'
{
    "result": {
        "id": "<HEALTH_CHECK_ID>",
        "check_type": "icmp",
        "endpoint": "8.31.160.1",
        "name": "Datacenter 1 - primary"
    },
    "success": true,
    "errors": [],
    "messages": []
}

GraphQL でエンドポイントヘルスチェックを照会する

アカウントのエンドポイント ヘルスチェック結果を照会するには、GraphQL Analytics API を使います。magicEndpointHealthCheckAdaptiveGroups データセットは、指定したディメンションと時間間隔で集計したプローブ結果を返します。

GraphQL クエリはすべて、HTTP POST リクエストとして https://api.cloudflare.com/client/v4/graphql に送信します。

前提条件

エンドポイント ヘルスチェックのデータを照会するには、次のものが必要です。

クエリパラメーター

filter オブジェクトでよく使うパラメーターは次のとおりです。

パラメーター 説明
date_geq クエリの開始日です。YYYY-MM-DD 形式(例: 2026-01-01)です。日付ベースの切り捨てディメンションと一緒に使うと、この日以降の結果を返します。ISO 8601 の完全なタイムスタンプ(例: 2026-01-01T00:00:00Z)も使えます。
date_leq (任意) クエリの終了日です。形式は date_geq と同じです。
datetime_geq (任意) ISO 8601 形式の開始タイムスタンプです(例: 2026-01-01T00:00:00Z)。時間ベースの切り捨てディメンションでは、date_geq の代わりに使います。
datetime_leq (任意) ISO 8601 形式の終了タイムスタンプです。
limit 返す結果グループの最大数です。

利用できるディメンション の表に載っているディメンションでもフィルタできます。ディメンション名に演算子のサフィックスを付けるとフィルタになります。たとえば、endpoint_in はエンドポイントのリストで絞り込み、checkType_neq は特定のチェック種別を除外します。サフィックスなしのディメンション名は等価フィルタです。対応する演算子の一覧は Filtering を参照してください。

利用できるディメンション

dimensions フィールドでは、次のディメンションを照会できます。

ディメンション 説明
checkId 設定したヘルスチェックの一意の ID です。
checkType ヘルスチェックの種別です(例: icmp)。
endpoint チェック対象エンドポイントの IP アドレスです。
name 設定時にヘルスチェックへ付けた名前です(未設定の場合は空になることがあります)。
date 日単位に切り捨てたイベントのタイムスタンプです。
datetime イベントの完全なタイムスタンプです。
datetimeMinute 分単位に切り捨てたイベントのタイムスタンプです。
datetimeFiveMinutes 5 分間隔に切り捨てたイベントのタイムスタンプです。
datetimeFifteenMinutes 15 分間隔に切り捨てたイベントのタイムスタンプです。
datetimeHalfOfHour 30 分間隔に切り捨てたイベントのタイムスタンプです。
datetimeHour 時間単位に切り捨てたイベントのタイムスタンプです。

利用できるメトリクス

メトリクス 説明
count グループ内のヘルスチェックイベントの総数です。
sum.total 送信したヘルスチェックプローブの総数です。
sum.failures 失敗したヘルスチェックプローブの数です。
avg.lossPercentage 算出した損失率の平均です(0〜100)。

API 呼び出し

次の例は、特定アカウントのエンドポイント ヘルスチェック結果を照会し、5 分間隔で集計したプローブ数を返します。<ACCOUNT_ID>アカウント ID に、<API_TOKEN>API トークン に置き換えてください。

echo '{ "query":
  "query GetEndpointHealthCheckResults($accountTag: string, $datetimeStart: string) {
    viewer {
      accounts(filter: {accountTag: $accountTag}) {
        magicEndpointHealthCheckAdaptiveGroups(
          filter: {
            datetime_geq: $datetimeStart
          }
          limit: 10
        ) {
          count
          dimensions {
            checkId
            checkType
            endpoint
            datetimeFiveMinutes
          }
          sum {
            failures
            total
          }
        }
      }
    }
  }",
  "variables": {
    "accountTag": "<ACCOUNT_ID>",
    "datetimeStart": "2026-01-21T00:00:00Z"
  }
}' | tr -d '\n' | curl --silent \
https://api.cloudflare.com/client/v4/graphql \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data @-

JSON レスポンスを読みやすくするには、出力を jq にパイプして整形します。

... | curl --silent \
https://api.cloudflare.com/client/v4/graphql \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data @- | jq .

レスポンス例

{
  "data": {
    "viewer": {
      "accounts": [
        {
          "magicEndpointHealthCheckAdaptiveGroups": [
            {
              "count": 288,
              "dimensions": {
                "checkId": "90b478c7-bb51-4640-b94b-2c3050e9fa00",
                "checkType": "icmp",
                "datetimeFiveMinutes": "2026-01-21T12:00:00Z",
                "endpoint": "103.21.244.100"
              },
              "sum": {
                "failures": 0,
                "total": 288
              }
            },
            {
              "count": 288,
              "dimensions": {
                "checkId": "90b478c7-bb51-4640-b94b-2c3050e9fa00",
                "checkType": "icmp",
                "datetimeFiveMinutes": "2026-01-21T12:05:00Z",
                "endpoint": "103.21.244.100"
              },
              "sum": {
                "failures": 2,
                "total": 288
              }
            }
          ]
        }
      ]
    }
  },
  "errors": null
}

このレスポンスでは、sum.total はその間隔中に送信したプローブ数、sum.failures は応答がなかったプローブ数です。failures0 なら、その期間中エンドポイントは完全に到達可能だったことを示します。

エンドポイントヘルスチェックのアラートを設定する

エンドポイントの健全性が、自分で定義したしきい値を下回ったときに通知を受け取るアラートを設定できます。

  1. 設定済みのエンドポイントヘルスチェックすべての ID 一覧を取得するため、GET リクエストを送ります。
curl "https://api.cloudflare.com/client/v4/accounts/account_id/diagnostics/endpoint-healthchecks" \
	--request GET
{
    "result": [
        {
            "id": "<HEALTH_CHECK_ID>",
            "check_type": "icmp",
            "endpoint": "8.31.160.1",
            "name": "Datacenter 1 - primary"
        }
    ],
    "success": true,
    "errors": [],
    "messages": []
}
  1. アラートを受け取りたいエンドポイントの id 値を控えます。
  2. Cloudflare ダッシュボードで Notifications ページを開きます。
Notifications を開く ↗
  1. Add を選択します。
  2. ドロップダウンメニューから Magic Transit を選択します。
  3. Magic Endpoint Health Check Alert を選択します。
  4. 新しい通知の名前を入力し、必要に応じて説明を入力します。
  5. Service Level Objective (SLO) のドロップダウンメニューで、通知の SLO しきい値を選びます。SLO は、合格しなければならないエンドポイントヘルスチェックの割合を定義します。合格したエンドポイントヘルスチェックの数が SLO を下回ると、Cloudflare はアラートを生成します。
    • High - 99%
    • Medium - 98%
    • Low - 97%
  6. SLO の下のドロップダウンメニューで、ステップ 1 の API で取得した id と一致する id 値を選びます。この id は、通知を受け取りたいエンドポイントヘルスチェックと一致している必要があります。
  7. 希望する通知方法(メールや webhook など)を選びます。
  8. Save を選択します。

これで、エンドポイントヘルスチェックの SLO が選んだしきい値を下回るたびに、希望する方法で通知を受け取れます。

役に立ちましたか?