Zephyrnet-logo

Wat is eBPF en waarom het belangrijk is voor waarneembaarheid

Datum:

eBPF-waarneembaarheid is een robuuste benadering waarbij programma's worden geïmplementeerd om kernelgebeurtenissen te bewaken en de waarneembaarheid, netwerken en beveiliging van de Linux-kernel worden verbeterd. Het elimineert de noodzaak om de kernelbroncode te bewerken of modules toe te voegen, waardoor u een robuustere infrastructuur kunt creëren om uw systeem te ondersteunen zonder het ingewikkeld te maken. In dit artikel bespreken we eBPF, hoe het werkt en de voor- en nadelen van het gebruik van eBPF voor waarneembaarheid.

Wat is eBPF?

Laten we eerst begrijpen wat eBPF is, en waarom het belangrijk is. Het Extended Berkeley Packet Filter (eBPF) is een geavanceerde Linux-kernelfunctie waarmee sandbox-programma's binnen de kernel van het besturingssysteem kunnen werken. Het verbetert veilig en effectief de functionaliteit van de kernel zonder dat u kernelmodules hoeft te laden of de broncode hoeft te wijzigen.

Gezien de mogelijkheid van de kernel om het hele systeem te monitoren en te beheren, zijn besturingssystemen doorgaans het ideale gebied geweest om beveiliging, waarneembaarheid en netwerkmogelijkheden op te nemen. Vanwege het kritieke doel en de strenge beveiligings- en stabiliteitsvereisten is de kernel van het besturingssysteem bestand tegen verandering. Als gevolg hiervan loopt de ontwikkeling op besturingssysteemniveau achter op verbeteringen die buiten via eBPF worden geleverd.

Wat is eBPF-waarneembaarheid?

eBPF-observeerbaarheid verwijst naar een eenvoudige maar volledige implementatie van programma's die bedoeld zijn voor het observeren van kernelgebeurtenissen. Dit gebeurt grotendeels in Linux-kernels. eBPF onderscheidt zich als een observatietool omdat het programma's binnen de kernel kan uitvoeren om monitoringgegevens te exfiltreren zonder de broncode te wijzigen. Waarneembaarheid met eBPF is extreem veilig, geïsoleerd en onopvallend, en kan worden overgedragen naar gecentraliseerde systemen. Het vergroot de waarneembaarheid door de zichtbaarheid, context en nauwkeurigheid van infrastructuur en netwerkgebeurtenissen te vergroten.

Hoe werkt eBPF?

In Kubernetes-clusters worden vaak containers gebruikt om services te installeren die blijven werken zolang de applicatie actief is, en eBPF biedt een betrouwbare methode voor het monitoren van services in het cluster. eBPF kan ook worden gebruikt om Kubernetes-clusteropdrachten te controleren en biedt een gedetailleerd overzicht van elke opdracht. Het geeft informatie over de initiatiefnemer, timing, locatie en andere relevante feiten.

Event-driven eBPF-applicaties zijn gekoppeld aan een coderoute. Hooks zijn bepaalde triggers in het codepad die eventuele bijbehorende eBPF-programma's uitvoeren wanneer deze worden aangeboden. Hooks zijn te vinden in netwerkgebeurtenissen en systeemoproepen.

Wanneer de code wordt geactiveerd, wordt deze eerst gecompileerd naar BPF-bytecode. Op zijn beurt wordt de bytecode vóór uitvoering onderzocht om er zeker van te zijn dat deze geen lus produceert. Deze stap beschermt de software tegen het per ongeluk of opzettelijk compromitteren van de Linux-kernel. Wanneer een programma op de haak wordt gebeld, voert het hulpoproepen uit. Deze utility-aanroepen zijn functies die eBPF verschillende functies voor geheugentoegang bieden. De kernel moet van tevoren helper-oproepen specificeren, maar het aantal toegankelijke functies groeit voortdurend.

bron

Hoe werkt eBPF-waarneembaarheid?

Om de onderliggende mechanismen die eBPF-waarneembaarheid mogelijk maken volledig te begrijpen, moeten we eerst het idee van hooks begrijpen. eBPF-programma's zijn doorgaans gebeurtenisgestuurd, wat betekent dat ze worden geactiveerd zodra een bepaalde gebeurtenis plaatsvindt. Wanneer bijvoorbeeld een functieaanroep wordt uitgevoerd, kan een eBPF-toepassing worden aangeroepen om gegevens te verzamelen voor waarneembaarheid.

Ten eerste kunnen deze hooks zowel in de kernel als in de gebruikersruimte voorkomen. Als gevolg hiervan kan eBPF worden gebruikt om zowel gebruikersruimte-apps als gebeurtenissen op kernelniveau te bewaken. Ten tweede kunnen deze hooks vooraf bepaald/statisch of dynamisch in een draaiend systeem worden geïntroduceerd (zonder herstarts!). Elk van hen wordt mogelijk gemaakt door vier unieke eBPF-processen:

  • Kprobes (Kernel-sondes): Gebruikt tijdens runtime om dynamisch in te haken op elk gebied van de kernelcode.
  • Uprobes (Gebruikerssondes): Gebruikt tijdens runtime om dynamisch in te haken op elk deel van een gebruikersruimteprogramma.
  • Kernel-traceerpunten: Gebruikt om aan te haken bij door de kernel gedefinieerde gebeurtenissen.
  • USDT: Gebruikt om in te haken op door de ontwikkelaar gedefinieerde tracepoints in applicatiecode.

