Использование eBPF для мониторинга и отладки

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

ebpfbcclinux

👁 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 #мониторинг

🧭 @recura_tech 🌐 VK 🌐 MAX

Скриншот тёмной карточки с примером кода Python/BCC для eBPF: команды установки и код для отслеживания sys_open (open) в Linux.
Пример кода и команды для запуска eBPF-скрипта (BCC) из поста.

Дискуссия

ㅤ
Проще поставить Tetragon
Присоединиться к обсуждению →

Читайте так же