第 7 章 观察网络流量
作为管理员,您可以观察 OpenShift Container Platform 控制台中的网络流量,以了解故障排除和分析的详细故障排除和分析。此功能帮助您从不同的流量流的图形表示获得见解。观察网络流量有几种可用的视图。
7.1. 从 Overview 视图观察网络流量
Overview 视图显示集群中网络流量流的整体聚合指标。作为管理员,您可以使用可用的显示选项监控统计信息。
7.1.1. 使用 Overview 视图
作为管理员,您可以进入到 Overview 视图来查看流速率统计的图形表示。
流程
-
进入到 Observe
Network Traffic。 - 在 Network Traffic 页面中,点 Overview 选项卡。
您可以通过点菜单图标来配置每个流速率数据的范围。
7.1.2. 为 Overview 视图配置高级选项
您可以使用高级选项自定义图形视图。要访问高级选项,点 Show advanced options。您可以使用 Display options 下拉菜单在图形中配置详情。可用的选项如下:
- Scope :选择查看网络流量流在其中进行的组件。您可以将范围设置为 Node,Namespace,Owner,Zones,Cluster 或 Resource。Owner 是一个资源聚合。Resource 可以是一个 pod、服务、节点(主机网络流量),或未知 IP 地址。默认值为 Namespace。
- Truncate labels:从下拉列表中选择标签所需的宽度。默认值为 M。
7.1.2.1. 管理面板和显示
您可以选择显示所需的面板,对它们进行重新排序,并专注于特定的面板。要添加或删除面板,请点 Manage panels。
默认情况下会显示以下面板:
- 顶级 X 平均字节率
- 顶级 X 字节率堆栈总计
在 Manage panels 中可以添加其他面板:
- 顶级 X 平均数据包率
- 顶级 X 数据包速率堆栈总计
通过 查询选项,您可以选择是否显示 Top 5、Top 10 或 Top 15 率。
7.1.3. 数据包丢弃跟踪
您可以在 Overview 视图中使用数据包丢失来配置网络流记录的图形表示。通过使用 eBPF 追踪点 hook,您可以获得对 TCP、UDP、SCTP、ICMPv4 和 ICMPv6 协议的数据包丢弃的宝贵见解,这可能会导致以下操作:
- 身份识别:指定发生数据包丢弃的确切位置和网络路径。确定特定设备、接口或路由是否更易于丢弃。
- 根本原因分析:检查 eBPF 程序收集的数据,以了解数据包丢弃的原因。例如,它们是拥塞、缓冲区问题还是特定的网络事件的结果?
- 性能优化:通过数据包丢弃的清晰了解,您可以采取步骤来优化网络性能,如调整缓冲区大小、重新配置路由路径或实施服务质量(QoS)测量。
启用数据包丢弃跟踪后,您可以在 Overview 中默认看到以下面板:
- 顶级 X 数据包丢弃状态的堆栈为总计
- 顶级 X 数据包丢弃会导致堆栈总计
- 顶级 X 平均丢弃的数据包率
- 顶级 X 丢弃的数据包速率堆栈为总计
可以在管理面板中添加其他数据包丢弃面板 :
- 顶级 X 平均丢弃的字节率
- 顶级 X 丢弃的字节速率堆栈为总计
7.1.3.1. 数据包丢弃的类型
Network Observability 检测到两种类型的数据包丢弃:host drops 和 OVS drops。主机丢弃的带有 SKB_DROP
前缀,OVS drops 带有 OVS_DROP
前缀。丢弃流在 流量流 表的侧面面板中显示,以及指向每个丢弃类型的描述的链接。主机丢弃原因示例如下:
-
SKB_DROP_REASON_NO_SOCKET
:由于缺少套接字而丢弃数据包。 -
SKB_DROP_REASON_TCP_CSUM
:由于 TCP checksum 错误而丢弃的数据包。
OVS 丢弃原因示例如下:
-
OVS_DROP_LAST_ACTION
:OVS 数据包因为隐式丢弃操作而丢弃,例如因为配置了网络策略。 -
OVS_DROP_IP_TTL
:由于 IP TTL 已过期的 OVS 数据包丢弃。
有关启用和使用数据包丢弃跟踪的更多信息,请参阅本节的附加资源。
7.1.4. DNS 跟踪
您可以在 Overview 视图中配置对网络流的域名系统(DNS)跟踪的图形表示。使用带有扩展 Berkeley Packet Filter (eBPF)追踪点 hook 的 DNS 跟踪可以满足各种目的:
- 网络监控 :深入了解 DNS 查询和响应,帮助网络管理员识别异常模式、潜在瓶颈或性能问题。
- 安全分析:拒绝 DNS 活动,如恶意软件使用的域名生成算法(DGA),或者识别可能指示安全漏洞的未授权 DNS 解析。
- 故障排除:通过追踪 DNS 解析步骤、跟踪延迟和识别错误配置来调试与 DNS 相关的问题。
默认情况下,当启用 DNS 跟踪时,您可以在 Overview 中的 donut 或 line chart 中看到以下非空指标:
- 顶级 X DNS 响应代码
- 顶级 X 平均 DNS 延迟数
- 顶部 X 90th percentile DNS 延迟
可以在管理面板中添加其他 DNS 跟踪面板:
- 底部 X 最小 DNS 延迟
- 顶级 X 最大 DNS 延迟
- 顶级 X 99th percentile DNS latencies
IPv4 和 IPv6 UDP 和 TCP 协议支持此功能。
有关启用和使用此视图的更多信息,请参阅本节中的 附加资源。
7.1.5. 往返时间 (RTT)
您可以使用 TCP smoothed Round-Trip Time (sRTT) 来分析网络流延迟。您可以使用在 fentry/tcp_rcv_ established
eBPF hookpoint 捕获的 RTT 来读取来自 TCP 套接字的 sRTT 来帮助实现:
- 网络监控:深入了解 TCP 延迟,帮助网络管理员识别异常模式、潜在瓶颈或性能问题。
- 故障排除:通过跟踪延迟和识别错误配置来调试与 TCP 相关的问题。
默认情况下,当启用 RTT 时,您可以看到 Overview 中代表的以下 TCP RTT 指标:
- 总的 Top X 90th percentile TCP Round Trip Time
- 总的 Top X average TCP Round Trip Time
- 总的 Bottom X minimum TCP Round Trip Time
可以在管理面板中添加其他 RTT 面板:
- 总的 Top X maximum TCP Round Trip Time
- 总的 Top X 99th percentile TCP Round Trip Time
有关启用和使用此视图的更多信息,请参阅本节中的 附加资源。
其他资源
7.1.6. eBPF 流规则过滤
您可以使用基于规则的过滤来控制缓存在 eBPF 流表中的数据包的数量。例如,可以指定一个过滤,只记录来自端口 100 的数据包。然后,只有与过滤匹配的数据包才会被缓存,不会缓存其他数据包。
7.1.6.1. 入口和出口流量过滤
CIDR 表示法通过将基本 IP 地址与前缀长度相结合来有效地表示 IP 地址范围。对于入口和出口流量,首先使用源 IP 地址来匹配使用 CIDR 表示法配置的过滤规则。如果存在匹配项,则过滤将继续。如果没有匹配项,则使用目标 IP 匹配使用 CIDR 表示法配置的过滤规则。
在匹配源 IP 或目标 IP CIDR 后,您可以使用 peerIP
找出特定的端点以区分数据包的目标 IP 地址。根据置备的操作,流数据会在 eBPF 流表中缓存,或者不缓存。
7.1.6.2. 仪表板和指标集成
启用这个选项后,eBPF 代理统计的 Netobserv/Health 仪表板会提供一个过滤的流速率视图。另外,在 Observe netobserv_agent_filtered_flows_total
来观察 FlowFilterAcceptCounter,FlowFilterNoMatchCounter 或 FlowFilterRecjectCounter 的原因。
7.1.6.3. 流过滤配置参数
流过滤规则包括了必须的和可选的参数。
参数 | 描述 |
---|---|
|
将 |
|
为流过滤规则提供 IP 地址和 CIDR 掩码。支持 IPv4 和 IPv6 地址格式。如果要与任何 IP 匹配,可以使用 |
|
描述为流过滤规则执行的操作。可能的值为
|
参数 | 描述 |
---|---|
|
定义流过滤规则的方向。可能的值为 |
|
定义流过滤规则的协议。可能的值有 |
|
定义用于过滤流的 TCP 标志。可能的值包括 |
|
定义用于过滤流的端口。它可用于源或目标端口。要过滤一个单一端口,使用一个整数值。例如 |
|
定义用于过滤流的源端口。要过滤一个单一端口,使用一个整数值。例如 |
|
DestPorts 定义用于过滤流的目标端口。要过滤一个单一端口,使用一个整数值。例如 |
| 定义用于过滤流的 ICMP 类型。 |
| 定义用于过滤流的 ICMP 代码。 |
|
定义用于过滤流的 IP 地址,例如: |