Logstash in Docker

Logstash In Docker



Logstash er en open source databehandlingspipeline, der giver dig mulighed for at indsamle, behandle og videresende logdata fra forskellige kilder.

I denne vejledning vil vi guide dig gennem processen med at køre Logstash i en Docker-container med grundlæggende konfiguration.

Krav:

Før vi går i gang med selvstudiet, skal du sikre dig, at du har følgende:







  1. Installeret Docker på din værtsmaskine (version 23 og nyere anbefales)
  2. Installeret Docker Compose på din maskine

Med de givne krav opfyldt, kan vi fortsætte med selvstudiet.



Konfigurer Logstash-konfigurationsfilen

Logstash bruger konfigurationsfilerne til at definere, hvordan data indtages, filtreres og sendes til outputtet. Der er forskellige muligheder, som du kan konfigurere, som du kan referere til i den officielle dokumentation.



For vores eksempel fokuserer vi på den grundlæggende konfiguration, der indtager dataene fra en logfil, filtrerer dem for de matchende poster og udsender dataene til en fil.





Opret en fil kaldet 'logstash.conf', og tilføj konfigurationen som følger:

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

start_position => 'starten'

sincedb_sti => '/dev/null'

ignore_older => 0
}
}

filter {
hvis [besked] =~ 'FEJL' {
grok {
match => { 'besked' => '%{COMBINEDAPACHELOG}' }
}
}
}

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

Den forrige fil definerer konfigurationen som vist i følgende:

  1. Input sektion – Input sektionen bruger filinput plugin til at læse Apache log filen placeret i /var/log/apache/access.log.
    • Vi sætter derefter startpositionen i begyndelsen, hvilket giver Logstash mulighed for at læse hele filen fra begyndelsen.
    • Sincedb_path – Denne parameter giver os mulighed for at deaktivere Logstashs sincedb-sporing ved at indstille værdien til /dev/null. Dette sikrer, at Logstash altid læser fra begyndelsen af ​​filen.
    • Ignore_older – Indstilling af værdien af ​​denne parameter til 0 tillader Logstash at behandle alle indtastninger i logfilen.
  2. Filtersektion – I filtersektionen definerer vi filtermønsteret for at kontrollere, om logmeddelelsen indeholder ordet ERROR. Du kan justere betingelserne for, at filterblokkene filtrerer for mere præcise matchninger i filen.
    • Hvis betingelsen er opfyldt, bruger vi grok-filteret til at parse Apache-loglinjen ved hjælp af COMBINEDAPACHELOG-mønsteret, som er et indbygget mønster i Logstash til at parse Apache-logfilerne.
  3. Outputsektion – Denne sektion giver os mulighed for at definere outputformatet for de matchende poster.
    • I vores tilfælde skriver vi dem til filen /var/log/apache/error_logs.log ved hjælp af stiparameteren.

Dette skulle give os en grundlæggende Logstash-konfiguration, der giver os mulighed for at demonstrere nogle grundlæggende Logstash-funktioner.

Se venligst mere om oprettelse og konfiguration af Logstash-pipelines i den følgende medfølgende dokumentationsressource:

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

Opret Dockerfilen

Når vi har defineret Logstash-konfigurationerne, kan vi fortsætte og lære at køre containeren. Inde i samme mappe som 'logstash.conf'-filen skal du oprette en ny fil kaldet 'Dockerfile'.

Rediger denne fil og tilføj posterne som følger:

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

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

I det givne eksempel definerer vi basisbilledet som det officielle Logstash-billede ved brug af version 8.9.2.

Vi kopierer derefter filen 'logstash.conf', som vi oprettede, til /usr/share/logstash/pipeline/logstash.conf i billedet.

Byg Docker-billedet

Derefter skal du navigere til den mappe, der indeholder Dockerfile og Logstash-konfigurationsfilen. Kør følgende kommando for at bygge billedet:

$ docker bygning -t custom-logstash-image .

Kør Logstash-beholderen

Nu hvor vi har bygget Docker-billedet, kan vi køre en Logstash-container ved hjælp af Docker-kommandoen 'run' som følger:

$ docker-løb -d --navn logstash-server custom-logstash-image

Dette skulle køre Logstash-beholderen ved hjælp af det billede, vi byggede i det forrige trin.

Bekræft Logstash Container Logs

For at kontrollere, at Logstash kører korrekt, kan du kontrollere containerlogfilerne ved hjælp af følgende kommando:

$ docker logs < containernavn >

Produktion:

Konklusion

I denne vejledning lærte du, hvordan du hurtigt kan konfigurere en Logstash-server, der kører som Docker ved hjælp af en brugerdefineret konfigurationsfil. Vi anbefaler at tjekke dokumentationen om billedparametre og konfigurationsmuligheder.