练习 - 使用网络观察程序指标和日志排查网络问题

已完成

在 Azure 网络观察程序中,可使用指标和日志诊断复杂的配置问题。

假设你有两个无法通信的虚拟机 (VM)。 你希望获得尽可能多的信息来诊断问题。

在本单元中,使用网络观察程序指标和日志进行故障排除。 若要诊断两个 VM 之间的连接问题,则需使用网络安全组 (NSG) 流日志。

注册 Microsoft.Insights 提供程序

NSG 流日志记录要求使用 Microsoft.Insights 提供程序。 若要注册 Microsoft.Insights 提供程序,请完成以下步骤。

  1. 登录 Azure 门户,再登录到可访问你在其中创建资源的订阅的目录。

  2. 在 Azure 门户中,搜索并选择“订阅”,然后选择你的订阅。 此时将显示“订阅”窗格

  3. 在“订阅”菜单中的“设置”下,选择“资源提供程序”。 此时,订阅的“资源提供程序”窗格显示。

  4. 在筛选栏中,输入 microsoft.insights

  5. 如果 microsoft.insights 提供程序的状态为“未注册”,则在命令栏中选择“注册”

    Screenshot showing the registered Microsoft.Insights provider.

创建存储帐户

现在,为 NSG 流日志创建一个存储帐户。

  1. 在 Azure 门户菜单上或在“主页”中,选择“创建资源”。

  2. 在资源菜单中,选择“存储”,然后搜索并选择“存储帐户”。 随即将显示“存储帐户”窗格

  3. 选择创建。 此时会显示“创建存储帐户”窗格

  4. 在“基本信息”选项卡上,为每个设置输入以下值。

    设置
    项目详细信息
    订阅 选择订阅
    资源组 选择你的资源组
    实例详细信息
    存储帐户名称 创建唯一名称
    区域 选择与你的资源组相同的区域
  5. 选择“下一步: 高级”选项卡,并确保设置了以下值。

    设置 “值”
    Blob 存储
    访问层 热(默认)
  6. 选择“查看 + 创建”,然后在验证通过后选择“创建”。

创建 Log Analytics 工作区

若要查看 NSG 流日志,需要使用 Log Analytics。

  1. 在 Azure 门户菜单或主页中,搜索并选择“Log Analytics 工作区”。 此时会显示“Log Analytics 工作区”窗格。

  2. 在命令栏中,选择“创建”。 此时会显示“创建 Log Analytics 工作区”窗格。

  3. 在“基本信息”选项卡上,为每个设置输入以下值。

    设置
    项目详细信息
    订阅 选择订阅
    资源组 选择你的资源组
    实例详细信息
    名称 testsworkspace
    区域 选择与你的资源组相同的区域
  4. 选择“审阅并创建”,然后在通过验证后选择“创建”

启用流日志

要设置流日志,必须配置 NSG 使其与存储帐户连接,并为 NSG 添加流量分析。

  1. 在 Azure 门户菜单上,选择“所有资源”。 然后选择“MyNsg”网络安全组

  2. 在“MyNsg”菜单中的“监视”下,选择“NSG 流日志”。 此时,“MyNsg | NSG 流日志”窗格显示。

  3. 选择创建。 此时会显示“创建流日志”窗格

  4. 在“基本信息”选项卡上,选择或输入下列值

    设置
    项目详细信息
    订阅 从下拉列表中选择你的订阅。
    + 选择资源 在“选择网络安全组”窗格中,搜索并依次选择“MyNsg”和“确认选择”
    实例详细信息
    订阅 从下拉列表中选择你的订阅。
    存储帐户 选择唯一的存储帐户名称。
    保持期(天) 1
  5. 选择“下一步: 分析”,然后选择或输入以下值。

    设置
    流日志版本 第 2 版
    流量分析 勾选“启用流量分析”。
    流量分析处理间隔 每 10 分钟
    订阅 从下拉列表中选择你的订阅。
    Log Analytics 工作区 从下拉列表中选择 testworkspace
  6. 选择“查看 + 创建”。

  7. 选择“创建”。

  8. 部署完成后,选择转到资源

生成测试流量

现在,可在 VM 之间生成一些网络流量,以便在流日志中捕获这些流量。

  1. 在资源菜单上,选择“所有资源”,然后选择 FrontendVM

  2. 在命令栏中,依次选择“连接”、“RDP”和“下载 RDP 文件”。 如果随即显示有关远程连接发布程序的警告,选择“连接”

  3. 启动 FrontendVM.rdp 文件,然后选择“连接”

  4. 当系统要求输入凭据时,选择“更多选项”,然后使用用户名 azureuser 和创建 VM 时指定的密码登录

  5. 当系统要求提供安全证书时,选择“是”

  6. 在 RDP 会话中,如果出现提示,则仅允许在专用网络上发现设备。

  7. 打开 PowerShell 提示符,然后运行以下命令。

    Test-NetConnection 10.10.2.4 -port 80
    

几秒钟后,TCP 连接测试失败。

诊断问题

现在,使用日志分析来查看 NSG 流日志。

  1. Azure 门户资源菜单中,依次选择“所有服务”、“网络”和“网络观察程序”。 此时,“网络观察程序”窗格显示。

  2. 在资源菜单中的“日志”下,选择“流量分析”。 此时,“网络观察程序 | 流量分析”窗格显示。

  3. 在“FlowLog 订阅”下拉列表中,选择你的订阅

  4. 在“Log Analytics 工作区”下拉列表中,选择 testworkspace

  5. 使用不同的视图诊断阻止从前端 VM 到后端 VM 的通信的问题。

解决问题

有一条 NSG 规则阻止从任何位置通过端口 80、443 和 3389 流向后端子网的入站流量,而不只是阻止来自 Internet 的入站流量。 现在重新配置该规则。

  1. 在 Azure 门户资源菜单上,选择“所有资源”,然后选择列表中的“MyNsg”

  2. 在“MyNsg”菜单中的“设置”下,选择“入站安全规则”,然后选择“MyNSGRule”。 此时,“MyNSGRule”窗格显示。

  3. 在“源”下拉列表中,选择“服务标记”,然后在“源服务标记”下拉列表中,选择“Internet”

  4. 在 MyNSGRule 命令栏中,选择“保存”以更新安全规则

重新测试连接

端口 80 上的连接现在应可正常工作。

  1. 在 RDP 客户端中,连接到“FrontendVM”。 在 PowerShell 提示符处,运行以下命令。

    Test-NetConnection 10.10.2.4 -port 80
    

连接测试现在应会成功。