ELK Stack Handledning: Kibana, Logstash & Elastisk sökning

⚡ Smart sammanfattning

ELK Stack kombinerar tre verktyg med öppen källkod — Elasticsearch, Logstashoch Kibana – för att samla in, lagra, söka och visualisera maskindata, vilket ger ingenjörsteam centraliserad loggning och realtidsanalys för snabbare felsökning över servrar och applikationer.

  • 🧩 Stackroller: Elasticsearch lagrar och indexerar data, Logstash processer och skickar loggar, och Kibana visualiserar resultaten.
  • 🔎 Elastisk sökning: En Lucene-baserad NoSQL-sökmotor som indexerar heterogen data och returnerar resultat i nära realtid i fulltext via ett REST API.
  • 🛠️ Logstash: En pipeline som tar in, filtrerar och transformerar loggar från många källor innan de matas in i Elasticsearch.
  • 📊 Kibana: En webböversikt som omvandlar indexerad data till interaktiva diagram, kartor och grafer för snabb utforskning.
  • 📦 Elastisk stapel: Lightweight Beats-leveranser samlar in data vid gränsen, vilket ledde till att Elastic döpte om ELK till Elastic Stack.
  • 🏢 Produktionsanvändning: Netflix, LinkedIn och Medium kör ELK över stora kluster för loggning, säkerhet och övervakning.
  • ⚖️ ELK kontra Splunk: ELK är gratis och öppen källkod, medan Splunk är en kommersiell plattform med snabbare bearbetning och bredare integrationer.

ELK Stack-arkitektur som visar hur Kibana, Logstashoch Elasticsearch samarbetar för centraliserad loggning och analys

ELK Stack är en av de mest använda öppen källkodslösningarna för centraliserad loggning och logganalys. Denna ELK Stack-handledning förklarar vad Elasticsearch, Logstash, och Kibana är, hur de tre verktygen passar ihop, och var plattformen används i verklig övervakning och observerbarhetsarbete.

Vad är ELK Stack?

Ocuco-landskapet ELK Stack är en samling av tre produkter med öppen källkod — Elasticsearch, Logstashoch Kibana. Den tillhandahåller centraliserad loggning som hjälper dig att identifiera problem med servrar eller applikationer genom att låta dig söka i alla dina loggar på ett och samma ställe. Den hjälper dig också att korrelera loggar över flera servrar inom en specifik tidsram.

  • E står för Elasticsearch: används för att lagra loggar.
  • L står för Logstashanvänds för fartygping, bearbetning och lagring av loggar.
  • K står för Kibana: en visualiseringsverktyg (ett webbgränssnitt) som hanteras av Nginx eller Apache.

Elasticsearch, Logstashoch Kibana är alla utvecklade, hanterade och underhållna av ett företag som heter Elastisk.

Tillsammans är ELK Stack utformad för att låta användare hämta data från valfri källa, i valfritt format, och sedan söka, analysera och visualisera den informationen i realtid.

ELK Stack Architecture

Nu när du vet vad stacken är, förklarar det här avsnittet ELK-arkitekturen och hur data flödar mellan komponenterna.

ELK-pipelinen följer en tydlig sekvens där varje verktyg har ett dedikerat jobb:

  • loggar: De serverloggar som behöver analyseras identifieras.
  • Logstash: Samlar in loggar och händelsedata, analyserar och transformerar dem sedan.
  • Elastisk sökning: Data som transformerats av Logstash lagras, söks igenom och indexeras.
  • Kibana: Använder Elasticsearch-databasen för att utforska, visualisera och dela insikter.

En fjärde komponent som heter Beats läggs dock ofta till för datainsamling. Beats är lätta shippers som installeras på servrar, och att lägga till dem ledde till att Elastic döpte om ELK till Elastic Stack.

ELK Stack-arkitekturdiagram som visar Logstash, Elasticsearch och Kibana-dataflöde

När du hanterar mycket stora mängder data kan du lägga till Kafka eller RabbitMQ framför pipelinen för buffring och återhämtningsförmåga.

För ökad säkerhet kan en omvänd proxy, till exempel Nginx, placeras framför stacken.

ELK Stack-arkitektur med Beats tillagd för datainsamling

Med arkitekturen i åtanke tittar följande avsnitt närmare på varje produkt med öppen källkod i stacken.

Vad är Elasticsearch?

