go-conntracer-bpf
go-conntracer-bpf est une bibliothèque pour Go pour tracer les événements de connexion réseau (TCP/UDP) (connect, accept, sendto, recvfrom) sur BPF kprobe inspiré de weaveworks/tcptracer-bpf. go-conntracer-bpf est implémenté au-dessus de libbpf, qui est une bibliothèque C représentative du noyau Linux inclus par BPF.
Caractéristiques
- Traçage à faible surcharge en regroupant les événements de connexion dans le noyau.
- Compatible BPF CO-RE (Compile Once – Run Everywhere)
Conditions préalables
Phase de compilation
- code source de la libbpf
- Clang/LLVM >= 9
Phase d'exécution
- Version du noyau Linux >= 5.6 (en raison des opérations par lots sur les cartes bpf)
- Noyau Linux à construire avec des informations de type BTF. Voir https://github.com/libbpf/libbpf#bpf-co-re-compile-once--run-everywhere.
Commun aux deux phases
- bibliothèques libelf et zlib
Fonctionnalités du noyau Linux incluses dans go-conntracer-bpf
go-conntracer-bpf utilise certaines dernières fonctionnalités du noyau Linux.
- Format de type BPF (BTF) dans la version 4.18 du noyau.
- API par lots vers la carte BPF (BPF_MAP_UPDATE_BATCH, BPF_MAP_LOOKUP_AND_DELETE_BATCH) dans la version 5.6 du noyau.
- Ring Buffer dans la version 5.8 du noyau (uniquement une version de non-agrégation dans le noyau).
Usage
connexion
conntop est un outil CLI pour afficher les événements de connexion.
Construire une connexion
Projets utilisant go-conntracer-bpf