go-contracer-bpf
go-conntracer-bpf es una biblioteca para Go para rastrear eventos de conexión de red (TCP/UDP) (conectar, aceptar, enviar a, recibir desde) en BPF kprobe inspirada en weaveworks/tcptracer-bpf. go-contracer-bpf se implementa sobre libbpf, que es una biblioteca C representativa para el kernel de Linux incluido en BPF.
Características
- Seguimiento con gastos generales reducidos mediante la agregación de eventos de conexión en el kernel.
- BPF CO-RE (compilar una vez – ejecutar en todas partes) habilitado
Requisitos previos
Fase de compilación
- código fuente libbpf
- Sonido metálico/LLVM >= 9
Fase de ejecución
- Versión del kernel de Linux >= 5.6 (debido a operaciones por lotes en mapas bpf)
- El kernel de Linux se construirá con información de tipo BTF. Consulte https://github.com/libbpf/libbpf#bpf-co-re-compile-once--run-everywhere.
Común a ambas fases.
- bibliotecas libelf y zlib
Características del kernel de Linux incluidas en go-contracer-bpf
go-contracer-bpf utiliza algunas de las funciones más recientes del kernel de Linux.
- Formato de tipo BPF (BTF) en la versión del kernel 4.18.
- API por lotes para el mapa BPF (BPF_MAP_UPDATE_BATCH, BPF_MAP_LOOKUP_AND_DELETE_BATCH) en la versión 5.6 del kernel.
- Ring Buffer en la versión 5.8 del kernel (solo una versión sin agregación en el kernel).
Uso
controlar
conntop es una herramienta CLI para mostrar eventos de conexión.
Construir control
Proyectos que utilizan go-contracer-bpf