✅ [LOGSTASH] - QUÉ es LOGSTASH, CÓMO INSTALARLO | DOS EJEMPLOS PRACTICOS 🥇

Enviado por admin el Dom, 03/01/2021 - 08:40

✅ [LOGSTASH] - QUÉ es LOGSTASH, CÓMO INSTALARLO | DOS EJEMPLOS PRACTICOS 🥇

En esta entrada veremos que es Logstash, como instalarlo en una máquina con Ubuntu 18.04, y como realizar, mediante dos ejemplos prácticos, una carga de datos desde un fichero inicial a otro fichero destino, en tiempo real y aplicando operaciones de transformación y limpieza.

¿Qué es Logstash?

Es una herramienta de código abierto, desarrollada y mantenida por la empresa elastic. Cómo hemos visto en la entrada en la que os hablo del STACK ELK, Logstash  es la herramienta principal de elastic para realizar la cargar datos. No solo nos vale para importar los datos en Elasticsearch, si no que podremos cargar los datos previamente extraídos y transformados en varios destinos diferentes (bases de datos, fichero, elasticsearch, etc). Su capacidad de trabajar en tiempo real la sitúan en el top de las herramientas de código abierto utilizadas para realizar la ingesta de datos en plataformas Big Data.

En este vídeo veremos dos ejemplos prácticos de como leer los ficheros que se dejen en una ruta en concreto, y en tiempo real realizar una pequeñas operaciones de transformación y limpieza, para posteriormente guardar dichos datos enriquecidos en otro fichero. Comentar para aquellos que os iniciáis en esta herramienta que la configuración es uno de los mayores obstáculos a los que os enfrentareis al trabajar con esta herramienta. Si bien se han realizado mejoras recientemente en la administración y configuración, esto aún puede ser complicado para los que estáis empezando.

Logstash está escrito en el lenguaje de programación JRuby que se ejecuta en la JVM, por lo que se puede ejecutar en diferentes plataformas. Recopila datos, de casi todos los tipos de fuentes, y de diferente tipología (logs, datos operacionales, datos analíticos, etc.) Estas fuentes de datos pueden ser bases de datos, ficheros, sensores, etc.

De entre todas las características, para no alargarnos en esta entrada resalto estas 6:

  • Te permite recopilar datos de diferentes fuentes y enviarlos a múltiples destinos.
  • Puede manejar todo tipo de datos.
  • Permite realizar la ingesta de datos en tiempo real.
  • Proporciona una variedad de filtros que ayudan al usuario a encontrar más significado en los datos analizándolos y transformándolos, consiguiendo de esta forma enriquecer dicha información.
  • Es una herramienta perfecta para trabajar con sensores IOT.

Las principales ventajas de utilizar esta herramienta para ingestar nuestros datos en una plataforma Big Data son los siguientes.

  • Proporciona múltiples complementos para analizar y transformar los datos en cualquier formato deseado por el usuario.
  • Facilita el procesamiento y la recopilación de datos de diferentes servidores.
  • Admite muchas bases de datos, protocolos de red y otros servicios como fuente de destino para los datos.

También considero necesario comentaros las principales desventajas de esta herramienta, de las cuales podemos destacar. 

  • Usa http, lo que afecta negativamente el procesamiento de los datos.
  • Trabajar con esta herramienta a veces puede ser un poco complejo, ya que necesita una buena comprensión y análisis de los datos de entrada.
  • Los filtros no son genéricos, por lo que es posible que el usuario deba encontrar la secuencia correcta de patrones para evitar errores en el análisis.
logstash

¿Cómo instalar Logstash?

Como comenté al principio de la entrada, ahora veremos como instalar en una máquina con Ubuntu 18.04. Si ya lo tienes instalado, y quieres pasar directamente a los ejemplos prácticos donde realizaré dos cargas de datos diferentes, puedes acceder a ellas directamente más abajo en esta entrada.

Lo primero será conectarnos a la máquina y hacer login como root. Una vez dentro, realicemos estos pasos e iremos a la carpeta dónde nos apetezca realizar la instalación de la herramienta, en mi caso será /tmp

> cd /tmp

Aquí la descargaremos de la web oficial mediante el comando wget

> wget https://artifacts.elastic.co/downloads/logstash/logstash-7.5.2.deb

Procederemos a su instalación mediante el comando dpkg, tal como se muestra por pantalla

> sudo dpkg -i logstash-7.5.2.deb

Si tuviéramos que hacer alguna modificación en la configuración de Logstash sería en /etc/logstash/logstash.yml

> sudo nano /etc/logstash/logstash.yml

Línea:
# http.host: "127.0.0.1"

A continuación, configuramos Logstash para que se inicie cada vez que se enciende la máquina.

> sudo systemctl enable logstash.service

Lo arrancaremos mediante el comando systemctl start

> sudo systemctl start logstash.service

Comprobaremos que logstash está funcionando correctamente mediante el comando systemctl status

> sudo systemctl status logstash.service

En este momento estamos listos para empezar a trabajar con esta herramienta de ingesta de datos.

Ejemplos prácticos

Empezaremos creando nuestro fichero logstash.conf donde configuraremos la extracción de datos, filtrado y carga en otro fichero destino. Este, se compone de tres partes: 

  1. Input: configuración de donde vamos a sacar los datos.
  2. Filter: configuración de como vamos a transformar y limpiar los datos.
  3. Output: configuración de donde vamos a guardar los datos.

Cómo he explicado al principio, el objetivo de este ejemplo práctico será dejar en una ruta un fichero y que automáticamente se carguen los datos en otro fichero habiendo realizado alguna modificación en los datos.

Ejemplo práctico 1

input {

    file {
        path => "/home/logstash/input/logs.log"
        start_position => beginning
    }
}

filter {

}

output {
    file {
        path => "/home/logstash/output/logs.log"
    }
}

 

Ejemplo práctico 2

input {
    file {
        path => "/home/logstash/input/logs.log"
        start_position => beginning
    }
}

filter {

}

output {
    file {
        path => "/home/logstash/output/logs.log"
        codec => line { format => "Solo el mensaje: %{message}"}
    }
}


Para ejecutar el servicio, ejecutaremos

> ./usr/shared/logstash/bin/logstash -f ./logstash.conf

Os dejo en este vídeo los ejemplos prácticos de como se realiza la carga.