ไป-conntracer-bpf
go-conntracer-bpf เป็นไลบรารีสำหรับ Go สำหรับการติดตามเหตุการณ์การเชื่อมต่อเครือข่าย (TCP/UDP) (เชื่อมต่อ ยอมรับ sendto รับการรับข้อมูลจาก) บน BPF kprobe ที่ได้รับแรงบันดาลใจจาก weaveworks/tcptracer-bpf go-conntracer-bpf ถูกนำไปใช้บน libbpf ซึ่งเป็นไลบรารี C ตัวแทนสำหรับ BPF ที่รวมเคอร์เนล Linux
คุณสมบัติ
- การติดตามค่าใช้จ่ายต่ำโดยการรวมเหตุการณ์การเชื่อมต่อในเคอร์เนล
- เปิดใช้งาน BPF CO-RE (คอมไพล์ครั้งเดียว – เรียกใช้ทุกที่)
ข้อกำหนดเบื้องต้น
ขั้นตอนการรวบรวม
- ซอร์สโค้ด libbpf
- เสียงดังกราว/LLVM >= 9
เฟสรันไทม์
- เวอร์ชันเคอร์เนล Linux >= 5.6 (เนื่องจากการดำเนินการแบบแบตช์กับแผนที่ bpf)
- เคอร์เนล Linux ที่จะสร้างขึ้นด้วยข้อมูลประเภท BTF ดูhttps://github.com/libbpf/libbpf#bpf-co-re-compile-once--run-everywhere
เหมือนกันทั้งสองเฟส
คุณสมบัติของเคอร์เนล Linux ที่รวมอยู่ใน go-conntracer-bpf
go-conntracer-bpf ใช้คุณสมบัติล่าสุดของเคอร์เนล Linux
- BPF Type Format (BTF) ในเคอร์เนลเวอร์ชัน 4.18
- Batch API เป็นแผนที่ BPF (BPF_MAP_UPDATE_BATCH, BPF_MAP_LOOKUP_AND_DELETE_BATCH) ในเคอร์เนลเวอร์ชัน 5.6
- Ring Buffer ในเคอร์เนลเวอร์ชัน 5.8 (มีเพียงรสชาติของการไม่มีการรวมตัวในเคอร์เนล)
การใช้งาน
คอนโทป
conntop เป็นเครื่องมือ CLI เพื่อแสดงเหตุการณ์การเชื่อมต่อ
สร้างคอนท็อป
โปรเจ็กต์ที่ใช้ go-conntracer-bpf