Skip to content

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

トラブルシューティング

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

このガイドでは、Codeless Connector Framework (CCF) 経由で Cloudflare のログを Microsoft Sentinel に統合するときに起きる、よくある問題を解決します。

InternalServerError (HTTP 500) でコネクターのデプロイが失敗する

原因: Cloudflare CCF コネクターが必要とする Microsoft 管理のサービスプリンシパルが、Microsoft Entra ID テナントにプロビジョニングされていません。これは通常、コネクター設定ページの Grant tenant-wide admin consent ボタンが OAuth リダイレクトを完了できないときに起きます。原因の例は、ブラウザー拡張機能、キャッシュされたセッション、競合するサインインアカウント、Conditional Access ポリシー、未完了の Multi-Factor Authentication (MFA) チャレンジです。

対処:

  1. サブスクリプションに Microsoft.SecurityInsights リソースプロバイダーが登録されていることを確認します。

    az provider show --namespace Microsoft.SecurityInsights --query "{state:registrationState}"

    出力は "state": "Registered" である必要があります。

  2. InPrivate/Incognito のブラウザーセッションで、次のいずれかの Microsoft Entra ロールを持つユーザーとしてサインインします。Privileged Role AdministratorCloud Application AdministratorAI AdministratorApplication Administrator

  3. Microsoft 管理アプリケーション(App ID 4f05ce56-95b6-4612-9d98-a45c8cc33f9f)のテナント全体の管理者同意 URL を開きます。{tenant-id} は Entra のテナント ID に置き換えます。

    https://login.microsoftonline.com/{tenant-id}/adminconsent?client_id=4f05ce56-95b6-4612-9d98-a45c8cc33f9f
  4. MFA チャレンジを含め、同意フローを完了します。

確認: Microsoft Sentinel で Cloudflare コネクターの設定ページを更新します。Service Principal ID フィールドが自動で入り、Grant tenant-wide admin consent ボタンは表示されなくなります。コネクターのデプロイを再試行します。

CreateDataFlowResourcesInvalidTemplate によりデプロイが失敗する

次のようなエラーでデプロイが失敗します。

Deployment template validation failed: 'The resource
'Microsoft.Resources/deployments/CreateDataFlowResources'
is not defined in the template.'

原因: ARM テンプレートは、Azure Blob Storage アカウントと Microsoft Sentinel ワークスペース(およびその基盤となる Log Analytics ワークスペース)が 同じ Azure サブスクリプションかつ同じリソースグループ にあることを求めます。別のサブスクリプションまたは別のリソースグループにあると、入れ子の CreateDataFlowResources サブデプロイが必要なリソース参照を解決できず、検証が失敗します。

あまり多くありませんが、対象サブスクリプションに Microsoft.EventGrid リソースプロバイダーが登録されていないときにも、同じ種類のエラーが起きます。

対処:

  1. 両方のリソースが同じ Azure サブスクリプションかつ同じリソースグループにあることを確認します。そうでない場合は、両方を共有するように再デプロイまたは移行します。

  2. 対象サブスクリプションに必要なリソースプロバイダーを登録します。

    az provider register --namespace Microsoft.SecurityInsights
    az provider register --namespace Microsoft.EventGrid
  3. デプロイ後、Microsoft 管理のサービスプリンシパルがストレージアカウントに次のロール割り当てを持っていることを確認します。

    • Storage Blob Data Reader
    • Storage Queue Data Contributor
  4. ストレージアカウントのネットワーク設定で、コネクターが Azure Storage Queue にアクセスできることを確認します。

確認: コネクターを再デプロイします。Deployments ブレードの状態が Succeeded になり、コネクターが Connected に遷移します。

Invalid output table schema でコネクターの更新が失敗する

次のようなエラーでデプロイが失敗します。

Failed to create required resources for data connector.
Invalid output table schema: The following columns which exist
in the current schema do not exist in the new schema or have
different types.

原因: 以前のバージョンの Cloudflare CCF コネクターが、Log Analytics ワークスペースに CloudflareV2_CL テーブルを作成しています。新しいコネクターバージョンをデプロイすると、ARM テンプレートはこのテーブルスキーマを更新しようとします。新しいスキーマが現在のテーブルにある列を省略している、または既存の列を互換性のないデータ型に変更していると、Azure Monitor は更新を拒否します。

