La supervisión con eBPF está transformando la seguridad y la gestión de servidores Linux.
eBPF permite ejecutar programas seguros en el kernel de Linux para lograr una visibilidad profunda y en tiempo real.
eBPF es una tecnología que permite la ejecución segura de programas personalizados dentro del kernel de Linux, sin necesidad de modificar el código fuente ni reiniciar el sistema. Su uso principal es en la observación del rendimiento, filtrado del tráfico de red y robustecimiento de la seguridad mediante el análisis de eventos en tiempo real. Hoy en día, los sysadmins aprovechan eBPF para mejorar la observación, seguridad y rendimiento operativo.
Por qué eBPF está revolucionando el panorama
Si tienes experiencia en el sector, sabes que la monitorización siempre ha exigido compromisos. Podías optar por instalar agentes pesados que brindaban mucha información, pero a costa de un alto consumo de CPU y memoria, o conformarte con métricas superficiales que no afectaban el rendimiento. Con eBPF, esta disyuntiva comienza a desvanecerse. La capacidad de integrarse directamente al kernel y observar lo que sucede, sin intermediarios, es verdaderamente revolucionaria.
Ya no se trata de un agente que compite por recursos como un proceso más. Se enfoca en pequeños programas verificados que se ejecutan en un entorno seguro dentro del kernel, funcionando como una extensión nativa del sistema operativo. Es el paso de tener un espía que sigue un objetivo (con el riesgo de ser descubierto y generar ruido) a ser el propio suelo que pisa el objetivo, percibiendo cada uno de sus pasos.
Los agentes de monitorización convencionales, ya sea para APM (Application Performance Monitoring) o métricas de sistema, operan en el espacio de usuario. Esto implica que, para obtener datos del kernel (como llamadas al sistema, operaciones de red o accesos a disco), deben realizar constantes cambios de contexto (de espacio de usuario a espacio de kernel y viceversa). Cada uno de estos saltos, aunque pequeños, suma y genera sobrecarga. Si se multiplica por miles de eventos por segundo en un servidor con alta concurrencia, el overhead se hace evidente.
eBPF revierte este modelo. En lugar de un agente pesado, cargas «sondas» o programas de eBPF que son extremadamente ligeros y específicos para tus necesidades.
- ¿Solo deseas observar la latencia de consultas DNS? Carga un programa eBPF que se conecte a las funciones sendto y recvfrom en el socket correspondiente.
- ¿Necesitas rastrear qué proceso está abriendo un archivo de configuración particular? Conecta una sonda a la llamada al sistema openat.
Estos programas se compilan a un bytecode que es verificado por el kernel antes de su carga. Este verificador actúa como un portero de discoteca extremadamente estricto: asegura que el programa no pueda entrar en bucles infinitos, acceder a memoria no autorizada, ni arriesgar la estabilidad del sistema. Una vez aprobado, el compilador JIT (Just-In-Time) del kernel lo traduce a código máquina nativo, haciéndolo increíblemente rápido. Esto resulta en una monitorización con un impacto en el rendimiento casi nulo, a veces estimado en menos del 1%.
eBPF aborda este problema mediante su Verificador. Antes de que un programa eBPF se cargue y se vincule a un evento del kernel, pasa por un estricto proceso de análisis estático.
Si investigaste sobre eBPF antes de 2020, probablemente leíste acerca de la difícil tarea de recompilar tus programas eBPF para cada versión del kernel. Ese problema ya es cosa del pasado gracias a una característica llamada
BTF (BPF Type Format)
y su concepto habilitador:
CO-RE (Compile Once – Run Everywhere).
En la actualidad, en 2026, eBPF ha alcanzado la madurez y ya se encuentra soportado por todas las distribuciones serias de Linux. Sin embargo, las experiencias con eBPF no son uniformes, y como siempre, el detalle reside en las versiones.
- Kernel Linux: El soporte sólido para BTF comenzó a aparecer en el kernel 5.2, pero ha mejorado considerablemente desde entonces. Para una experiencia fluida, cualquier kernel 5.8 o superior es una excelente opción.
- Ubuntu: Desde la versión 20.10, Ubuntu incluye BTF de manera predeterminada. En la última LTS, Ubuntu 24.04, el soporte es excepcional.
- RHEL y derivados (CentOS Stream, Rocky Linux, AlmaLinux): A partir de RHEL 8.2, se incluyó soporte para BTF. En RHEL 9 y sus clones, es una característica estándar y robusta.
- Debian: Debian habilitó BTF de forma predeterminada a partir de la versión 11 («Bullseye»).
- SLES (SUSE Linux Enterprise Server): SLES 15 SP3 y versiones posteriores también incluyen soporte para BTF.
Ya entendimos el «por qué», ahora vamos a adentrarnos en los detalles y ver cómo funciona esto en su interior. Para usar eBPF correctamente y no solo recitar conceptos, se debe comprender sus componentes fundamentales.
En este artículo de SysAdminOk
se desglosa el mecanismo
pieza por pieza. ¡Léelo!
Con Información de blog.segu-info.com.ar