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.

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.
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.
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.
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.


