閱讀英文

共用方式為

流量分析常见问题解答 (FAQ)

本文提供了有关 Azure 网络观察程序的流量分析功能的常见问题的解答。

如何检查我是否拥有所需的角色?

若要了解如何检查分配给用户用于订阅的角色,请参阅使用 Azure 门户列出 Azure 角色分配。 如果看不到角色分配,请联系相应的订阅管理员。

是否可以为与工作区区域位于不同区域的网络安全组启用流日志?

是的,网络安全组可与 Log Analytics 工作区位于不同区域。

是否可以在单个工作区中配置多个网络安全组?

可以。

是否支持经典网络安全组?

否,流量分析不支持经典网络安全组。

为什么流量分析不显示已启用流量分析的网络安全组的数据?

在“流量分析”仪表板的资源选择下拉列表中,必须选择“虚拟网络”资源的资源组,而不是虚拟机或网络安全组的资源组。

是否可以使用现有的的工作区?

可以。 如果选择现有工作区,请确保它已迁移到新的查询语言。 如果不想要升级该工作区,则需要创建新的工作区。 有关 Kusto 查询语言 (KQL) 的详细信息,请参阅 Azure Monitor 中的日志查询

是否可将 Azure 存储帐户放在一个订阅中,并将 Log Analytics 工作区放在另一个订阅中?

是,可将 Azure 存储帐户置于一个订阅中,并将 Log Analytics 工作区置于另一个订阅中。

我可以将原始日志存储在一个与用于网络安全组或虚拟网络的订阅不同的订阅中吗?

可以。 可以将流日志配置为发送到一个位于其他订阅中的存储帐户,前提是你有适当的权限,并且该存储帐户与网络安全组(网络安全组流日志)或虚拟网络(虚拟网络流日志)位于同一区域。 目标存储帐户必须共享网络安全组或虚拟网络的同一 Microsoft Entra 租户。

流日志资源和存储帐户是否可以位于不同的租户中?

否。 包括网络安全组(网络安全组流日志)、虚拟网络(虚拟网络流日志)、流日志、存储帐户和 Log Analytics 工作区(如果启用了流量分析)在内的所有资源必须位于同一租户中。

我可以为存储帐户配置与 Log Analytics 工作区不同的保留策略吗?

可以。

如果删除用于流日志记录的存储帐户,是否会丢失 Log Analytics 工作区中存储的数据?

否。 如果删除用于流日志的存储帐户,Log Analytics 工作区中存储的数据不会受到影响。 你仍然可以在 Log Analytics 工作区中查看历史数据(某些指标将受到影响),但在更新流日志以使用其他存储帐户之前,流量分析将不再处理任何新的流日志。

如果由于“未找到”错误而无法为流量分析配置网络安全组,该如何解决?

选择支持的区域。 如果选择不支持的区域,则会收到“未找到”错误。 有关详细信息,请参阅流量分析支持的区域

如果在流日志页中显示“无法加载”状态,该怎么办?

要使流日志记录正常工作,必须注册 Microsoft.Insights 提供程序。 如果不确定是否 Microsoft.Insights 为订阅注册了提供程序,请参阅有关如何注册该订阅的管理 NSG 流日志 说明。

我已配置解决方案。 为何仪表板上未显示任何信息?

仪表板首次显示报告最长可能需要花费 30 分钟。 解决方案必须先聚合足够的数据才能派生有意义的见解,然后才能生成报告。

如果收到此消息:“在所选时间间隔内找不到此工作区中的任何数据,该怎么办。 尝试更改时间间隔,或者选择其他工作区”,该如何解决?

请尝试以下选项:

  • 在上部菜单栏中更改时间间隔。
  • 在上部菜单栏中选择不同的 Log Analytics 工作区。
  • 如果流量分析是最近才启用的,请尝试在 30 分钟后访问它。

如果问题仍未解决,请在 Azure 支持中咨询。

如果收到以下消息:“正在首次分析 NSG 流日志。 此过程可能需要 20-30 分钟才能完成。 过一段时间再回来查看。”?

出现此消息的可能原因有:

  • 流量分析最近才启用,可能尚未聚合足够的数据,无法获得有意义的见解。
  • 你正在使用免费版 Log Analytics 工作区,它超出了配额限制。 可能需要使用容量更大的工作区。

尝试上一问题的建议解决方案。 如果问题仍未解决,请在 Azure 支持中咨询。

如果收到以下消息:“似乎我们已获得资源数据(拓扑),但没有流信息。 有关详细信息,请单击此处查看资源数据,并参阅常见问题解答。”,应如何处理?

仪表板上显示了资源信息,但未显示与流相关的统计信息。 由于资源之间没有通信流,因此可能不显示数据。 请在 60 分钟后重新检查状态。 如果问题仍未解决,而你确信资源之间存在通信流,请在 Azure 支持中咨询。

流量分析如何计费?

流量分析计量。 计量基于服务对原始流日志数据的处理。 有关详细信息,请参阅网络观察程序定价
Log Analytics 工作区中引入的增强型日志最多可免费保留 31 天(如果工作区上启用了 Microsoft Sentinel,则最多可以保留 90 天)。 有关详细信息,请参阅 Azure Monitor 定价

流量分析多久处理一次数据?

