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下不下来)

  1. /etc/profile
  2. 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