Elasticsearch är en NoSQL-databas baserat på Lucene-sökmotorn och byggt med RESTful API:er. Den erbjuder enkel driftsättning, hög tillförlitlighet och enkel hantering, och den lagrar all din data centralt så att du kan köra avancerade frågor och snabba dokumentsökningar.

Elasticsearch låter dig också lagra, söka och analysera stora datamängder. Det används oftast som den underliggande motorn som driver applikationer med krävande sökkrav.

Eftersom det lägger till analyser och många avancerade funktioner utöver snabb sökning har Elasticsearch använts i stor utsträckning i sökplattformar för moderna webb- och mobilapplikationer.

Funktioner i Elasticsearch

Elasticsearch erbjuder en omfattande uppsättning funktioner för indexering och sökning av data:

  • En sökserver med öppen källkod skriven i Java.
  • Kan indexera alla typer av heterogena data.
  • Tillhandahåller ett REST API-webbgränssnitt med JSON-utdata.
  • Fulltextsökning.
  • Sökning i nära realtid (NRT).
  • Ett shardat, replikerat, sökbart JSON-dokumentarkiv.
  • Schemafri, REST- och JSON-baserad distribuerad dokumentlagring.
  • Stöd för flera språk och geolokalisering.

Fördelar med Elasticsearch

  • Lagrar schemalös data och kan även skapa ett schema för dina data.
  • Låter dig manipulera poster en i taget med hjälp av API:er för flera dokument.
  • Stöder filtrering och frågor om dina data för insikter.
  • Baserad på Apache Lucene och tillhandahåller ett RESTful API.
  • Levererar horisontell skalbarhet, tillförlitlighet och kapacitet för flera hyresgäster för realtidsindexering och snabbare sökning.
  • Hjälper dig att skala både vertikalt och horisontellt.

Tabellen nedan förklarar de viktigaste termerna du kommer att stöta på när du arbetar med Elasticsearch:

Termin Användning
Cluster Ett kluster är en samling noder som tillsammans innehåller dina data och tillhandahåller kombinerade indexerings- och sökfunktioner.
Nod En nod är en enda Elasticsearch-instans. Den skapas när en Elasticsearch-instans startar.
index Ett index är en samling dokument som delar liknande egenskaper, såsom kunddata eller en produktkatalog. Det är användbart för indexering, sökning, uppdatering och borttagning, och du kan definiera många index i ett kluster.
Dokument Ett dokument är den grundläggande informationsenhet som kan indexeras. Det uttrycks som ett JSON-nyckelvärdepar, och varje dokument är associerat med en typ och ett unikt id.
Skärva Varje index kan delas upp i flera shards för att distribuera data. En shard är den atomära delen av ett index och kan spridas över klustret allt eftersom du lägger till fler noder.

Vad är Logstash?

Logstash är stackens pipelineverktyg för datainsamling. Det samlar in datainmatningar och matar dem in i Elasticsearch, vilket samlar in alla typer av data från olika källor och gör dem tillgängliga för vidare användning.

Logstash kan förena data från olika källor och normalisera den till de destinationer du väljer. Detta låter dig rensa och demokratisera all din data för en mängd olika användningsområden för analys och visualisering.

Den består av tre komponenter:

  • Ingång: skickar in loggar och konverterar dem till ett maskinläsbart format.
  • Filter: en uppsättning villkor som utför en viss åtgärd på en händelse.
  • Produktion: beslutsfattaren som dirigerar varje bearbetad händelse eller logg.

Dragen av Logstash

Logstash innehåller flera funktioner som gör logghanteringen flexibel:

  • Händelser passerar genom varje fas med hjälp av interna köer.
  • Tillåter olika inmatningar för dina loggar.
  • Stöder filtrering och parsning av dina loggar.

Fördelar med Logstash

  • Centraliserar din databehandling.
  • Analyserar en mängd olika strukturerade och ostrukturerade data och händelser.
  • Erbjuder plugins för att ansluta till många typer av inmatningskällor och plattformar.

Vad är Kibana?

Kibana är datavisualiseringsverktyget som kompletterar ELK-stacken. Det används för att visualisera Elasticsearch-dokument och hjälper utvecklare att få snabb inblick i sina data genom interaktiva diagram, geospatial data och grafer som gör komplexa frågor lätta att förstå.

