跳转至

BPF 网络日志

BPF 网络,即 Berkeley Packet Filter (BPF) 技术,是一种在操作系统内核层面上运行的网络数据包过滤技术。它能够帮助我们捕获和筛选经过网络的数据包,以此来提升网络效率,进行安全检查等。BPF 规则是一种定义过滤条件的特殊语言,可以指定多种过滤标准,比如数据包的源 IP、目标 IP、使用的协议类型或者端口号等。简单来说,BPF 就像是一个高级的网络筛子,能够根据我们设定的规则,筛选出我们想要的网络数据包。

作为一种先进的 Linux 网络数据包处理技术,观测云利用 BPF 技术收集和展示网络流量数据,并进行可视化展示,帮助您深入理解网络行为并进行问题诊断。

模块划分

  • 四层 BPF 网络日志bpf_net_l4_log):四层即传输层,主要负责端到端的数据传输。此模块记录了基于传输层协议(如 TCP、UDP)的网络流量信息;
  • 七层 BPF 网络日志bpf_net_l7_log):七层即应用层,涉及到具体的应用协议,如 HTTP、FTP 等。此模块记录了基于应用层协议的网络流量信息。

四层 BPF 网络日志

在日志查看器筛选出 source:bpf_net_l4_log 的数据,进入详情页:

  • 报文内容:查看每条网络流的详细报文内容,直观展示不同时间点和数据包流向
  • 数据包交互:分析客户端与服务端之间的数据包交换。
  • 时间差:记录数据包传输的时间差异。

网络详情

基于网络传输方向,判断客户端与服务端进行展示:

  • outgoing:源地址(src_ip)为客户端,目的地址(dst_ip)为服务端。
  • incoming:源地址(src_ip)为服务端,目的地址(dst_ip)为客户端。
  • unknown:源地址(src_ip)标记为 Local,目的地址(dst_ip)标记为 Remote。

四七层网络关联分析

当报文关联到七层网络时,显示 HTTP 方法(http_method)和路径(http_path)。

若某条数据包内包含 L7 网络日志数据,可直接点击打开新页面查看七层网络的详细日志。

右上角搜索框内,支持对针对 seq 搜索数据包,快速定位。

七层 BPF 网络日志

展示所有网络流的列表,并能够查看每条网络流的详细信息。在日志查看器筛选出 source:bpf_net_l7_log 的数据,进入详情页:

网络请求拓扑

展示网络请求路径、物理主机和虚拟主机之间的请求过程和耗时。观测云会为您展示节点间的流向,帮助理解网络通信的复杂性。

  • 虚拟网卡:为您展示 pod_namenic_namedst_portsrc_portk8s_namespacek8s_container_namehost 等相关信息。
  • 物理网卡:为您展示 hostnic_namedst_portsrc_portl4_protol7_proto 等相关信息。

若存在外部未知网络情况,则显示 N/A。

  • hover 在网卡节点的端口上,即可显示 ip:port
  • 若需查看网络数据详情,hover 在网卡节点上,点击右上角 按钮即可跳转至对应页面。

关联网络日志

观测云基于单连接请求、跨网卡请求和传输层请求三个维度展示相关的日志数据。

  • 单连接请求:客户端与服务器之间通过单个网络连接进行的请求和响应。
  • 跨网卡请求:跨越不同网卡进行的请求。例如,在虚拟化环境中,请求可能从虚拟机的一个虚拟网卡发起,然后通过宿主机的物理网卡发送到另一个虚拟机或外部服务器。
  • 传输层请求:指的是传输层网络日志,如 TCP 或 UDP 协议中进行的请求。

  • 点击右侧 可修改网络日志显示列:

网络问题排查示例

当发生网络问题时,可以按照以下步骤进行 BPF 网络故障排查:

  1. 确认问题现象:记录下网络问题的表现,如连接超时、数据包丢失等。
  2. 查看四层日志:通过 bpf_net_l4_log 查看相关网络流的基本信息,确认传输方向和数据包的基本信息。
  3. 深入七层日志:如果问题可能涉及应用层,通过 bpf_net_l7_log 查看应用层的详细交互。
  4. 分析网络拓扑:利用网络请求拓扑功能,检查虚拟网卡和物理网卡之间的调用关系和耗时,确认是否存在网络延迟或中断。
  5. 关联分析:通过四七层关联分析,查看是否有特定的应用层协议导致的问题。
  6. 日志关联:查看与问题网络流相关的所有日志,寻找潜在的问题线索。

通过上述步骤,可以有效地利用 BPF 网络可视化对网络问题进行排查和分析,从而快速定位并解决问题。

文档评价

文档内容是否对您有帮助? ×