跳转到内容
本站为社区维护的非官方中文翻译,与 Cloudflare, Inc. 无关联。本站不提供账户登录,请勿在任何非官方站点输入您的 Cloudflare 账户信息。官方文档:developers.cloudflare.com

故障排除

最后更新 查看 MarkdownAgent 设置

使用本指南解决通过 Codeless Connector Framework (CCF) 将 Cloudflare 日志与 Microsoft Sentinel 集成时的常见问题。

连接器部署失败并出现 InternalServerError (HTTP 500)

原因: Cloudflare CCF 连接器所需的 Microsoft 托管服务主体尚未在你的 Microsoft Entra ID 租户中预配。这通常发生在连接器配置页面上的 Grant tenant-wide admin consent(授予租户范围管理员同意) 按钮无法完成 OAuth 重定向时——例如由于浏览器扩展、缓存会话、冲突的已登录账户、条件访问策略,或未完成的多重身份验证 (MFA) 质询。

修复:

  1. 确认订阅上已注册 Microsoft.SecurityInsights 资源提供程序:

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

    输出应返回 "state": "Registered"。

  2. 在 InPrivate/Incognito 浏览器会话中,以持有以下 Microsoft Entra 角色之一的用户身份登录:Privileged Role Administrator、Cloud Application Administrator、AI Administrator 或 Application 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(服务主体 ID) 字段应自动填充,且不再显示 Grant tenant-wide admin consent(授予租户范围管理员同意) 按钮。然后重试连接器部署。

部署因 CreateDataFlowResources 上的 InvalidTemplate 失败

你看到类似以下错误的部署失败:

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

原因: ARM 模板要求 Azure Blob Storage 账户和 Microsoft Sentinel workspace(及其底层 Log Analytics workspace)位于同一 Azure 订阅和同一资源组中。当它们位于不同订阅或不同资源组时,嵌套的 CreateDataFlowResources 子部署无法解析所需资源引用,验证会失败。

此错误的一个较不常见变体发生在目标订阅未注册 Microsoft.EventGrid 资源提供程序时。

修复:

  1. 确认这两个资源共置在同一 Azure 订阅和同一资源组中。如果不是,请重新部署或迁移它们,使两者共享订阅和资源组。

  2. 在目标订阅上注册所需的资源提供程序:

    az provider register --namespace Microsoft.SecurityInsights
    az provider register --namespace Microsoft.EventGrid
  3. 部署后,确认 Microsoft 托管服务主体在 Storage 账户上持有这些角色分配:

    • Storage Blob Data Reader
    • Storage Queue Data Contributor
  4. 确认 Storage 账户的网络配置允许连接器访问 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 workspace 中创建了 CloudflareV2_CL 表。部署较新的连接器版本时,ARM 模板会尝试更新此表 schema。如果新 schema 省略了当前表中存在的列,或将现有列更改为不兼容的数据类型,Azure Monitor 会拒绝该更新。

修复: 在重新部署连接器之前,通过 Azure Monitor REST API 直接更新现有表 schema。使用在工作区上持有 Log Analytics Contributor 角色的账户,从 Azure Cloud Shell 运行更新。

  1. 从 Cloudflare CCF 连接器解决方案包(可在 Microsoft Sentinel Content Hub ↗ 获取)下载最新的 CloudflareV2_CL.json schema 定义,并将其上传到 Cloud Shell 会话。

  2. 请求 Azure Resource Manager 访问令牌:

    az account get-access-token --resource https://management.azure.com/
  3. 应用更新后的表 schema,将占位符替换为你的值:

    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 连接器——部署应在没有 schema 验证错误的情况下完成。

CloudflareV2_CL 中字段缺失或为 null

原因: Data Collection Rule (DCR) schema 与正在投递的 Cloudflare Logpush schema 不同步。常见有两种变体:

  • 数据类型不匹配: 字段在 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 streamDeclarations 和 CloudflareV2_CL 表定义中更新该字段的数据类型,以匹配 Cloudflare Logpush schema(例如浮点值如 EdgeResponseCompressionRatio 使用 real,BotDetectionIDs 使用 dynamic)。

    • 对于保留名称冲突: 在 DCR transformKql 转换中重命名该字段,并将重命名后的列添加到 CloudflareV2_CL 表定义。例如,要保留 NEL Type 值:

      source
      | extend NELType = Type
      | project-away Type

      向 CloudflareV2_CL 添加数据类型为 string 的 NELType 列。

验证: 发送一批新的 Logpush 数据,并查询 CloudflareV2_CL 中受影响的字段。值现在应已填充,不再为 null。

Cloudflare CCF 解决方案工作簿未填充

CCF 解决方案附带的 Cloudflare 工作簿可以加载,但不显示数据,或其查询失败,错误指示所引用的表或连接器不存在。

原因: 在较早版本中,随 Cloudflare CCF 解决方案附带的工作簿引用了旧版 Cloudflare_CL 表和旧版 CloudflareDataConnector。CCF 连接器通过解析器将数据摄取到 CloudflareV2_CL,因此即使日志正在正确摄取,针对旧版表的工作簿查询也不会返回结果。

修复: 将 Cloudflare CCF 解决方案升级到其工作簿引用 CCF 连接器解析器和 CloudflareV2_CL 表的版本。最新解决方案版本可从 Microsoft Sentinel Content Hub ↗ 获取。

验证: 重新打开工作簿。面板应填充最近的 Cloudflare 日志数据。

仍未解决

如果此处未涵盖你的问题:

这篇文档对您有帮助吗?