Du kan använda Kibana för att söka, visa och interagera med data som lagras i Elasticsearch-index. Det hjälper dig också att utföra avancerade dataanalys och presentera dina data i en mängd olika tabeller, diagram och kartor.

Kibana stöder flera metoder för att söka i dina data. De vanligaste söktyperna listas nedan:

Söktyp Användning
Fritextsökningar Används för att söka efter en specifik sträng.
Sökningar på fältnivå Används för att söka efter en sträng inom ett specifikt fält.
Logiska påståenden Används för att kombinera sökningar till en logisk formulering.
Närhetssökningar Används för att söka efter termer inom en specifik teckennärhet.

Kibana erbjuder också ett antal kraftfulla funktioner för att utforska indexerad data:

  • En kraftfull front-end-instrumentpanel som visualiserar indexerad information från Elasticsearch-klustret.
  • Möjliggör sökning av indexerad information i realtid.
  • Låter dig söka, visa och interagera med data som lagras i Elasticsearch.
  • Kör frågor på data och visualiserar resultat i diagram, tabeller och kartor.
  • En konfigurerbar instrumentpanel för att segmentera och tärna Logstash loggar i Elasticsearch.
  • Tillhandahåller historisk data i form av grafer, diagram och mer.
  • Erbjuder dashboards i realtid som är enkla att konfigurera.

Fördelar och nackdelar med Kibana

Liksom alla verktyg har Kibana tydliga styrkor som förklarar dess popularitet:

  • Enkel visualisering av data.
  • Helt integrerad med Elasticsearch.
  • Fungerar som ett dedikerat visualiseringsverktyg.
  • Erbjuder realtidsanalys, diagram, sammanfattning och felsökning.
  • Erbjuder ett intuitivt och användarvänligt gränssnitt.
  • Tillåter delning av ögonblicksbilder av de loggar du har sökt i.
  • Tillåter att spara och hantera flera instrumentpaneler.

Det har också några begränsningar att tänka på:

  • Det fungerar bara med Elasticsearch som datakälla.
  • Att bygga och finjustera komplexa dashboards kan innebära en brant inlärningskurva.

Varför logganalys?

I molnbaserade infrastrukturer är prestanda och isolering mycket viktigt.

Prestandan för virtuella maskiner i molnet kan variera beroende på specifika belastningar, miljöer och antalet aktiva användare, så tillförlitlighet och nodfel kan bli betydande problem.

A plattform för logghantering kan övervaka alla dessa problem. Den kan också bearbeta operativsystemloggar, Nginx- och IIS-webbserverloggar för trafikanalys, applikationsloggar och loggar som genereras på AWS (Amazon Web Services).

I slutändan hjälper logghantering DevOps ingenjörer och systemadministratörer fattar bättre, datadrivna beslut. Det är därför logganalys med hjälp av Elastic Stack eller liknande verktyg har blivit avgörande.

ELK vs Splunk

En vanlig fråga är hur ELK Stack står sig i jämförelse med Splunk, ett populärt kommersiellt alternativ. Tabellen nedan sammanfattar de viktigaste skillnaderna:

ÄLG Splunk
ELK är ett verktyg med öppen källkod. Splunk är ett kommersiellt verktyg.
ELK erbjuder inte Solaris portabilitet på grund av Kibana. Splunk erbjuder Solaris bärbarhet.
Bearbetningshastigheten är strikt begränsad. Erbjuder noggrann och snabb bearbetning.
ELK är en teknikstack skapad från kombinationen av Elasticsearch, Logstashoch Kibana. Splunk är ett proprietärt verktyg som erbjuder både lokala och molnbaserade lösningar.
I ELK är sökning, analys och visualisering endast möjliga efter att stacken har konfigurerats. Splunk är ett komplett datahanteringspaket direkt ur lådan.
ELK erbjuder begränsad inbyggd integration med andra verktyg. Splunk är användbart för att konfigurera integrationer med andra verktyg.

Kund-case

Många välkända företag förlitar sig på ELK Stack för att köra loggning och analyser i stor skala. Exemplen nedan visar hur den används i produktion.

Netflix

Netflix förlitar sig starkt på ELK-stacken för att övervaka och analysera säkerhetsloggarna för sin kundtjänstverksamhet. Plattformen låter Netflix indexera, lagra och söka i dokument i mer än femton kluster som består av ungefär 800 noder.

LinkedIn

