Elasticsearch og systemer for fulltekstsøk · leksjon

Logstash for datainntak

Lær å bruke Logstash til å samle inn, analysere og transformere data fra ulike kilder før de indekseres i Elasticsearch.

Leksjon 2 av 412 trinn

Logstash for datainntak er en gratis leksjon i Elasticsearch og systemer for fulltekstsøk på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Elasticsearch og systemer for fulltekstsøk, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Elasticsearch og systemer for fulltekstsøk inneholder totalt 4 leksjoner.

Introduksjon til Logstash

Velkommen til Logstash! Det er en kraftig datainnsamlingsmotor med åpen kildekode og støtte for datapipelining i sanntid. Det er en viktig del av Elastic Stack (ELK-stakken), sammen med Elasticsearch og Kibana.

Tenk på Logstash som «L»-en i ELK. Oppgaven er å hente inn data fra ulike kilder, behandle dem og deretter sende dem til en «stash» (ofte Elasticsearch) for lagring og analyse.

Logstash-pipelinen

Logstash fungerer ved å behandle data gjennom en pipeline. Denne pipelinen består av tre hovedtrinn:

  • Input: Her samles data inn fra kilden.
  • Filter: Her behandles, analyseres og transformeres dataene.
  • Output: Her sendes de behandlede dataene til målet.

Dataene flyter sekvensielt fra input via filter til output, noe som gir fleksibel og kraftig databehandling.

Input-trinnet: Samle inn data

Input-trinnet er ansvarlig for å samle inn data fra ulike kilder. Logstash støtter et bredt utvalg av input-pluginer, slik at det kan koble seg til nesten alle datakilder.

Vanlige input-kilder inkluderer:

  • Filer: Leser logger fra disken.
  • Beats: Mottar data fra lette datatransportører som Filebeat eller Metricbeat.
  • HTTP/TCP/UDP: Lytter etter nettverkstrafikk.
  • Databaser: Henter data fra relasjonsdatabaser.

Input-eksempel: Lese filer

Her er et enkelt konfigurasjonsutdrag for Logstash som bruker file-input-pluginen. Det forteller Logstash å lese alle .log-filer fra den angitte katalogen.

type-feltet hjelper med å kategorisere de innkommende hendelsene, noe som kan være nyttig senere i filtre eller utdata.

input {
  file {
    path => "/var/log/*.log"
    type => "syslog"
    start_position => "beginning"
  }
}

Filtertrinnet: Transformere data

Filter-trinnet er der magien skjer! Her analyserer, endrer og beriker du rådataene før de sendes til målet.

Filter-pluginer kan:

  • Analysere ustrukturerte data: For eksempel Apache-logger ved hjelp av Grok.
  • Endre felt: Gi felt nye navn, fjerne felt eller legge til nye felt.
  • Legge til geografiske data: Basert på IP-adresser ved hjelp av GeoIP.
  • Utføre betinget logikk: Behandle data forskjellig basert på innholdet.

Filtereksempel: Grok-parser

grok-filteret er svært kraftig for å analysere ustrukturerte loggdata og gjøre dem om til strukturerte felt. Det bruker regulære uttrykk, men med forhåndsdefinerte mønstre for vanlige loggformater.

Dette eksemplet bruker mønsteret COMBINEDAPACHELOG til å analysere en typisk logglinje fra en Apache-webserver og hente ut felt som IP-adresse, tidsstempel, forespørsel og statuskode.

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
}

Output-trinnet: Sende data

Til slutt er det i output-trinnet Logstash sender de behandlede hendelsene. En hendelse kan sendes til flere output-mål samtidig.

Vanlige output-mål inkluderer:

  • Elasticsearch: Det vanligste målet for videre indeksering og søking.
  • Stdout: For feilsøking og testing av pipelinen.
  • File: Skriver behandlede data til en ny fil.
  • Kafka/Redis: For kølegging eller videre behandling i andre systemer.

Output-eksempel: Til Elasticsearch

Dette er en standard output-konfigurasjon for å sende de behandlede dataene dine til en Elasticsearch-klynge. Du angir hosts (adressene til Elasticsearch-nodene dine) og navnet på index.

Syntaksen %{+YYYY.MM.dd} oppretter dynamisk daglige indekser, noe som er vanlig praksis for tidsseriedata.

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "my-logs-%{+YYYY.MM.dd}"
  }
}

Bygge en komplett pipeline

La oss nå kombinere alle de tre trinnene i én komplett Logstash-konfigurasjonsfil. Denne pipelinen leser tilgangslogger fra Nginx, analyserer dem med Grok og sender deretter de strukturerte dataene til Elasticsearch.

Denne konfigurasjonen lagres vanligvis som en .conf-fil, for eksempel nginx-pipeline.conf.

input {
  file {
    path => "/var/log/nginx/access.log"
    start_position => "beginning"
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "nginx-access-%{+YYYY.MM.dd}"
  }
}

Kjøre Logstash

For å kjøre Logstash-pipelinen utfører du vanligvis kommandolinjeverktøyet logstash og angir konfigurasjonsfilen.

Før du kjører den i praksis, er det lurt å teste konfigurasjonsfilen for syntaksfeil ved hjelp av flagget --config.test_and_exit. Dette sikrer at pipelinen er gyldig før den behandler data.

bin/logstash -f nginx-pipeline.conf --config.test_and_exit

# To run the pipeline
bin/logstash -f nginx-pipeline.conf

Rask kontroll

Hvilke av følgende påstander om trinnene i Logstash-pipelinen er RIKTIGE?

Logstash – oppsummering

I denne leksjonen utforsket vi Logstash, en viktig del av Elastic Stack for datainnhenting. Vi lærte om det grunnleggende pipeline-konseptet, som består av trinnene input, filter og output.

Du forstår nå hvordan Logstash samler inn data fra ulike kilder, transformerer dem ved hjelp av effektive filtre som Grok og deretter sender dem til mål som Elasticsearch. Denne funksjonaliteten er avgjørende for å klargjøre ulike data for effektivt søk og analyse.

Gratis å komme i gang

Lær deg Elasticsearch og systemer for fulltekstsøk med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Logstash for datainntak» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Elasticsearch og systemer for fulltekstsøk, inkludert «Logstash for datainntak», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Elasticsearch og systemer for fulltekstsøk inneholder totalt 4 leksjoner.

Hva lærer jeg i «Logstash for datainntak»?

Lær å bruke Logstash til å samle inn, analysere og transformere data fra ulike kilder før de indekseres i Elasticsearch. Du øver på Elasticsearch og systemer for fulltekstsøk med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Elasticsearch og systemer for fulltekstsøk?

Ingen tidligere erfaring er nødvendig. Elasticsearch og systemer for fulltekstsøk på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Logstash for datainntak»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Elasticsearch og systemer for fulltekstsøk-leksjonen?

Ja. Alle Elasticsearch og systemer for fulltekstsøk-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Kibana for visualisering
  2. Logstash for datainntak
  3. Integrasjon med applikasjoner (klienter)
  4. Beats for lettvektsdataoverføring
← Tilbake til Elasticsearch og systemer for fulltekstsøk