为 ExpressRoute 配置连接监视器

本文可帮助你配置连接监视器扩展来监视 ExpressRoute。 连接监视器是基于云的网络监视解决方案,用于监视 Azure 云部署和本地位置(分支机构等)之间的连接。 连接监视器属于 Azure Monitor 日志。 扩展还支持监视专用连接和 Microsoft 对等互连连接的网络连接。 为 ExpressRoute 配置连接监视器后,可以检测到需要识别和消除的网络问题。

注意

本文最近已更新,从使用术语“Log Analytics”改为使用术语“Azure Monitor 日志”。 日志数据仍然存储在 Log Analytics 工作区中,并仍然由同一 Log Analytics 服务收集并分析。 我们正在更新术语,以便更好地反映 Azure Monitor 中的日志的角色。 有关详细信息,请参阅 Azure Monitor 术语更改

借助适用于 ExpressRoute 的连接监视器,可以执行以下操作:

  • 跨多种 VNet 监视数据丢失和延迟情况并设置警报。

  • 监视网络上的所有路径(包括冗余路径)。

  • 对难以重现且在特定时间点出现的暂时性网络问题进行故障排除。

  • 帮助确定网络上导致性能下降的特定分段。

工作流

监视本地和 Azure 中的多个服务器上安装的代理。 代理之间通过发送 TCP 握手数据包进行通信。 通过代理间的通信,Azure 可以映射流量可能经过的网络拓扑和路径。

  1. 创建 Log Analytics 工作区。

  2. 安装和配置软件代理。 (如果只想通过 Microsoft 对等互连进行监视,则无需安装和配置软件代理。):

    • 在本地服务器和 Azure VM 上安装监视代理(用于专用对等互连)。
    • 在监视代理服务器上配置设置,允许监视代理进行通信。 (打开防火墙端口等)
  3. 配置网络安全组 (NSG) 规则,允许 Azure VM 上安装的监视代理与本地监视代理进行通信。

  4. 在订阅上启用网络观察程序。

  5. 设置监视:创建包含测试组的连接监视器,以监视网络中的源终结点和目标终结点。

如已使用网络性能监视器(已弃用)或连接监视器来监视其他对象或服务,并且已在某个受支持的区域内拥有 Log Analytics 工作区, 则可以跳过步骤 1 和步骤 2,并在步骤 3 开始配置。

创建工作区

在具有连接到 ExpressRoute 线路的 VNet 链路的订阅中创建一个工作区。

  1. 登录 Azure 门户。 从已连接到 ExpressRoute 线路的虚拟网络的订阅中,选择“+ 创建资源”。 搜索“Log Analytics 工作区”,然后选择“创建”。

    注意

    可以创建新的工作区或使用现有的工作区。 如果想要使用现有工作区,则必须确保工作区已迁移到新的查询语言。 详细信息...

    Screenshot of searching for Log Analytics in create a resource.

  2. 通过输入或选择以下信息来创建工作区。

    设置
    订阅 选择包含 ExpressRoute 线路的订阅。
    资源组 创建新的资源组或选择一个现有资源组。
    名称 输入名称来标识此工作区。
    区域 选择在其中创建此工作区的区域。

    Screenshot of basic tab for create Log Analytics workspace.

    注意

    ExpressRoute 线路可以位于世界的任何位置。 它不一定要在工作区所在的同一区域。

  3. 选择“查看 + 创建”进行验证,然后选择“创建”来部署工作区 。 部署工作区后,请继续按照下一节中的内容配置监视解决方案。

配置监视解决方案

完成 Azure PowerShell 脚本,方法是替换 $SubscriptionId、$location、$resourceGroup 和 $workspaceName 的值。 然后运行该脚本以配置监视解决方案。

$subscriptionId = "Subscription ID should come here"
Select-AzSubscription -SubscriptionId $subscriptionId

$location = "Workspace location should come here"
$resourceGroup = "Resource group name should come here"
$workspaceName = "Workspace name should come here"