Den professionella nätverkssajten LinkedIn använder ELK Stack för att övervaka prestanda och säkerhet. Dess team integrerade ELK med Kafka för att hantera belastning i realtid, och verksamheten omfattar mer än 100 kluster över sex datacenter.

Snubbeltråd

Tripwire, en global leverantör av säkerhetsinformation och händelsehantering (SIEM), använder ELK-stacken för att stödja analys av informationspaketloggar.

Medium

Medium, den populära bloggpubliceringsplattformen, använder ELK Stack för att felsöka produktionsproblem och upptäcka DynamoDB hotspots. Stacken hjälper företaget att stödja 25 miljoner unika läsare och tusentals nya inlägg varje vecka.

Fördelar och nackdelar med ELK-stapeln

Fördelar

ELK Stack erbjuder flera fördelar som förklarar dess breda användning:

  • Det fungerar bäst när loggar från ett företags olika applikationer samlas i en enda ELK-instans.
  • Det ger omfattande insikter från den enda instansen och eliminerar behovet av att logga in i hundratals separata datakällor.
  • Snabb installation på plats.
  • Lätt att installera och skalbar både vertikalt och horisontellt.
  • Elastic erbjuder många språkklienter, inklusive Ruby, Python, PHP, Perl, .NET, Javaoch JavaManus.
  • Bibliotek finns tillgängliga för många programmerings- och skriptspråk.

Nackdelar

Trots sina styrkor har ELK Stack några nackdelar att beakta:

  • De olika komponenterna kan bli svåra att hantera när du går över till en mer komplex uppställning.
  • Det finns en verklig inlärningskurva, så förvänta dig en del trial and error allt eftersom du får erfarenhet.

Vanliga frågor

Beats är lätta datalevererare med öppen källkod som installeras som agenter på servrar. Filebeat vidarebefordrar loggfiler och Metricbeat samlar in systemstatistik. De skickar data direkt till Elasticsearch eller via LogstashGenom att lägga till Beats för datainsamling döpte Elastic om ELK Stack till Elastic Stack.

ELK står för Elasticsearch, Logstash, och Kibana. När Elastic lade till Beats, sin familj av lättviktiga dataleveransverktyg, döptes den kombinerade produkten om till Elastic Stack. Elastic Stack beskriver därför samma tre verktyg plus Beats och extra funktioner som säkerhet och maskininlärning.

Ja. Elasticsearch, Logstash, och Kibana är gratis att ladda ner. Sedan 2024 erbjuder Elastic Elasticsearch och Kibana under den öppna källkodslicensen AGPLv3, tillsammans med SSPL och Elastic-licensen. Avancerade funktioner som maskininlärning och aviseringar kräver en betald prenumerationsnivå.

Elasticsearch är ett schemaflexibelt, dokumentorienterat NoSQL-arkiv byggt på Apache Lucene och frågat via ett REST API. Relationsdatabaser använder fasta tabeller, rader och SQL med ACID-transaktioner. Elasticsearch är optimerad för fulltextsökning och nära realtidsanalys snarare än strikt transaktionell konsekvens.

Produktionsnoder behöver vanligtvis minst 16 GB RAM, med JVM-heapen inställd på cirka 50 procent av minnet och under ungefär 30 GB. Små test- eller fristående installationer körs på mindre. Beats och Logstash behöver betydligt färre resurser än Elasticsearch.

Grok är en Logstash filterplugin som analyserar ostrukturerade logglinjer till strukturerade, namngivna fält med hjälp av återanvändbara mönster byggda på reguljära uttryck. Det används ofta för att t.ex.tractidsstämplar, IP-adresser och statuskoder från webbserver- och applikationsloggar innan de indexeras i Elasticsearch.

Elasticsearch inkluderar inbyggd maskininlärning som modellerar normalt loggbeteende och flaggar avvikelser automatiskt. Dessa AIOps-funktioner grupperar liknande meddelanden, upptäcker ovanliga volymer och snabbar upp rotorsaksanalys, vilket minskar den genomsnittliga tiden till lösning. Ingenjörer bör fortfarande granska flaggade händelser innan de agerar på dem.

Ja. Verktyg som till exempel ChatGPT och GitHub Copilot kan utarbeta Logstash grok-mönster, Elasticsearch Query DSL och Kibana-inställningar från en kort prompt. Testa alltid genererade pipelines, eftersom AI kan referera till föråldrade fältnamn eller föråldrad syntax.

Sammanfatta detta inlägg med: