Deepflow environment 配置
Agent
Install Rust
1.curl https://sh.rustup.rs -sSf | sh
2.source $HOME/.cargo/env
Install Golang
1.wget https://golang.google.cn/dl/go1.19.5.linux-amd64.tar.gz
2.sudo tar -C /usr/local/ -xzf go1.19.5.linux-amd64.tar.gz
3.cd /usr/local/
4.echo $PATH
5.sudo nano $HOME/.profile
6.source .profile
Golang set Proxy(不然后面下载ibGoReSym下不下来)
- /etc/profile
- export GOPROXY=https://goproxy.cn
Install Protobuf-compiler(不然后面cargo b 涉及到proto的会报错)
dnf install -y protobuf-compiler
Install clang llvm
dnf install -y llvm11 gcc libpcap-devel glibc-static elfutils-libelf-devel make
dnf install -y clang clang-devel llvm llvm-devel llvm-static ncurses-devel
dnf install libpcap-devel libbpf-devel
bcc environment preparation
dnf install -y bison cmake ethtool flex git iperf libstdc++-static
python-netaddr python-pip gcc gcc-c++ make zlib-devel
elfutils-libelf-devel python-cachetools
sudo dnf install -y luajit luajit-devel # for Lua support
sudo dnf install -y
http://repo.iovisor.org/yum/extra/mageia/cauldron/x86_64/netperf-2.7.0-1.mga6.x86_64.rpm
sudo pip install pyroute2
Pull bcc
git clone https://github.com/iovisor/bcc.git #直接拉取是最新版本 mkdir bcc/build; cd bcc/build cmake -DENABLE_LLVM_SHARED=1 ..
这里会报错缺失一些文件:
– Could NOT find FFI (missing: FFI_LIBRARIES HAVE_FFI_CALL)
– Could NOT find LibDebuginfod (missing: LIBDEBUGINFOD_LIBRARIES LIBDEBUGINFOD_INCLUDE_DIRS)
’netperf’ not found ‘iperf’ or ‘iperf3’ not found
解决办法:
sudo dnf install -y netperf sudo dnf install -y iperf sudo dnf install xz-devel
编译
make sudo make install
Compile agent->cargo b(下面是各个错误的解决办法)
1. 致命错误:bcc/linux/bpf.h:没有那个文件或目录
解决办法:
去查询linux,和bcc的目录
whereis bcc # 会找到一个/usr/include/bcc的目录 whereis linux
将linux这个目录拷贝到bcc下
cp -r /usr/include/linux/ /usr/include/bcc
2. 致命错误:libdwarf-0/dwarf.h:没有那个文件或目录
解决办法:(以下步骤都可以加代理https://ghproxy.com/可以变的很快!)
wget https://github.com/davea42/libdwarf-code/releases/download/v0.4.1/libdwarf-0.4.1.tar.xz tar -xf libdwarf-0.4.1.tar.xz cd libdwarf-0.4.1 CFLAGS="-fpic" ./configure –disable-dependency-tracking make && make install && make clean ln -s /usr/local/lib/libdwarf.a /usr/lib/libdwarf.a
3. 致命错误:bpf/libbpf.h:没有那个文件或目录
sudo dnf install xz-devel sudo dnf install libbpf-devel
4. 致命错误:libGoReSym.h:没有那个文件或目录
wget https://github.com/deepflowys/libGoReSym/archive/refs/tags/v0.0.1-2.tar.gz tar -xzf v0.0.1-2.tar.gz cd libGoReSym-0.0.1-2 make && make install && make clean
5. 致命错误:缺少bddisasm
git clone https://github.com/bitdefender/bddisasm cd bddisasm make && make install && make clean ln -s /usr/local/lib/libbddisasm.a /usr/lib/libbddisasm.a # 建立软链接, agent 静态库目录是 /usr/lib/ 和 /usr/lib64