👁 eBPF (extended Berkeley Packet Filter) — мощный инструмент для мониторинга и отладки Linux-систем. Он позволяет отслеживать события в ядре в реальном времени без модификации кода приложения. Это даёт возможности, ранее доступные только через глубокие изменения в ядре или внешние агенты.
📝 Вот пример использования eBPF:
# Установите необходимые утилиты
sudo apt-get install bpfcc-tools linux-headers-$(uname -r)
# Пример скрипта
#!/usr/bin/env python3
from bcc import BPF
# Программа eBPF для отслеживания системных вызовов open()
prog = """
int trace_open(struct pt_regs *ctx) {
bpf_trace_printk("open() called!\n");
return 0;
}
"""
b = BPF(text=prog)
b.attach_kprobe(event="sys_open", fn_name="trace_open")
# Печатаем вывод
print("Tracing open() system calls... Press Ctrl+C to stop.")
b.trace_print(fmt="{0}")
📌 Как это работает:
- • В примере мы используем библиотеку
BCCдля создания программы, которая отслеживает системные вызовыopen(). - • Этот скрипт позволяет отследить, когда и какие файлы открываются в системе, что может быть полезно для диагностики или анализа.
- •
eBPFпозволяет сделать это без вмешательства в основной код приложения, а также минимизируя нагрузку на систему.
❗️ Этот подход позволяет собрать точную информацию о поведении системы в рабочем состоянии, не влияя на её производительность.
tags: #linux #мониторинг




Дискуссия