go-contracer-bpf
go-conntracer-bpf هي مكتبة لـ Go لتتبع أحداث اتصال الشبكة (TCP/UDP) (الاتصال والقبول والإرسال إلى وrecvfrom) على BPF kprobe المستوحاة من weaveworks/tcptracer-bpf. يتم تنفيذ go-conntracer-bpf أعلى libbpf، وهي مكتبة C تمثيلية لـ BPF المتضمنة Linux kernel.
سمات
- تتبع الحمل المنخفض من خلال تجميع أحداث الاتصال في kernel.
- BPF CO-RE (ترجمة مرة واحدة - تشغيل في كل مكان) - ممكّن
المتطلبات الأساسية
مرحلة التجميع
- كود المصدر libbf
- كلانج/LLVM >= 9
مرحلة وقت التشغيل
- إصدار Linux kernel >= 5.6 (بسبب العمليات المجمعة لخرائط bpf)
- سيتم بناء نواة Linux باستخدام معلومات نوع BTF. راجع https://github.com/libbpf/libbpf#bpf-co-re-compile-once--run-everywhere.
مشترك في كلا المرحلتين
ميزات Linux kernel المضمنة في go-conntracer-bpf
يستخدم go-conntracer-bpf بعض أحدث ميزات Linux kernel.
- تنسيق نوع BPF (BTF) في إصدار kernel 4.18.
- واجهة برمجة التطبيقات المجمعة إلى خريطة BPF (BPF_MAP_UPDATE_BATCH، BPF_MAP_LOOKUP_AND_DELETE_BATCH) في إصدار kernel 5.6.
- Ring Buffer في الإصدار 5.8 من kernel (فقط نكهة عدم التجميع في kernel).
الاستخدام
com.conntop
conntop هي أداة CLI لعرض أحداث الاتصال.
بناء كونتوب
المشاريع باستخدام go-conntracer-bpf