ELK Stack-vejledning: Kibana, Logstash & Elastisk søgning
⚡ Smart opsummering
ELK Stack kombinerer tre open source-værktøjer — Elasticsearch, Logstashog Kibana — til at indsamle, gemme, søge og visualisere maskindata, hvilket giver ingeniørteams centraliseret logføring og realtidsanalyse til hurtigere fejlfinding på tværs af servere og applikationer.

ELK Stack er en af de mest anvendte open source-løsninger til centraliseret logging og loganalyse. Denne ELK Stack-tutorial forklarer, hvad Elasticsearch, Logstash, og Kibana er, hvordan de tre værktøjer passer sammen, og hvor platformen bruges i overvågnings- og observerbarhedsarbejde i den virkelige verden.
Hvad er ELK Stack?
ELK stak er en samling af tre open source-produkter — Elasticsearch, Logstashog Kibana. Den tilbyder centraliseret logføring, der hjælper dig med at identificere problemer med servere eller applikationer ved at lade dig søge i alle dine logfiler ét sted. Den hjælper dig også med at korrelere logfiler på tværs af flere servere inden for en bestemt tidsramme.
- E står for Elasticsearch: bruges til lagring af logfiler.
- L står for Logstashbruges til skibping, behandling og lagring af logfiler.
- K står for Kibana: en visualiseringsværktøj (en webgrænseflade), der hostes via Nginx eller Apache.
Elastisk søgning, Logstashog Kibana er alle udviklet, administreret og vedligeholdt af et firma ved navn Elastik.
Tilsammen er ELK Stack designet til at give brugerne mulighed for at tage data fra enhver kilde, i ethvert format, og derefter søge, analysere og visualisere disse data i realtid.
ELK stak Architecture
Nu hvor du ved, hvad stakken er, forklarer dette afsnit ELK-arkitekturen og hvordan data flyder mellem komponenterne.
ELK-pipelinen følger en klar rækkefølge, hvor hvert værktøj har et dedikeret job:
- Logs: De serverlogfiler, der skal analyseres, identificeres.
- Logstash: Indsamler logfiler og hændelsesdata, og parser og transformerer dem derefter.
- Elastiksøgning: Dataene transformeret af Logstash gemmes, søges og indekseres.
- Kibana: Bruger Elasticsearch-databasen til at udforske, visualisere og dele indsigt.
En fjerde komponent ved navn Beats tilføjes dog ofte til dataindsamling. Beats er lette shipping-programmer installeret på servere, og tilføjelsen af dem førte til, at Elastic omdøbte ELK til Elastic Stack.
Når du håndterer meget store mængder data, kan du tilføje Kafka eller RabbitMQ foran pipelinen for at opnå buffering og robusthed.
For ekstra sikkerhed kan en reverse proxy, såsom Nginx, placeres foran stakken.
Med arkitekturen i tankerne ser de følgende afsnit nærmere på hvert open source-produkt i stakken.
Hvad er Elasticsearch?
Elasticsearch er en NoSQL database baseret på Lucene-søgemaskinen og bygget med RESTful API'er. Den tilbyder enkel implementering, høj pålidelighed og nem administration, og den lagrer alle dine data centralt, så du kan køre avancerede forespørgsler og hurtige dokumentsøgninger.
Elasticsearch giver dig også mulighed for at gemme, søge og analysere store mængder data. Det bruges oftest som den underliggende motor, der driver applikationer med krævende søgekrav.
Fordi det tilføjer analyser og mange avancerede funktioner oven i hurtig søgning, er Elasticsearch blevet bredt anvendt i søgeplatforme til moderne web- og mobilapplikationer.
Funktioner i Elasticsearch
Elasticsearch tilbyder et omfattende sæt af muligheder til indeksering og søgning i data:
- En open source-søgeserver skrevet i Java.
- Kan indeksere alle former for heterogene data.
- Tilbyder en REST API-webgrænseflade med JSON-output.
- Fuldtekstsøgning.
- Næsten realtidssøgning (NRT).
- Et sharded, replikeret, søgbart JSON-dokumentlager.
- Skemafri, REST- og JSON-baseret distribueret dokumentlager.
- Understøttelse af flere sprog og geoplacering.
Fordele ved Elasticsearch
- Gemmer skemaløse data og kan også oprette et skema til dine data.
- Giver dig mulighed for at manipulere poster én efter én ved hjælp af API'er til flere dokumenter.
- Understøtter filtrering og forespørgsler på dine data for at få indsigt.
- Baseret på Apache Lucene og leverer en RESTful API.
- Leverer horisontal skalerbarhed, pålidelighed og multi-tenant-funktionalitet til indeksering i realtid og hurtigere søgning.
- Hjælper dig med at skalere både lodret og vandret.
Tabellen nedenfor forklarer de vigtigste termer, du vil støde på, når du arbejder med Elasticsearch:
| Semester | Brug |
|---|---|
| Cluster | En klynge er en samling af noder, der tilsammen indeholder dine data og tilbyder kombinerede indekserings- og søgefunktioner. |
| Node | En node er en enkelt Elasticsearch-instans. Den oprettes, når en Elasticsearch-instans starter. |
| Indeks | Et indeks er en samling af dokumenter, der deler lignende karakteristika, såsom kundedata eller et produktkatalog. Det er nyttigt til indeksering, søgning, opdatering og sletning, og du kan definere mange indeks i én klynge. |
| Dokument | Et dokument er den grundlæggende informationsenhed, der kan indekseres. Det udtrykkes som et JSON-nøgle-værdi-par, og hvert dokument er knyttet til en type og et unikt id. |
| shard | Hvert indeks kan opdeles i flere shards for at distribuere data. En shard er den atomare del af et indeks og kan spredes på tværs af klyngen, efterhånden som du tilføjer flere noder. |
Hvad er Logstash?
Logstash er stakkens pipelineværktøj til dataindsamling. Det indsamler datainput og sender dem til Elasticsearch, hvorved alle typer data fra forskellige kilder bliver tilgængelige til videre brug.
Logstash kan samle data fra forskellige kilder og normalisere dem til de destinationer, du vælger. Dette giver dig mulighed for at rense og demokratisere alle dine data til en bred vifte af analyse- og visualiseringsanvendelser.
Den består af tre komponenter:
- Input: sender logs ind og konverterer dem til et maskinlæsbart format.
- Filtre: et sæt af betingelser, der udfører en bestemt handling på en begivenhed.
- Output: den beslutningstager, der dirigerer hver behandlet hændelse eller log.
Funktioner af Logstash
Logstash inkluderer flere funktioner, der gør logbehandling fleksibel:
- Begivenheder passerer gennem hver fase ved hjælp af interne køer.
- Tillader forskellige input til dine logfiler.
- Understøtter filtrering og parsing af dine logfiler.
Fordele ved Logstash
- Centraliserer din databehandling.
- Analyserer en bred vifte af strukturerede og ustrukturerede data og begivenheder.
- Tilbyder plugins til at forbinde med mange typer inputkilder og platforme.
Hvad er Kibana?
Kibana er datavisualiseringsværktøjet, der fuldender ELK-stakken. Det bruges til at visualisere Elasticsearch-dokumenter og hjælper udviklere med at få hurtig indsigt i deres data gennem interaktive diagrammer, geospatiale data og grafer, der gør komplekse forespørgsler lette at forstå.
Du kan bruge Kibana til at søge, se og interagere med data gemt i Elasticsearch-indekser. Det hjælper dig også med at udføre avancerede dataanalyse og præsentere dine data i en række forskellige tabeller, diagrammer og kort.
Kibana understøtter flere metoder til at søge i dine data. De mest almindelige søgetyper er anført nedenfor:
| Søgetype | Brug |
|---|---|
| Fritekstsøgninger | Bruges til at søge efter en specifik streng. |
| Søgninger på feltniveau | Bruges til at søge efter en streng inden for et specifikt felt. |
| Logiske udsagn | Bruges til at kombinere søgninger til en logisk formulering. |
| Nærhedssøgninger | Bruges til at søge efter termer inden for en specifik tegnnærhed. |
Kibana tilbyder også en række effektive funktioner til at udforske indekserede data:
- Et kraftfuldt front-end dashboard, der visualiserer indekseret information fra Elasticsearch-klyngen.
- Muliggør søgning i realtid efter indekseret information.
- Giver dig mulighed for at søge, se og interagere med data gemt i Elasticsearch.
- Udfører forespørgsler på data og visualiserer resultater i diagrammer, tabeller og kort.
- Et konfigurerbart dashboard til at opdele og dimensionere Logstash logfiler i Elasticsearch.
- Giver historiske data i form af grafer, diagrammer og mere.
- Tilbyder dashboards i realtid, der er nemme at konfigurere.
Fordele og ulemper ved Kibana
Som ethvert værktøj har Kibana klare styrker, der forklarer dets popularitet:
- Nem visualisering af data.
- Fuldt integreret med Elasticsearch.
- Fungerer som et dedikeret visualiseringsværktøj.
- Tilbyder analyse, diagrammer, opsummering og fejlfinding i realtid.
- Giver en intuitiv og brugervenlig grænseflade.
- Tillader deling af snapshots af de logfiler, du har søgt i.
- Tillader lagring og administration af flere dashboards.
Det har også et par begrænsninger, man skal huske på:
- Det fungerer kun med Elasticsearch som datakilde.
- Det kan være en stejl læringskurve at bygge og finjustere komplekse dashboards.
Hvorfor loganalyse?
I cloudbaserede infrastrukturer er ydeevne og isolation meget vigtige.
Ydeevnen af virtuelle maskiner i skyen kan variere afhængigt af specifikke belastninger, miljøer og antallet af aktive brugere, så pålidelighed og nodefejl kan blive betydelige problemer.
A platform til loghåndtering kan overvåge alle disse problemer. Den kan også behandle operativsystemlogfiler, Nginx- og IIS-webserverlogfiler til trafikanalyse, applikationslogfiler og logfiler genereret på AWS (Amazon Web Services).
I sidste ende hjælper loghåndtering DevOps Ingeniører og systemadministratorer træffer bedre, datadrevne beslutninger. Derfor er loganalyse via Elastic Stack eller lignende værktøjer blevet afgørende.
ELK vs. Splunk
Et almindeligt spørgsmål er, hvordan ELK Stack sammenlignes med splunk, et populært kommercielt alternativ. Tabellen nedenfor opsummerer de vigtigste forskelle:
| ELK | splunk |
|---|---|
| ELK er et open source-værktøj. | Splunk er et kommercielt værktøj. |
| ELK tilbyder ikke Solaris bærbarhed på grund af Kibana. | Splunk tilbyder Solaris bærbarhed. |
| Behandlingshastigheden er strengt begrænset. | Tilbyder præcis og hurtig behandling. |
| ELK er en teknologistak skabt ud fra kombinationen af Elasticsearch, Logstashog Kibana. | Splunk er et proprietært værktøj, der tilbyder både on-premise og cloud-løsninger. |
| I ELK er søgning, analyse og visualisering kun mulige, når stakken er konfigureret. | Splunk er en komplet datahåndteringspakke lige fra starten. |
| ELK tilbyder begrænset indbygget integration med andre værktøjer. | Splunk er nyttigt til at opsætte integrationer med andre værktøjer. |
Casestudier
Mange kendte virksomheder bruger ELK Stack til at køre logging og analyser i stor skala. Eksemplerne nedenfor viser, hvordan det bruges i produktion.
Netflix
Netflix er i høj grad afhængig af ELK Stack til at overvåge og analysere sikkerhedsloggene for sine kundeserviceoperationer. Platformen gør det muligt Netflix indeksere, gemme og søge i dokumenter på tværs af mere end femten klynger bestående af cirka 800 noder.
Det professionelle netværkssite LinkedIn bruger ELK Stack til at overvåge ydeevne og sikkerhed. Deres team integrerede ELK med Kafka for at håndtere belastning i realtid, og operationen spænder over mere end 100 klynger på tværs af seks datacentre.
Tripwire
Tripwire, en verdensomspændende udbyder af Security Information and Event Management (SIEM), bruger ELK Stack til at understøtte analyse af informationspakkelogfiler.
Medium
Medium, den populære blogudgivelsesplatform, bruger ELK Stack til at fejlfinde produktionsproblemer og til at opdage DynamoDB hotspots. Stakken hjælper virksomheden med at understøtte 25 millioner unikke læsere og tusindvis af nye opslag hver uge.
Fordele og ulemper ved ELK Stack
Fordele
ELK-stakken tilbyder adskillige fordele, der forklarer dens brede anvendelse:
- Det fungerer bedst, når logfiler fra en virksomheds forskellige applikationer samles i en enkelt ELK-instans.
- Det giver omfattende indsigt fra den enkelte instans og fjerner behovet for at logge ind på hundredvis af separate datakilder.
- Hurtig installation på stedet.
- Nem at installere og skalerer både lodret og vandret.
- Elastic tilbyder mange sprogklienter, herunder Ruby, Python, PHP, Perl, .NET, Javaog JavaManuskript.
- Der findes biblioteker til mange programmerings- og scriptsprog.
Ulemper
Trods sine styrker har ELK Stack et par ulemper, man skal overveje:
- De forskellige komponenter kan blive vanskelige at håndtere, når du går videre til en mere kompleks opsætning.
- Der er en reel læringskurve, så forvent noget trial and error, efterhånden som du får erfaring.