$solution = @{
    Location          = $location
    Properties        = @{
        workspaceResourceId = "/subscriptions/$($subscriptionId)/resourcegroups/$($resourceGroup)/providers/Microsoft.OperationalInsights/workspaces/$($workspaceName)"
    }
    Plan              = @{
        Name          = "NetworkMonitoring($($workspaceName))" 
        Publisher     = "Microsoft"
        Product       = "OMSGallery/NetworkMonitoring"
        PromotionCode = ""
    }
    ResourceName      = "NetworkMonitoring($($workspaceName))" 
    ResourceType      = "Microsoft.OperationsManagement/solutions" 
    ResourceGroupName = $resourceGroup
}

New-AzResource @solution -Force

配置监视解决方案之后, 请继续执行下一步:在服务器上安装并配置监视代理。

在本地安装并配置代理

下载代理安装程序文件

  1. 导航到“Log Analytics 工作区”,并选择“设置”部分下的“代理管理” 。 下载与计算机的操作系统相对应的代理。

    Screenshot of agent management page in workspace.

  2. 接下来,将“工作区 ID”和“主密钥”复制到记事本

    Screenshot of workspace ID and primary key.

  3. 对于 Windows 计算机,请在具有管理员权限的 PowerShell 窗口中下载并运行此 PowerShell 脚本 EnableRules.ps1。 PowerShell 脚本将打开与 TCP 事务相关的防火墙端口。

    对于 Linux 计算机,需要手动更改端口号,步骤如下:

    • 导航到路径:/var/opt/microsoft/omsagent/npm_state。
    • 打开文件:npmdregistry
    • 更改端口号 PortNumber:<port of your choice> 的值

在每个监视服务器上安装 Log Analytics 代理

建议在 ExpressRoute 连接的两端至少两台服务器上安装 Log Analytics 代理,以实现冗余。 例如本地和 Azure 虚拟网络。 使用以下步骤安装代理:

  1. 请选择相应的操作系统,获取在服务器上安装 Log Analytics 代理的步骤。

  2. 完成后,Microsoft Monitoring Agent 将显示在“控制面板”中。 可以查看配置并验证代理与 Azure Monitor 日志的连接

  3. 为要用于监视的其他本地计算机重复步骤 1 和步骤 2。

在每台监视服务器上安装网络观察程序代理

新建 Azure 虚拟机

如果要创建新的 Azure VM 用于监视与 VNet 的连接,则可以在创建 VM 时安装网络观察程序代理。

现有 Azure 虚拟机

如果要使用现有 VM 监视连接,则可以单独为 LinuxWindows 安装网络代理。

打开监视代理服务器上的防火墙端口

用于防火墙的规则可以阻止源和目标服务器之间的通信。 连接监视器会检测此问题并将其显示为拓扑中的诊断消息。 若要启用连接监视,请确保防火墙规则允许使用在源和目标之间通过 TCP 或 ICMP 传递的数据包。

Windows

对于 Windows 计算机,可以运行 PowerShell 脚本,以创建连接监视器所需的注册表项。 此脚本还会创建 Windows 防火墙规则,允许监视代理创建彼此之间的 TCP 连接。 该脚本创建的注册表项指定是否记录调试日志和该日志文件的路径。 还会定义用于通信的代理 TCP 端口。 该脚本会自动设置这些注册表项的值。 不应手动更改这些注册表项。

8084 端口默认打开。 通过向该脚本提供参数“portNumber”即可使用自定义端口。 但是,如果这样做,则必须为运行脚本的所有服务器指定同一端口。

注意

“EnableRules”PowerShell 脚本仅在运行该脚本的服务器上配置 Windows 防火墙规则。 如果有网络防火墙,应确保该防火墙允许流量去往连接监视器使用的 TCP 端口。

在代理服务器上,使用管理权限打开 PowerShell 窗口。 运行 EnableRules PowerShell 脚本(之前已下载)。 不要使用任何参数。

Screenshot of running enable rules script in PowerShell window.

Linux

对于 Linux 计算机,需要手动更改要使用的端口号:

  1. 导航到路径:/var/opt/microsoft/omsagent/npm_state。
  2. 打开文件:npmdregistry
  3. 更改端口号 PortNumber:\<port of your choice\> 的值。 在工作区使用的所有代理中,所用的端口号都应该相同

配置网络安全组规则

