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.

  • 🧩 Stakroller: Elasticsearch gemmer og indekserer data, Logstash processer og sender logs, og Kibana visualiserer resultaterne.
  • 🔎 Elastiksøgning: En Lucene-baseret NoSQL-søgemaskine, der indekserer heterogene data og returnerer resultater i næsten realtid i fuldtekst via en REST API.
  • 🛠️ Logstash: En pipeline, der indtager, filtrerer og transformerer logs fra mange kilder, før de føres ind i Elasticsearch.
  • 📊 Kibana: Et webdashboard, der omdanner indekserede data til interaktive diagrammer, kort og grafer til hurtig udforskning.
  • 📦 Elastisk stak: Lightweight Beats-afskibere indsamler data i udkanten af ​​markedet, hvilket fik Elastic til at omdøbe ELK til Elastic Stack.
  • 🏢 Produktionsbrug: Netflix, LinkedIn og Medium kører ELK på tværs af store klynger til logføring, sikkerhed og overvågning.
  • ⚖️ ELK versus Splunk: ELK er gratis og open source, mens Splunk er en kommerciel platform med hurtigere behandling og bredere integrationer.

ELK Stack-arkitektur, der viser hvordan Kibana, Logstashog Elasticsearch arbejder sammen om centraliseret logging og analyse

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.

ELK Stack-arkitekturdiagram, der viser Logstash, Elasticsearch og Kibana dataflow

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.

ELK Stack-arkitektur med Beats tilføjet til dataindsamling

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.

LinkedIn

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.

Ofte Stillede Spørgsmål

Beats er lette, open source-dataforsendelser, der er installeret som agenter på servere. Filebeat videresender logfiler, og Metricbeat indsamler systemmålinger. De sender data direkte til Elasticsearch eller via LogstashTilføjelse af Beats til dataindsamling førte til, at Elastic omdøbte ELK Stack til Elastic Stack.

ELK står for Elasticsearch, Logstashog Kibana. Da Elastic tilføjede Beats, deres familie af lette datatransportører, blev det kombinerede produkt omdøbt til Elastic Stack. Elastic Stack beskriver derfor de samme tre værktøjer plus Beats og ekstra funktioner såsom sikkerhed og maskinlæring.

Ja. Elasticsearch, Logstash, og Kibana er gratis at downloade. Siden 2024 har Elastic tilbudt Elasticsearch og Kibana under open source AGPLv3-licensen, sammen med SSPL og Elastic-licensen. Avancerede funktioner som maskinlæring og alarmering kræver et betalt abonnementsniveau.

Elasticsearch er et skemafleksibelt, dokumentorienteret NoSQL-lager bygget på Apache Lucene og forespørges via en REST API. Relationelle databaser bruger faste tabeller, rækker og SQL med ACID-transaktioner. Elasticsearch er optimeret til fuldtekstsøgning og næsten realtidsanalyse i stedet for streng transaktionel konsistens.

Produktionsnoder har typisk brug for mindst 16 GB RAM, hvor JVM-heapen er indstillet til omkring 50 procent af hukommelsen og holdes under cirka 30 GB. Små test- eller standalone-opsætninger kører på mindre. Beats og Logstash kræver langt færre ressourcer end Elasticsearch.

Grok er en Logstash filter-plugin, der analyserer ustrukturerede loglinjer til strukturerede, navngivne felter ved hjælp af genanvendelige mønstre bygget på regulære udtryk. Det bruges i vid udstrækning til f.eks.tractidsstempler, IP-adresser og statuskoder fra webserver- og applikationslogfiler, før de indekseres i Elasticsearch.

Elasticsearch inkluderer indbygget maskinlæring, der modellerer normal logadfærd og automatisk markerer anomalier. Disse AIOps-funktioner grupperer lignende meddelelser, registrerer usædvanlige mængder og fremskynder rodårsagsanalyse, hvilket reducerer den gennemsnitlige tid til løsning. Ingeniører bør stadig gennemgå markerede hændelser, før de handler på dem.

Ja. Værktøjer som f.eks. ChatGPT og GitHub Copilot kan udkaste Logstash grok-mønstre, Elasticsearch Query DSL og Kibana-indstillinger fra en kort prompt. Test altid genererede pipelines, da AI kan referere til forældede feltnavne eller forældet syntaks.

Opsummer dette indlæg med: