bcc的简单学习
安装
# 安装部分依赖项目
yum install cmake llvm -y
dnf install -y bison cmake ethtool flex git iperf3 libstdc++-devel python3-netaddr python3-pip gcc gcc-c++ make zlib-devel elfutils-libelf-devel
dnf install -y clang clang-devel llvm llvm-devel llvm-static ncurses-devel
dnf -y install netperf
pip3 install pyroute2
# 源码编译安装
cd /
git clone https://github.com/iovisor/bcc.git
mkdir bcc-build
cd bcc-build/
## here llvm should always link shared library
cmake /bcc -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_LLVM_SHARED=1
make -j10
make install
# 问题排错
需要注意 如果先安装了 bpftrace 的话会报错如下:
会报错为:
Traceback (most recent call last):
File "./tcplife", line 26, in <module>
from bcc import BPF
File "/usr/lib/python3.6/site-packages/bcc/__init__.py", line 27, in <module>
from .libbcc import lib, bcc_symbol, bcc_symbol_option, bcc_stacktrace_build_id, _SYM_CB_TYPE
File "/usr/lib/python3.6/site-packages/bcc/libbcc.py", line 20, in <module>
lib.bpf_module_create_b.restype = ct.c_void_p
File "/usr/lib64/python3.6/ctypes/__init__.py", line 356, in __getattr__
func = self.__getitem__(name)
File "/usr/lib64/python3.6/ctypes/__init__.py", line 361, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /lib64/libbcc.so.0: undefined symbol: bpf_module_create_b
需要先删除这个包 ,然后手工进行安装
yum remove bpftrace
工具的简单学习
工具目录的位置:
/usr//share/bcc/tools
举例一个简单的的tcplife
可以使用
./tcplife -stT -w
查看tcp的连接
./tcpretrans
查看tcp重传的部分.