若要监视 Azure 中的服务器,必须配置网络安全组 (NSG) 规则,以允许来自连接监视器的 TCP 或 ICMP 流量。 默认端口为 **8084,它允许安装在 Azure VM 上的监视代理与本地监视代理进行通信。

有关 NSG 的详细信息,请参阅关于筛选网络流量的教程。

注意

请确保已安装代理(包括本地服务器代理和 Azure 服务器代理),并且在执行此步骤前已运行 PowerShell 脚本。

启用网络观察程序

使用网络观察程序启用具有虚拟网络的所有订阅。 确保未对订阅显式禁用网络观察程序。 有关详细信息,请参阅启用网络观察程序

创建连接监视器

若要大致了解如何在网络中跨源终结点和目标终结点创建连接监视器、测试和测试组,请参阅创建连接监视器。 使用以下步骤为专用对等互连和 Microsoft 对等互连配置连接监视。

  1. 在 Azure 门户中,导航到“网络观察程序”资源,并在“监视”下选择“连接监视器” 。 然后选择“创建”以创建新的连接监视器。

    Screenshot of connection monitor in Network Watcher.

  2. 在创建工作流的“基本信息”选项卡上,为“区域”字段选择部署 Log Analytics 工作区的同一区域。 对于“工作区配置”,选择之前创建的现有 Log Analytics 工作区。 然后,选择“下一步: 测试组 >>”。

    Screenshot of basic tab for creating Connection Monitor.

  3. 在“添加测试组详细信息”页上,添加测试组的源终结点和目标终结点。 还将在两者之间设置测试配置。 请为此测试组输入一个名称。

    Screenshot of add test group details page.

  4. 选择“添加源”并导航到“非 Azure 终结点”选项卡。选择要监视连接的已安装 Log Analytics 代理的本地资源,然后选择“添加终结点” 。

    Screenshot of adding source endpoints.

  5. 接下来,选择“添加目标”。

    若要通过 ExpressRoute 专用对等互连监视连接,请导航到“Azure 终结点”选项卡。选择已安装网络观察程序代理的 Azure 资源,以监视与 Azure 中虚拟网络的连接 。 请确保在“IP”列中选择其中每个资源的专用 IP 地址。 选择“添加终结点”,将这些终结点添加到测试组的目标列表中。

    Screenshot of adding Azure destination endpoints.

    若要通过 ExpressRoute Microsoft 对等互连监视连接,请导航到“外部地址”选项卡。选择要通过 Microsoft 对等互连监视连接的 Azure 服务终结点。 选择“添加终结点”,将这些终结点添加到测试组的目标列表中。

    Screenshot of adding external destination endpoints.

  6. 接下来,选择“添加测试配置”。 选择“TCP”作为协议,然后输入在服务器上打开的“目标端口” 。 然后,为失败的检查和往返时间配置测试频率和阈值 。 然后选择“添加测试配置”。

    Screenshot of add test configuration page.

  7. 添加源、目标和测试配置后,选择“添加测试组”。

    Screenshot of add test group detail configured.

  8. 如果要创建警报,请选择“下一步: 创建警报 >>”。 完成后,依次选择“评审 + 创建”、“创建” 。

查看结果

  1. 转到“网络观察程序”资源,并在“监视”下选择“连接监视器” 。 应在 5 分钟后看到新的连接监视器。 若要查看连接监视器的网络拓扑和性能图表,请从测试组下拉列表中选择测试。

    Screenshot of connection monitor overview page.

  2. 在“性能分析”面板中,可以查看检查失败的百分比以及往返时间的每个测试结果。 可以通过选择面板顶部的下拉列表来调整所显示数据的时间范围。

    Screenshot of performance analysis panel.

  3. 关闭“性能分析”面板将显示连接监视器在所选源终结点和目标终结点之间的检测到的网络拓扑。 此视图显示源终结点和目标终结点之间的双向流量路径。 在数据包到达 Microsoft 边缘网络之前,还可以查看数据包的逐跃延迟。

    Screenshot of network topology in connection monitor.

    选择拓扑视图中的任何跃点将显示有关该跃点的其他信息。 连接监视器检测到的有关跃点的任何问题会在此处显示。

    Screenshot of more information for a network hop.

后续步骤

了解有关如何监视 Azure ExpressRoute 的详细信息