RousselTMLEARNING

Article · Observabilité avec eBPF : de la découverte à l'expertise

eBPF expliqué

1. eBPF en quelques mots #

Une machine virtuelle dans le noyau.

Le principe #

Fonctionnement d'eBPF
Le vérificateur garantit que le programme ne peut ni planter ni bloquer le noyau.

eBPF (extended Berkeley Packet Filter) permet de charger de petits programmes dans le noyau Linux, sans module ni redémarrage. Avant d'être exécuté, chaque programme passe par un vérificateur (pas de boucle infinie, pas d'accès mémoire hors limites), puis il est compilé en code natif (JIT) et attaché à un événement.

Pour l'observabilité, cela signifie : voir chaque appel système, chaque paquet, chaque fonction d'un processus, avec un surcoût très faible et sans modifier les applications.

2. Les points d'accroche #

Où un programme peut s'attacher.

Types de hooks #

HookDéclenché parExemple d'usage
tracepointPoint d'instrumentation stable du noyauAppels système, ordonnanceur, réseau
kprobe / kretprobeEntrée / sortie d'une fonction du noyauLatence de vfs_read
uprobe / uretprobeEntrée / sortie d'une fonction d'un programmeSSL_write d'OpenSSL : voir le HTTP avant chiffrement
perf eventMinuterie ou compteur matérielProfiling CPU par échantillonnage
XDP / TCPaquet réseau (avant ou dans la pile)Filtrage, répartition de charge, flux réseau
LSMContrôles de sécuritéDétection d'exécutions suspectes
À savoir : Les tracepoints sont stables entre versions du noyau ; les kprobes dépendent des fonctions internes et peuvent casser lors d'une mise à jour.

3. Maps, BTF et CO-RE #

Échanger des données et rester portable.

Les maps #

Un programme eBPF ne fait pas d'entrées-sorties : il écrit dans des maps (tables de hachage, tableaux, ring buffers) que l'agent en espace utilisateur lit. On agrège donc dans le noyau (compteurs, histogrammes) et seul le résultat remonte : c'est ce qui rend eBPF si économe.

Portabilité #

BTF (BPF Type Format) décrit les structures du noyau courant ; CO-RE (Compile Once, Run Everywhere) ajuste le programme à la volée. Un même binaire fonctionne ainsi sur plusieurs versions du noyau.

uname -r                                   # 5.8+ recommandé, 5.15+ idéal
ls /sys/kernel/btf/vmlinux                 # BTF disponible ?
bpftool feature probe | grep -i "map_type" | head
OutilCatégorie
bpftrace, bccDiagnostic ponctuel en ligne de commande
Grafana Beyla / OpenTelemetry eBPF InstrumentationMétriques RED et traces des applications
Cilium HubbleFlux réseau Kubernetes
Pyroscope, Parca, profiler eBPF OpenTelemetryProfiling continu
Tetragon, FalcoObservabilité de sécurité

📄 eBPF expliqué : des programmes dans le noyau Linux pour observer sans instrumenter →

Mon suivi

  • ⏱ Durée estimée : ≈ 3 min

Connectez-vous pour suivre votre progression et prendre des notes. Se connecter

💬 Questions sur cette leçon

Aucune question pour l'instant : soyez le premier à demander de l'aide ou à partager votre configuration.

Poser une question sur cette leçon →

Articles recommandés

eBPF en production : sécurité, prérequis et limites

Ce qu'il faut savoir avant de déployer des agents eBPF : privilèges et capacités, versions de noy...

Instrumenter sans code avec Grafana Beyla (OpenTelemetry eBPF Instrumentation)

Obtenir métriques RED et traces HTTP/gRPC de n'importe quelle application sans la modifier : Graf...

Observer le réseau Kubernetes avec Cilium Hubble

Rendre visibles les flux réseau d'un cluster Kubernetes avec Cilium Hubble : architecture, CLI hu...

Bonnes pratiques eBPF pour l'observabilité

Check-list pour adopter eBPF en observabilité : choix des outils, déploiement progressif, sécurit...

Instrumenter ses applications pour Pyroscope : SDK, Alloy et eBPF

Envoyer des profils à Pyroscope depuis Go, Java, Python et Node.js avec les SDK, collecter les po...

Diagnostiquer avec bpftrace et les outils bcc

Les outils eBPF du diagnostic au quotidien : one-liners bpftrace (appels système, fichiers, laten...

Profiling continu avec eBPF : Parca, Pyroscope et le profiler OpenTelemetry

Profiler en continu tous les processus d'un hôte grâce à eBPF : principe, Parca et parca-agent, P...

Beyla et Alloy : métriques RED et traces sans code avec beyla.ebpf

Activer l'instrumentation eBPF de Beyla dans Alloy : découverte des services, métriques RED vers ...

OTLP expliqué : comprendre le protocole OpenTelemetry

Découvrez le protocole OTLP expliqué simplement. Comprendre les différences entre gRPC et HTTP po...

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !