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:
- Installert Docker på vertsmaskinen din (versjon 23 og nyere anbefales)
- 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:
- 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.
- 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.
- 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.2COPY 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-imageDette 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.