Logstash i Docker

Logstash I Docker



Logstash er en åpen kildekode-databehandlingspipeline som lar deg samle inn, behandle og videresende loggdata fra ulike kilder.

I denne opplæringen vil vi guide deg gjennom prosessen med å kjøre Logstash i en Docker-beholder med grunnleggende konfigurasjon.

Krav:

Før vi begynner med opplæringen, sørg for at du har følgende:







  1. Installert Docker på vertsmaskinen din (versjon 23 og nyere anbefales)
  2. Installert Docker Compose på maskinen din

Med de gitte kravene oppfylt, kan vi fortsette med opplæringen.



Sett opp Logstash-konfigurasjonsfilen

Logstash bruker konfigurasjonsfilene til å definere hvordan dataene tas inn, filtreres og sendes til utdataene. Det finnes en rekke alternativer du kan konfigurere som du kan referere til i den offisielle dokumentasjonen.



For eksempelet vårt fokuserer vi på den grunnleggende konfigurasjonen som tar inn dataene fra en loggfil, filtrerer dem for samsvarende oppføringer og sender ut dataene til en fil.





Lag en fil kalt 'logstash.conf' og legg til konfigurasjonen som følger:

input {
fil {
sti => '/var/log/apache/access.log'

start_posisjon => 'begynnelse'

sincedb_path => '/dev/null'

ignore_older => 0
}
}

filter {
hvis [melding] =~ 'FEIL' {
grok {
match => { 'beskjed' => '%{COMBINEDAPACHELOG}' }
}
}
}

utgang {
fil {
sti => '/var/log/apache/error_logs.log'
}
}

Den forrige filen definerer konfigurasjonen som vist i følgende:

  1. Inndataseksjonen – Inndatadelen bruker filinndataplugin for å lese Apache-loggfilen som ligger i /var/log/apache/access.log.
    • Vi setter deretter startposisjonen i begynnelsen som lar Logstash lese hele filen fra begynnelsen.
    • Sincedb_path – Denne parameteren lar oss deaktivere Logstashs sincedb-sporing ved å sette verdien til /dev/null. Dette sikrer at Logstash alltid leser fra begynnelsen av filen.
    • Ignore_older – Ved å sette verdien til denne parameteren til 0 kan Logstash behandle alle oppføringer i loggfilen.
  2. Filterdel – I filterdelen definerer vi filtermønsteret for å sjekke om loggmeldingen inneholder ordet ERROR. Du kan justere betingelsene for at filterblokkene skal filtrere for mer presise treff i filen.
    • Hvis betingelsen er oppfylt, bruker vi grok-filteret til å analysere Apache-logglinjen ved å bruke COMBINEDAPACHELOG-mønsteret som er et innebygd mønster i Logstash for å analysere Apache-loggene.
  3. Utdataseksjon – Denne delen lar oss definere utdataformatet for de samsvarende oppføringene.
    • I vårt tilfelle skriver vi dem til filen /var/log/apache/error_logs.log ved å bruke baneparameteren.

Dette bør gi oss en grunnleggende Logstash-konfigurasjon som lar oss demonstrere noen grunnleggende Logstash-funksjoner.

Se mer om hvordan du oppretter og konfigurerer Logstash-rørledningene i følgende dokumentasjonsressurs:

https://www.elastic.co/guide/en/logstash/current/configuration.html

Lag Dockerfilen

Når vi har definert Logstash-konfigurasjonene, kan vi fortsette og lære hvordan vi kjører beholderen. Inne i samme katalog som 'logstash.conf'-filen, lag en ny fil kalt 'Dockerfile'.

Rediger denne filen og legg til oppføringene som følger:

FRA docker.elastic.co/logstash/logstash:8.9.2

COPY logstash.conf /usr/share/logstash/pipeline/logstash.conf

I det gitte eksemplet definerer vi basisbildet som det offisielle Logstash-bildet ved å bruke versjon 8.9.2.

Vi kopierer deretter 'logstash.conf'-filen som vi opprettet til /usr/share/logstash/pipeline/logstash.conf i bildet.

Bygg Docker-bildet

Deretter navigerer du til katalogen som inneholder konfigurasjonsfilen for Dockerfile og Logstash. Kjør følgende kommando for å bygge bildet:

$ dockerbygg -t tilpasset-logstash-bilde .

Kjør Logstash-beholderen

Nå som vi bygde Docker-bildet, kan vi kjøre en Logstash-beholder ved å bruke Docker 'run'-kommandoen som følger:

$ docker run -d --Navn logstash-server custom-logstash-image

Dette skal kjøre Logstash-beholderen ved å bruke bildet som vi bygde i forrige trinn.

Bekreft Logstash-beholderloggene

For å bekrefte at Logstash kjører riktig, kan du sjekke beholderloggene ved å bruke følgende kommando:

$ docker logger < container_name >

Produksjon:

Konklusjon

I denne opplæringen lærte du hvordan du raskt kan sette opp en Logstash-server som kjører som Docker ved hjelp av en tilpasset konfigurasjonsfil. Vi anbefaler å sjekke dokumentasjonen på bildeparametrene og konfigurasjonsalternativene.