go-kontracer-bpf
go-conntracer-bpf adalah pustaka Go untuk menelusuri peristiwa koneksi jaringan (TCP/UDP) (sambungkan, terima, kirim ke, terima dari) di kprobe BPF yang terinspirasi oleh weaveworks/tcptracer-bpf. go-conntracer-bpf diimplementasikan di atas libbpf, yang merupakan perwakilan perpustakaan C untuk BPF termasuk kernel Linux.
Fitur
- Pelacakan overhead rendah dengan menggabungkan peristiwa koneksi di kernel.
- BPF CO-RE (Kompilasi Sekali – Jalankan Di Mana Saja)-diaktifkan
Prasyarat
Fase kompilasi
- kode sumber libbpf
- Dentang/LLVM >= 9
Fase waktu proses
- Versi kernel Linux >= 5.6 (karena operasi batch ke peta bpf)
- Kernel Linux akan dibangun dengan informasi tipe BTF. Lihat https://github.com/libbpf/libbpf#bpf-co-re-compile-once--run-everywhere.
Umum untuk kedua fase
- perpustakaan fitnah dan zlib
Fitur kernel Linux yang disertakan dalam go-conntracer-bpf
go-conntracer-bpf memanfaatkan beberapa fitur terbaru dari kernel Linux.
- BPF Type Format (BTF) di kernel versi 4.18.
- Batch API ke peta BPF (BPF_MAP_UPDATE_BATCH, BPF_MAP_LOOKUP_AND_DELETE_BATCH) di kernel versi 5.6.
- Ring Buffer di kernel versi 5.8 (hanya sedikit rasa tanpa agregasi di kernel).
Penggunaan
sambungan
conntop adalah alat CLI untuk menampilkan peristiwa koneksi.
Bangun koneksi
Proyek menggunakan go-conntracer-bpf