対処: コネクターを再デプロイする前に、Azure Monitor REST API で既存のテーブルスキーマを直接更新します。ワークスペースに Log Analytics Contributor ロールを持つアカウントで、Azure Cloud Shell から更新を実行します。

  1. Cloudflare CCF コネクターのソリューションパッケージ(Microsoft Sentinel Content Hub で入手できます)から、最新の CloudflareV2_CL.json スキーマ定義をダウンロードし、Cloud Shell セッションにアップロードします。

  2. Azure Resource Manager のアクセストークンを取得します。

    az account get-access-token --resource https://management.azure.com/
  3. プレースホルダーを自分の値に置き換えて、更新したテーブルスキーマを適用します。

    az rest --method PUT \
      --url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.OperationalInsights/workspaces/<workspace-name>/tables/CloudflareV2_CL?api-version=2025-07-01" \
      --headers "Authorization=Bearer <access-token>" "Content-Type=application/json" \
      --body @CloudflareV2_CL.json

確認: コマンドは更新後のテーブル定義を JSON で返します。Cloudflare CCF コネクターを再デプロイします。スキーマ検証エラーなしでデプロイが完了する必要があります。

CloudflareV2_CL でフィールドが欠ける、または null になる

原因: Data Collection Rule (DCR) のスキーマが、配信されている Cloudflare Logpush のスキーマと同期していません。よくあるパターンは次の 2 つです。

  • データ型の不一致: DCR の streamDeclarations で、フィールドが誤った Sentinel のデータ型として宣言されています。たとえば、数値フィールドが string になっている、または BotDetectionIDs のような形が変わるフィールドが dynamic 以外になっています。レコードは取り込まれますが、一致しない列は null になります。
  • 予約済み列名との衝突: Cloudflare のフィールド名が Microsoft Sentinel の予約済み列名 と衝突しています。たとえば、Cloudflare の Network Error Logging (NEL) データセットには Type フィールドがありますが、Type は Sentinel で予約されています。予約済みの名前を持つフィールドは、元の名前では保存できません。

対処:

  1. Microsoft Sentinel Content Hub から、Cloudflare CCF ソリューションを最新バージョンにアップグレードします。新しいリリースでは、コネクターが出荷するフィールドのデータ型を順次修正し、新しい Cloudflare Logpush フィールドへの対応を追加しています。
  2. アップグレード後も欠けているフィールドが残る場合(DCR をカスタマイズしている場合など)は、手作業で修正します。
    • データ型の不一致: DCR の streamDeclarationsCloudflareV2_CL テーブル定義の両方で、フィールドのデータ型を Cloudflare Logpush スキーマに合わせて更新します(例: EdgeResponseCompressionRatio のような浮動小数点値は realBotDetectionIDsdynamic)。

    • 予約名の衝突: DCR の transformKql 変換でフィールドをリネームし、リネームした列を CloudflareV2_CL テーブル定義に追加します。たとえば、NEL の Type 値を残すには次のようにします。

      source
      | extend NELType = Type
      | project-away Type

      CloudflareV2_CL にデータ型 stringNELType 列を追加します。

確認: 新しい Logpush バッチを送り、影響を受けたフィールドについて CloudflareV2_CL を照会します。値は入り、null ではなくなっている必要があります。

Cloudflare CCF ソリューションのワークブックにデータが入らない

CCF ソリューションに同梱されている Cloudflare ワークブックは読み込めますがデータが表示されない、または参照しているテーブルやコネクターが存在しないというエラーでクエリが失敗します。

原因: 以前のリリースでは、Cloudflare CCF ソリューションに同梱されていたワークブックが、レガシーの Cloudflare_CL テーブルとレガシーの CloudflareDataConnector を参照していました。CCF コネクターはパーサー経由で CloudflareV2_CL に取り込むため、ログが正しく取り込まれていても、レガシーテーブルに対するワークブックのクエリは結果を返しません。

対処: ワークブックが CCF コネクターのパーサーと CloudflareV2_CL テーブルを参照するバージョンに、Cloudflare CCF ソリューションをアップグレードします。最新のソリューションリリースは Microsoft Sentinel Content Hub から入手できます。

確認: ワークブックを開き直します。パネルに直近の Cloudflare ログデータが入る必要があります。

まだ解決しない場合

ここに載っていない問題については、次を参照してください。

役に立ちましたか?