RousselTMLEARNING

Observabilidad

Logstash: función, concepto de pipeline e instalación

Versión escrita de las lecciones en vídeo: para qué sirve Logstash, cómo funciona un pipeline (inputs, filtros, salidas, cola, workers) y cómo instalarlo.

1. Introducción #

La función de Logstash.

Para qué sirve Logstash #

Logstash es el motor de procesamiento de la suite Elastic: recibe datos de fuentes muy variadas, los transforma (análisis, limpieza, enriquecimiento) y los envía a uno o varios destinos. Está escrito en Java y se amplía con más de 200 plugins.

  • Centralizar logs heterogéneos (syslog, archivos, bases de datos, colas).
  • Estructurar mensajes en bruto en campos ECS.
  • Enrutar hacia varios destinos (Elasticsearch, S3, Kafka).

2. El concepto de pipeline #

Inputs, filtros, salidas.

Las tres etapas #

Inputs, cola, filtros, salidas.
input  { beats { port => 5044 } }
filter {
  grok { match => { "message" => "%{COMBINEDAPACHELOG}" } }
  date { match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ] }
}
output { elasticsearch { hosts => ["https://es:9200"] data_stream => true } }

Cada evento pasa por el input, espera en la cola (en memoria por defecto) y después un worker le aplica los filtros en orden y lo envía a las salidas. Varios workers trabajan en paralelo sobre lotes de eventos.

Para saber: Las condiciones (if [campo] == "valor" { … }) permiten aplicar filtros o salidas solo a una parte de los eventos.

3. Instalación #

Paquetes, archivo, Docker.

Instalar #

# Debian / Ubuntu
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpg
echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/9.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-9.x.list
sudo apt update && sudo apt install logstash
sudo systemctl enable --now logstash

# Docker
docker run --rm -it -v $PWD/pipeline:/usr/share/logstash/pipeline docker.elastic.co/logstash/logstash:9.1.0
ArchivoFunción
/etc/logstash/logstash.ymlajustes del nodo (rutas, workers, API)
/etc/logstash/pipelines.ymllista de pipelines
/etc/logstash/conf.d/*.confconfiguración de los pipelines
/etc/logstash/jvm.optionsmemoria de la JVM
Buena práctica: Prueba la configuración antes de cada reinicio: /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t.

Artículos relacionados

Logstash: las entradas (inputs) y las salidas (outputs)

Versión escrita de las lecciones en vídeo: los inputs habituales (beats, file, tcp/udp, http, kafka, jdbc) y …

Logstash: los filtros, grok y dissect

Versión escrita de las lecciones en vídeo: los filtros esenciales (mutate, date, json, kv, drop), el plugin g…

Logstash: gestionar los plugins y adoptar Elastic Common Schema (ECS)

Versión escrita de las lecciones en vídeo: listar, instalar, actualizar y empaquetar sin conexión los plugins…

Seguir aprendiendo

Apoyar

♥ APOYAR

Apoya RousselTM Learning

Los cursos, artículos, prácticas y certificados siguen siendo gratuitos y sin publicidad intrusiva. Una contribución libre, por el importe que elijas, financia el alojamiento, los entornos de prácticas y nuevos contenidos.

Contribuir con PayPal Importe libre · tarjeta o cuenta PayPalMás información
QR code PayPal
O escanea este código QR con tu teléfono

¡Gracias, cada contribución cuenta!