File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 44
55### 1.1 背景
66
7- 在一些场景下(特别是云原生场景),Linux系统中的网络部署变得越来越复杂。一个TCP连接,从客户端到服务端,中间可能要经过复杂的` NAT ` 、` GRE ` 、IPVS` 等 ` 过程 ,网络报文在节点(主机)上的处理路径也变得越来越长。在发生网络故障(比如网络丢包)时,如何快速、有效地定位出网络问题成为了一个难题。目前常规的网络故障定位手段,如` tcpdump ` 、` dropwatch ` 、` ftrace ` 、` kprobe ` 等存在一定的短板:
7+ 在一些场景下(特别是云原生场景),Linux系统中的网络部署变得越来越复杂。一个TCP连接,从客户端到服务端,中间可能要经过复杂的` NAT ` 、` GRE ` 、` IPVS ` 等过程 ,网络报文在节点(主机)上的处理路径也变得越来越长。在发生网络故障(比如网络丢包)时,如何快速、有效地定位出网络问题成为了一个难题。目前常规的网络故障定位手段,如` tcpdump ` 、` dropwatch ` 、` ftrace ` 、` kprobe ` 等存在一定的短板:
88
99- ` tcpdump ` :只能在链路层抓包,无法定位内核协议栈中的问题,比如常规的内核丢包问题
1010- ` ftrace ` :只能跟踪内核函数,无法进行报文过滤,且入手较难,需要对内核协议栈有一定了解
@@ -29,7 +29,7 @@ nettrace是采用C语言编写的基于eBPF(libbpf)的命令行工具,在
2929
3030### 2.1 RPM/DEB安装
3131
32- 对于支持BTF特性(内核版本 >= 5.3,并且配置了` CONFIG_DEBUG_INFO_BTF=y ` 内核配置项)的内核,可以直接下载[ releases] ( https://github.com/OpenCloudOS/nettrace/releases ) 中编译好的` nettrace-xxx-1.btf.x86_64.rpm ` 、` nettrace-xxx-1.btf.x86_64.deb ` 安装包进行安装使用;对于不支持BTF的低版本的内核,需要在对应的系统上手动编译后才能使用。对于TencentOS系统 ,可以直接使用yum命令来进行在线安装:
32+ 对于支持BTF特性(内核版本 >= 5.3,并且配置了` CONFIG_DEBUG_INFO_BTF=y ` 内核配置项)的内核,可以直接下载[ releases] ( https://github.com/OpenCloudOS/nettrace/releases ) 中编译好的` nettrace-xxx-1.btf.x86_64.rpm ` 、` nettrace-xxx-1.btf.x86_64.deb ` 安装包进行安装使用;对于不支持BTF的低版本的内核,需要在对应的系统上手动编译后才能使用。对于OpenCloudOS/TencentOS系统 ,可以直接使用yum命令来进行在线安装:
3333
3434``` shell
3535sudo yum install nettrace
@@ -50,7 +50,7 @@ sudo yum install nettrace
5050本工具在编译的时候依赖于` libelf ` 、` libbpf ` 和` bpftool ` 组件,` clang ` 和` gcc ` 编译工具。对于不支持BTF的内核,还需要安装` kernel-headers ` 头文件,可以通过查看目录` /lib/modules/$(uname -a)/build ` 是否存在来判断` headers ` 是否已经被安装了。
5151
5252** 注意事项** :
53- 1 . 请确保libbpf-dev的版本在 ` 1.0.0 ` 以上, 如果当前发行版的libbpf库版本达不到要求,可以手动进行libbpf的编译安装:
53+ 1 . 请尽量使用较高版本的libbpf(v0.2以上版本)。 如果当前发行版的libbpf库版本达不到要求,可以手动进行libbpf的编译安装:
5454
5555 ``` shell
5656 wget https://github.com/libbpf/libbpf/archive/refs/tags/v1.1.0.tar.gz
@@ -69,9 +69,9 @@ sudo yum install nettrace
6969sudo apt install libelf-dev libbpf-dev linux-headers-` uname -r` clang llvm gcc linux-tools-` uname -r` linux-tools-generic -y
7070` ` `
7171
72- # #### centos
72+ # #### opencloudos/tencentos/ centos
7373
74- 对于centos用于 ,使用以下命令来安装依赖:
74+ 对于opencloudos/tencentos/centos用户 ,使用以下命令来安装依赖:
7575
7676` ` ` shell
7777sudo yum install elfutils-devel elfutils-devel-static libbpf-devel libbpf-static kernel-headers kernel-devel clang llvm bpftool -y
You can’t perform that action at this time.
0 commit comments