

# Network Flow Monitor 的组件和功能
<a name="CloudWatch-NetworkFlowMonitor-components"></a>

Network Flow Monitor 使用或引用了以下概念。

**座席**  
网络流量监测仪中的*代理*为一款软件应用程序，需安装在您的 AWS 计算资源（Amazon EC2、Amazon EKS）上。该应用程序具有两个部分：  
+ 第一部分接收与 TCP 连接相关的事件，并使用 eBPF 在 Linux 内核中注册。eBPF 是 Linux 扩展 Berkley 数据包过滤器（eBPF）功能，指定程序可以通过其接收 Linux 内核引发的某些事件。
+ 第二部分汇总了 eBPF 部分收集的统计数据。代理大约每 30 秒向 Network Flow Monitor 后端发送一次聚合指标，可能有 5 秒钟的抖动（换言之，为 25 到 35 秒）。
有关代理的更多信息，请参阅[工作原理](CloudWatch-NetworkFlowMonitor-inside-network-flow-monitor.md)。

**排名靠前的贡献者**  
*排名靠前的贡献者*指在 Network Flow Monitor 范围内或在监测仪中跟踪的网络流中，特定指标（例如重新传输）值最高的网络流。查看具有最高报告数量的流，以进行绩效指标衡量，此举可以帮助您了解可能存在哪些需要调查的损坏。Network Flow Monitor 将返回监控范围内排名靠前的贡献者的性能指标，以获取*工作负载见解*。此外，如果您创建监测仪，则 Network Flow Monitor 会针对监测仪所选的网络流，返回排名靠前的贡献者的性能指标。

**本地和远程资源**  
*本地资源*指安装了网络流量监测仪代理的主机所在位置，也可以是多台主机的所在位置。该代理的部署范围可覆盖子网、VPC、可用区、Amazon EKS 集群或 AWS 区域。例如，假设某个工作负载由前端 Web 服务与后端数据库（以 DynamoDB 为例）之间的交互构成。在这种情况下，本地资源是托管 Web 服务的 EC2 实例所在的子网，并且该实例上还运行着代理。网络流通常具有方向性（默认为单向），不过也可将其配置为双向。  
*远程资源*是网络流的另一端。在此带有后端数据库的 Web 服务示例中，DynamoDB 属于远程资源。远程资源可以是子网、VPC、可用区、AWS 服务或 AWS 区域。如果将某个区域指定为远程资源，则网络流量监测仪会测量流向该区域边缘的网络流的性能。其不会测量区域内特定端点的性能。  
资源通过资源的 ARN、AWS 服务名称进行标识。如果资源为可用区或区域，则通过该可用区或区域的名称进行标识。

**工作负载见解**  
*工作负载见解*包括范围内的所有网络流返回的性能指标。在 AWS 管理控制台中，**工作负载见解**页面提供了有关已在工作负载实例上安装了 Network Flow Monitor 代理的工作负载的性能数据。**工作负载见解**页面提供应用程序视图，其中包括已传输的数据量和其他多个指标，按工作负载类别分组。例如，您可以查看可用区（AZ）之间或可用区内工作负载和流量的所有指标。通过使用这些见解，您可以选择要为其创建监测仪的工作负载，以查看更多详细信息并持续跟踪网络性能。

**监控**  
您可以创建*监测仪*，以便持续监控一个或多个特定工作负载的网络性能，并查看有关网络流的更多详细信息。对于每台监测仪，Network Flow Monitor 都会发布端到端性能指标和网络运行状况指标（NHI），以便帮助您确定损坏的归因。我们建议您查看**工作负载**页面上的信息，了解要重点关注哪些网络流，然后为这些流量创建监测仪。然后，通过定期查看**工作负载见解**，您可以决定是否拥有所需的监测仪，或者决定创建新监测仪是否会有所帮助。

**网络运行状况指标（HNI）**  
*网络运行状况指标*（HNI）是二进制值，用于告知您在选择的时间段内，监测仪跟踪的一个或多个网络流是否存在 AWS 网络问题。当 NHI 值为 1 或显示**已降级**时，则表明至少一个网络流存在 AWS 网络问题。使用 NHI 指标，您可以快速决定是否应关注 AWS 网络问题的故障排除工作还是关注工作负载引起的网络问题。  
有关更多信息，请参阅 [在 CloudWatch 中查看 Network Flow Monitor 指标](CloudWatch-NetworkFlowMonitor-cw-metrics.md)。

**范围**  
在网络流量监测仪中，*范围*指的是查看网络性能指标时可观测到的一个或多个账户。若以管理账户身份登录并通过 CloudWatch 配置 AWS Organizations，则可将范围设置为组织中的多个账户（最多 100 个账户）。否则，若使用在组织中没有管理权限的 AWS 账户登录，或者尚未为组织配置 CloudWatch，则网络流量监测仪会将范围设置为登录时所使用的账户。  
完成 Organizations 配置后，即可通过添加或移除账户调整监控范围。但每次调整监控范围时，网络流量监测仪都必须重新生成该范围内的资源拓扑结构。有关更多信息，请参阅 [将多个账户添加到范围](CloudWatch-NetworkFlowMonitor-multi-account.md#CloudWatch-NetworkFlowMonitor-multi-account.config-scope)。  
Network Flow Monitor 为该范围生成唯一的**范围 ID**。指标数据的查询使用范围 ID 来确定 Network Flow Monitor 为其生成指标的资源。（必须先安装代理来收集和提交指标数据，然后才能使用 Network Flow Monitor 查看账户的性能指标。）

**查询 ID**  
Network Flow Monitor 会为每个查询（这些查询的创建目的为检索性能指标数据）生成唯一的*查询 ID*，例如用于了解监测仪排名靠前的贡献者的查询。通过在 Network Flow Monitor 中将查询 ID 与 API 调用配合使用，您可以检查查询的状态、停止查询、重新运行查询或以其他方式处理查询。

**性能指标**  
Network Flow Monitor 收集和计算端到端*性能指标*，包括 TCP 往返时间（RTT）、TCP 重新传输、TCP 重新传输超时以及 Network Flow Monitor 范围内各流量的已传输字节。该服务将汇总这些指标并将其返回到服务后端。您可以按指标类型查看排名靠前的贡献者。当您发现 Network Flow Monitor 中存在异常时，也可以检查网络运行状况指标（NHI），确定是否存在 AWS 底层网络问题。  
请注意，RTT 数据可能很稀疏，因为并不总是计算 RTT。  
您还可以根据这些指标使用 Amazon CloudWatch 功能，创建控制面板、警报和通知。例如，您可以通过查看 [使用 Network Flow Monitor 创建警报](CloudWatch-NetworkFlowMonitor-create-alarm.md) 中的信息来了解如何使用 Network Flow Monitor 指标设置警报。