Er zijn verschillende vooraf gedefinieerde hooks in de kernelruimte waaraan een eBPF-toepassing gemakkelijk kan worden gekoppeld (bijv. systeemaanroepen, functie-invoer/-afsluiting, netwerkgebeurtenissen, kernel-tracepoints). Evenzo hebben veel taalruntimes, databasesystemen en softwarestacks vooraf geconfigureerde hooks voor Linux-BCC hulpprogramma's waarop eBPF-programma's kunnen inhaken in de gebruikersruimte.

Wie zou eBPF Observability moeten gebruiken?

Het gebruik van eBPF in cloud-native apps groeit. In Kubernetes en andere gedistribueerde en op containers gebaseerde instellingen wordt eBPF vaak gebruikt wanneer traditionele beveiligingsbewaking mislukt. eBPF kan helpen bij het overbruggen van de zichtbaarheidskloof in dergelijke scenario's, omdat het inzicht geeft in HTTP-verkeer.

Voordelen van het gebruik van eBPF voor waarneembaarheid

Het vermogen om zich aan te passen aan verschillende eisen en instellingen is cruciaal voor de waarneembaarheid van het systeem. Dit is waar deze technologie in uitblinkt en ontwikkelaars onvergelijkbare hoeveelheden vrijheid biedt. Hier zijn enkele voordelen van het gebruik van eBPF voor waarneembaarheid.

Security

Programma's zijn in wezen in een sandbox geplaatst, wat inhoudt dat de broncode van de kernel onaangeroerd en veilig blijft. Het verificatieproces zorgt ervoor dat programma's die eindeloze loops uitvoeren geen misbruik maken van bronnen.

Gecentraliseerde

eBPF-programma's zijn gecentraliseerd en geven gedetailleerdere gegevens over kernelgebeurtenissen. Dit geeft een schat aan informatie over container- en netwerkactiviteiten, die vervolgens kan worden overgebracht naar gecentraliseerde platforms voor aggregatie en zichtbaarheid.

Gemak

Het schrijven van code die aansluit bij kernelroutines vereist minder inspanning dan het bouwen en onderhouden van kernelmodules.

Uniforme tracering

eBPF biedt een uniform, robuust en gebruiksvriendelijk raamwerk voor het traceren van processen. Dit verbetert zowel de zichtbaarheid als de veiligheid.

programmeerbaarheid

Het gebruik van eBPF verhoogt de feature-rijkdom van een omgeving zonder extra lagen toe te voegen. Evenzo, omdat code rechtstreeks in de kernel wordt uitgevoerd, kan eBPF de gegevens tussen eBPF-gebeurtenissen opslaan in plaats van deze te dumpen zoals andere tracers doen.

Nadelen van het gebruik van eBPF voor waarneembaarheid

Het gebruik van eBPF voor waarneembaarheid heeft zijn voordelen, maar aan al deze superieure mogelijkheden zijn kosten verbonden. Laten we eens kijken naar enkele van de beperkingen van eBPF en wat er aan wordt gedaan.

Linux-beperkingen

eBPF wordt nu vooral gebruikt in Linux-kernels. Dit levert een probleem op voor organisaties die eBPF-technologieën proberen te gebruiken voor Kubernetes en containerworkloads die worden uitgevoerd op niet-Linux-systemen. eBPF voor Windows daarentegen is volop in ontwikkeling.

Marktacceptatie

Er is veel enthousiasme en geroezemoes over de technologie, en de steun van grote technologiebedrijven heeft geholpen om zijn pleidooi in de cloud-native arena te versterken. Het staat echter nog in de kinderschoenen en vereist een aanzienlijke vakkennis. Als gevolg hiervan is de marktintroductie traag geweest.

Conclusie

In de komende jaren heeft deze technologie het potentieel om de huidige benadering van waarneembaarheid te transformeren. Naarmate er nieuwe eBPF-toepassingen op het gebied van waarneembaarheid ontstaan, is het duidelijk dat deze transformatieve technologie innovatie zal stimuleren en de toekomst van waarneembaarheid zal beïnvloeden. eBPF is een robuuste waarneembaarheidstechnologie die ons helpt bij het vastleggen van vitale gegevenspunten met lage overhead. Het potentieel om een ​​veiligere en eenvoudigere implementatie van waarneembaarheid te bieden, zal belangrijk zijn voor het verbeteren van de systeemprestaties, veiligheid en algehele operationele efficiëntie.

spot_img

Laatste intelligentie

spot_img