Logstash a Docker

Logstash A Docker



Logstash és una canalització de processament de dades de codi obert que us permet recollir, processar i reenviar les dades de registre de diverses fonts.

En aquest tutorial, us guiarem pel procés d'execució de Logstash en un contenidor Docker amb una configuració bàsica.

Requisits:

Abans de començar amb el tutorial, assegureu-vos que teniu el següent:







  1. Docker instal·lat a la vostra màquina amfitrió (es recomana la versió 23 i superior)
  2. Docker Compose instal·lat a la vostra màquina

Amb els requisits establerts, podem continuar amb el tutorial.



Configureu el fitxer de configuració de Logstash

Logstash utilitza els fitxers de configuració per definir com s'ingereixen, es filtren i s'envien les dades a la sortida. Hi ha varietat d'opcions que podeu configurar com podeu consultar a la documentació oficial.



Per al nostre exemple, ens centrem en la configuració bàsica que ingereix les dades d'un fitxer de registre, les filtra per als registres coincidents i envia les dades a un fitxer.





Creeu un fitxer anomenat 'logstash.conf' i afegiu la configuració de la següent manera:

entrada {
dossier {
camí => '/var/log/apache/access.log'

posició_inici => 'inici'

sincedb_path => '/dev/null'

ignore_older => 0
}
}

filtre {
si [missatge] =~ 'ERROR' {
grok {
coincideix => { 'missatge' => '%{COMBINEDAPACHELOG}' }
}
}
}

sortida {
dossier {
camí => '/var/log/apache/error_logs.log'
}
}

El fitxer anterior defineix la configuració tal com es mostra a continuació:

  1. Secció d'entrada: la secció d'entrada utilitza el connector d'entrada del fitxer per llegir el fitxer de registre d'Apache situat a /var/log/apache/access.log.
    • A continuació, establim la posició inicial al principi, cosa que permet a Logstash llegir tot el fitxer des del principi.
    • Sincedb_path: aquest paràmetre ens permet desactivar el seguiment sincedb de Logstash establint el valor a /dev/null. Això garanteix que Logstash sempre llegeix des del principi del fitxer.
    • Ignore_older: establir el valor d'aquest paràmetre a 0 permet a Logstash processar totes les entrades del fitxer de registre.
  2. Secció de filtres: a la secció de filtres, definim el patró de filtre per comprovar si el missatge de registre conté la paraula ERROR. Podeu ajustar les condicions perquè els blocs de filtre es filtren per obtenir coincidències més precises al fitxer.
    • Si es compleix la condició, utilitzem el filtre grok per analitzar la línia de registre d'Apache mitjançant el patró COMBINEDAPACHELOG que és un patró integrat a Logstash per analitzar els registres d'Apache.
  3. Secció de sortida: aquesta secció ens permet definir el format de sortida per a les entrades coincidents.
    • En el nostre cas, els escrivim al fitxer /var/log/apache/error_logs.log mitjançant el paràmetre path.

Això ens hauria de proporcionar una configuració bàsica de Logstash que ens permeti demostrar alguns funcionaments bàsics de Logstash.

Consulteu més informació sobre la creació i la configuració de les canalitzacions de Logstash al recurs de documentació proporcionat següent:

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

Creeu el Dockerfile

Un cop definides les configuracions de Logstash, podem continuar i aprendre a executar el contenidor. Dins del mateix directori que el fitxer 'logstash.conf', creeu un fitxer nou anomenat 'Dockerfile'.

Editeu aquest fitxer i afegiu les entrades de la següent manera:

DES de docker.elastic.co/logstash/logstash:8.9.2

COPIAR logstash.conf /usr/share/logstash/pipeline/logstash.conf

En l'exemple donat, definim la imatge base com la imatge oficial de Logstash utilitzant la versió 8.9.2.

A continuació, copiem el fitxer 'logstash.conf' que hem creat al /usr/share/logstash/pipeline/logstash.conf de la imatge.

Creeu la imatge Docker

A continuació, aneu al directori que conté el fitxer de configuració Dockerfile i Logstash. Executeu l'ordre següent per crear la imatge:

$ construcció docker -t imatge-logstash-personalitzada.

Executeu el contenidor Logstash

Ara que hem creat la imatge de Docker, podem executar un contenidor Logstash mitjançant l'ordre 'executa' de Docker de la següent manera:

$ córrer docker -d --nom logstash-server-imatge-logstash-personalitzada

Això hauria d'executar el contenidor Logstash utilitzant la imatge que vam crear al pas anterior.

Verifiqueu els registres del contenidor de Logstash

Per verificar que Logstash s'executa correctament, podeu comprovar els registres del contenidor mitjançant l'ordre següent:

$ registres de docker < nom_contenidor >

Sortida:

Conclusió

En aquest tutorial, heu après com podeu configurar ràpidament un servidor Logstash que s'executi com a Docker mitjançant un fitxer de configuració personalitzat. Recomanem consultar la documentació sobre els paràmetres de la imatge i les opcions de configuració.