流量分析的默认处理间隔为 60 分钟,但可以选择以 10 分钟的间隔加速处理。 有关详细信息,请参阅流量分析中的数据聚合

使用我的工作区创建的其他资源有哪些?

流量分析在与工作区相同的资源组中创建和管理数据收集规则(DCR)和数据收集终结点(DCE)资源,其前缀为 NWTA前缀。 如果对这些资源执行任何操作,流量分析可能无法按预期运行。 有关详细信息,请参阅流量分析中的数据聚合。 有关详细信息,请参阅 Azure Monitor 中的数据收集规则,以及 Azure Monitor 中的数据收集终结点

流量分析如何确定 IP 是恶意 IP?

流量分析依靠 Microsoft 内部威胁智能系统来确定某个 IP 是否为恶意 IP。 这些系统使用各种遥测源,如 Azure 产品和服务、Microsoft数字犯罪部门(DCU)、Microsoft安全响应中心(MSRC)和外部源,并在其之上构建智能。 其中一些数据是 Microsoft 内部数据。 如果已知 IP 被标记为恶意 IP,请提出支持票证以了解详细信息。

如何针对流量分析数据设置警报?

流量分析没有对警报的内置支持。 但是,由于流量分析数据存储在 Log Analytics 中,因此可以编写自定义查询并对其设置警报。 请执行以下步骤:

  • 可以在流量分析中使用 Log Analytics 链接。
  • 使用流量分析架构编写查询。
  • 选择“新建警报规则”来创建警报。
  • 请参阅“新建警报规则”来创建警报。

如何检查哪些虚拟机接收的本地流量最多?

使用以下查询:

AzureNetworkAnalytics_CL
| where SubType_s == "FlowLog" and FlowType_s == "S2S" 
| where <Scoping condition>
| mvexpand vm = pack_array(VM1_s, VM2_s) to typeof(string)
| where isnotempty(vm) 
| extend traffic = AllowedInFlows_d + DeniedInFlows_d + AllowedOutFlows_d + DeniedOutFlows_d // For bytes use: | extend traffic = InboundBytes_d + OutboundBytes_d 
| make-series TotalTraffic = sum(traffic) default = 0 on FlowStartTime_t from datetime(<time>) to datetime(<time>) step 1 m by vm
| render timechart

对于 IP,请使用以下查询:

AzureNetworkAnalytics_CL
| where SubType_s == "FlowLog" and FlowType_s == "S2S" 
//| where <Scoping condition>
| mvexpand IP = pack_array(SrcIP_s, DestIP_s) to typeof(string)
| where isnotempty(IP) 
| extend traffic = AllowedInFlows_d + DeniedInFlows_d + AllowedOutFlows_d + DeniedOutFlows_d // For bytes use: | extend traffic = InboundBytes_d + OutboundBytes_d 
| make-series TotalTraffic = sum(traffic) default = 0 on FlowStartTime_t from datetime(<time>) to datetime(<time>) step 1 m by IP
| render timechart

对于时间,请使用格式:yyyy-mm-dd 00:00:00

如何查看虚拟机从本地计算机接收的流量的标准偏差?

使用以下查询:

AzureNetworkAnalytics_CL
| where SubType_s == "FlowLog" and FlowType_s == "S2S" 
//| where <Scoping condition>
| mvexpand vm = pack_array(VM1_s, VM2_s) to typeof(string)
| where isnotempty(vm) 
| extend traffic = AllowedInFlows_d + DeniedInFlows_d + AllowedOutFlows_d + DeniedOutFlows_d // For bytes use: | extend traffic = InboundBytes_d + utboundBytes_d
| summarize deviation = stdev(traffic) by vm

对于 IP:

AzureNetworkAnalytics_CL
| where SubType_s == "FlowLog" and FlowType_s == "S2S" 
//| where <Scoping condition>
| mvexpand IP = pack_array(SrcIP_s, DestIP_s) to typeof(string)
| where isnotempty(IP) 
| extend traffic = AllowedInFlows_d + DeniedInFlows_d + AllowedOutFlows_d + DeniedOutFlows_d // For bytes use: | extend traffic = InboundBytes_d + OutboundBytes_d
| summarize deviation = stdev(traffic) by IP

如何使用 NSG 规则检查 IP 对之间哪些端口可以访问(或被阻止)?

使用以下查询:

AzureNetworkAnalytics_CL
| where SubType_s == "FlowLog" and TimeGenerated between (startTime .. endTime)
| extend sourceIPs = iif(isempty(SrcIP_s), split(SrcPublicIPs_s," "), pack_array(SrcIP_s)),
destIPs = iif(isempty(DestIP_s), split(DestPublicIPs_s," "), pack_array(DestIP_s))
| mvexpand SourceIp = sourceIPs to typeof(string)
| mvexpand DestIp = destIPs to typeof(string)
| project SourceIp = tostring(split(SourceIp, "|")[0]), DestIp = tostring(split(DestIp, "|")[0]), NSGList_s, NSGRule_s, DestPort_d, L4Protocol_s, FlowStatus_s 
| summarize DestPorts= makeset(DestPort_d) by SourceIp, DestIp, NSGList_s, NSGRule_s, L4Protocol_s, FlowStatus_s