你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

排查虚拟网络中 Azure 数据资源管理器群集的访问、引入和操作问题

重要

请考虑迁移到基于 Azure 专用终结点的解决方案,以使用 Azure 数据资源管理器实现网络安全。 它不太容易出错,并提供功能奇偶一致性

本部分介绍如何排查已部署到虚拟网络的群集的连接、操作和群集创建问题。

访问问题

如果你在使用公共 (cluster.region.kusto.windows.net) 或专用 (private-cluster.region.kusto.windows.net) 终结点访问群集时遇到问题,并且你怀疑该问题与虚拟网络设置有关,请执行以下步骤来排查问题。

检查 TCP 连接

第一步涉及到使用 Windows 或 Linux OS 检查 TCP 连接。

  1. TCping 下载到与群集连接的计算机上。

  2. 使用以下命令从源计算机 Ping 目标:

    C:\> tcping -t yourcluster.kusto.windows.net 443
    ** Pinging continuously.  Press control-c to stop **
    Probing 1.2.3.4:443/tcp - Port is open - time=100.00ms
    

如果测试不成功,请继续执行以下步骤。 如果测试成功,则问题不是由 TCP 连接问题引起的。 转到操作问题以进一步进行排除故障。

检查网络安全组 (NSG) 规则

检查附加到群集子网的 NSG 是否具有一个允许从该客户端计算机 IP 的端口 443 进行访问的入站规则。

检查路由表是否配置为阻止访问的问题

如果群集的子网配置为强制将所有与 Internet 绑定的流量通过隧道返回到防火墙(具有路由表的子网,该路由表包含默认路由“0.0.0.0/0”),请确保计算机 IP 地址具有下一个跃点类型设置为 VirtualNetwork/Internet 的路由。 需使用此路由来防止非对称路由问题。

引入问题

如果你遇到引入问题并怀疑它与虚拟网络设置有关,请执行以下步骤。

检查引入运行状况

检查群集引入指标是否指示状态正常。

检查数据源资源的安全规则

如果指标指示未处理来自数据源的任何事件(事件中心/IoT 中心的“已处理事件”指标),请确保数据源资源(事件中心或存储)在防火墙规则或服务终结点中允许从群集的子网进行访问。

检查群集子网上配置的安全规则

确保群集的子网正确配置了 NSG、UDR 和防火墙规则。 此外,测试所有依赖终结点的网络连接。

群集创建和操作问题

如果你遇到群集创建或操作问题,并且你怀疑该问题与虚拟网络设置有关,请按照以下步骤来排查问题。

检查“DNS服务器”配置

设置专用终结点需要配置 DNS,我们仅支持 Azure 专用 DNS 区域设置。 不支持自定义 DNS 服务器设置,请检查作为专用终结点一部分创建的记录是否注册到了 Azure 专用 DNS 区域。

使用 REST API 诊断虚拟网络

ARMClient 用于通过 PowerShell 调用 REST API。

  1. 使用 ARMClient 登录

    armclient login
    
  2. 调用诊断操作

    $subscriptionId = '<subscription id>'
    $clusterName = '<name of cluster>'
    $resourceGroupName = '<resource group name>'
    $apiversion = '2019-11-09'
    
    armclient post "https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Kusto/clusters/$clusterName/diagnoseVirtualNetwork?api-version=$apiversion" - verbose
    
  3. 检查响应

    HTTP/1.1 202 Accepted
    ...
    Azure-AsyncOperation: https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Kusto/locations/{location}/operationResults/{operation-id}?api-version=2019-11-09
    ...
    
  4. 等待操作完成

    armclient get https://management.azure.com/subscriptions/$subscriptionId/providers/Microsoft.Kusto/locations/{location}/operationResults/{operation-id}?api-version=2019-11-09
    
    {
      "id": "/subscriptions/{subscription-id}/providers/Microsoft.Kusto/locations/{location}/operationresults/{operation-id}",
      "name": "{operation-name}",
      "status": "[Running/Failed/Completed]",
      "startTime": "{start-time}",
      "endTime": "{end-time}",
      "properties": {...}
    }
    

    等到 status 属性显示为 Completed,然后 properties 字段应会显示 :

    {
      "id": "/subscriptions/{subscription-id}/providers/Microsoft.Kusto/locations/{location}/operationresults/{operation-id}",
      "name": "{operation-name}",
      "status": "Completed",
      "startTime": "{start-time}",
      "endTime": "{end-time}",
      "properties": {
        "Findings": [...]
      }
    }
    

如果 Findings 属性显示空结果,则表示所有网络测试均已通过且未发生连接中断。 如果显示错误“可能不满足出站依赖关系 '{dependencyName}:{port}' (出站)”,则表示群集可能无法访问依赖服务终结点。 继续执行以下步骤。

检查 NSG 规则

确保按照配置网络安全组规则中的说明正确配置了 NSG

检查路由表是否配置为阻止引入的问题

如果群集的子网配置为强制将所有与 Internet 绑定的流量通过隧道返回到防火墙(具有路由表的子网,该路由表包含默认路由“0.0.0.0/0”),请确保管理 IP 地址运行状况监视 IP 地址具有下一个跃点类型设置为 Internet、源地址前缀设置为“management-ip/32”和“health-monitoring-ip/32”的路由。 需使用此路由来防止非对称路由问题。

检查防火墙规则

如果通过强制隧道将子网出站流量发送到防火墙,请确保按照使用防火墙保护出站流量中所述,在防火墙配置中允许所有依赖项 FQDN(例如 .blob.core.windows.net)。

群集暂停问题

如果群集无法暂停,请确认订阅中的网络资源上没有任何锁。