Logstash en Docker

Logstash En Docker



Logstash es una canalización de procesamiento de datos de código abierto que le permite recopilar, procesar y reenviar datos de registro de varias fuentes.

En este tutorial, lo guiaremos a través del proceso de ejecución de Logstash en un contenedor Docker con una configuración básica.

Requisitos:

Antes de comenzar con el tutorial, asegúrese de tener lo siguiente:







  1. Docker instalado en su máquina host (se recomienda la versión 23 y superior)
  2. Docker Compose instalado en su máquina

Una vez cumplidos los requisitos dados, podemos continuar con el tutorial.



Configurar el archivo de configuración de Logstash

Logstash utiliza los archivos de configuración para definir cómo se ingieren, filtran y envían los datos a la salida. Hay una variedad de opciones que puede configurar, como puede consultar en la documentación oficial.



Para nuestro ejemplo, nos centramos en la configuración básica que ingiere los datos de un archivo de registro, los filtra en busca de registros coincidentes y envía los datos a un archivo.





Cree un archivo llamado 'logstash.conf' y agregue la configuración de la siguiente manera:

aporte {
archivo {
camino => '/var/log/apache/access.log'

posición_inicial => 'comienzo'

desdedb_path => '/desarrollador/nulo'

ignorar_mayor => 0
  }
}

filtrar {
si [mensaje] =~ 'ERROR' {
asimilar {
coincidencia => { 'mensaje' => '%{COMBINEDAPACHELOG}' }
    }
  }
}

producción {
archivo {
camino => '/var/log/apache/error_logs.log'
  }
}

El archivo anterior define la configuración como se muestra a continuación:

  1. Sección de entrada: la sección de entrada utiliza el complemento de entrada de archivos para leer el archivo de registro de Apache ubicado en /var/log/apache/access.log.
    • Luego configuramos la posición inicial al principio, lo que permite a Logstash leer el archivo completo desde el principio.
    • Sincedb_path: este parámetro nos permite deshabilitar el seguimiento sincedb de Logstash estableciendo el valor en /dev/null. Esto garantiza que Logstash siempre lea desde el principio del archivo.
    • Ignore_older: establecer el valor de este parámetro en 0 permite a Logstash procesar todas las entradas del archivo de registro.
  2. Sección de filtro: en la sección de filtro, definimos el patrón de filtro para verificar si el mensaje de registro contiene la palabra ERROR. Puede ajustar las condiciones de los bloques de filtro para filtrar coincidencias más precisas en el archivo.
    • Si se cumple la condición, usamos el filtro grok para analizar la línea de registro de Apache usando el patrón COMBINEDAPACHELOG, que es un patrón integrado en Logstash para analizar los registros de Apache.
  3. Sección de salida: esta sección nos permite definir el formato de salida para las entradas coincidentes.
    • En nuestro caso, los escribimos en el archivo /var/log/apache/error_logs.log usando el parámetro de ruta.

Esto debería proporcionarnos una configuración básica de Logstash que nos permita demostrar algunos funcionamientos básicos de Logstash.

Consulte más información sobre la creación y configuración de canalizaciones de Logstash en el siguiente recurso de documentación proporcionado:

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

Crear el archivo Docker

Una vez que definamos las configuraciones de Logstash, podemos continuar y aprender cómo ejecutar el contenedor. Dentro del mismo directorio que el archivo “logstash.conf”, cree un nuevo archivo llamado “Dockerfile”.

Edite este archivo y agregue las entradas de la siguiente manera:

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

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

En el ejemplo dado, definimos la imagen base como la imagen oficial de Logstash usando la versión 8.9.2.

Luego copiamos el archivo “logstash.conf” que creamos en /usr/share/logstash/pipeline/logstash.conf en la imagen.

Construya la imagen de Docker

A continuación, navegue hasta el directorio que contiene el archivo de configuración de Dockerfile y Logstash. Ejecute el siguiente comando para construir la imagen:

$ construcción de ventana acoplable -t imagen-logstash-personalizada.

Ejecute el contenedor Logstash

Ahora que creamos la imagen de Docker, podemos ejecutar un contenedor Logstash usando el comando 'ejecutar' de Docker de la siguiente manera:

$ ejecución de la ventana acoplable -d --nombre imagen-logstash-personalizada del servidor logstash

Esto debería ejecutar el contenedor Logstash usando la imagen que creamos en el paso anterior.

Verificar los registros del contenedor Logstash

Para verificar que Logstash se esté ejecutando correctamente, puede verificar los registros del contenedor usando el siguiente comando:

$ registros acoplables < nombre_contenedor >

Producción:

Conclusión

En este tutorial, aprendió cómo configurar rápidamente un servidor Logstash que se ejecuta como Docker usando un archivo de configuración personalizado. Recomendamos consultar la documentación sobre los parámetros de la imagen y las opciones de configuración.