OpenWebinars

Big Data

Cómo usar Logstash para procesar datos en la suite ELK

La suite ELK (Elasticsearch, Logstash y Kibana) se ha convertido en uno de los estándares más utilizados para la gestión y análisis de datos. Dentro de ella, Logstash cumple un papel clave: recoger información de múltiples fuentes, transformarla y enviarla a sistemas de almacenamiento o visualización. En este artículo aprenderás cómo usar Logstash dentro del ecosistema ELK y cómo crear tu primer pipeline básico para procesar datos de manera práctica.

Ricardo López Millán

Ricardo López Millán

Profesional en Data Science, especializado en el ecosistema Python y Machine Learning.

Lectura 6 minutos

Publicado el 10 de octubre de 2025

Compartir

En cualquier organización moderna, los datos se han convertido en un recurso estratégico. Sin embargo, la mayoría de las veces no llegan en un formato listo para su análisis: proceden de sistemas heterogéneos, con estructuras distintas y volúmenes cada vez mayores.

La suite ELK (Elasticsearch, Logstash y Kibana) se ha consolidado como una de las herramientas más utilizadas para resolver este desafío. Ofrece un ecosistema completo para recoger, procesar, almacenar y visualizar información, con un enfoque flexible y escalable.

Dentro de este conjunto, Logstash destaca por su capacidad de ingestar datos desde múltiples fuentes, transformarlos mediante filtros y enviarlos a destinos como Elasticsearch u otros sistemas. Es el motor que convierte datos dispersos en información lista para ser consultada y analizada.

En este artículo exploraremos cómo usar Logstash dentro de la suite ELK, desde su instalación básica hasta la creación de un primer pipeline sencillo de entrada, filtro y salida. El objetivo es que puedas dar tus primeros pasos con esta herramienta de manera práctica y aplicada.

Qué es la suite ELK y cuál es el papel de Logstash

La suite ELK es un conjunto de herramientas desarrollado por Elastic que se ha convertido en referente para el análisis y la gestión de datos en tiempo real. Su nombre proviene de las siglas de sus tres componentes principales: Elasticsearch, Logstash y Kibana. En conjunto, ofrecen una solución potente y escalable para procesar grandes volúmenes de información de manera centralizada.

Componentes principales de ELK: Elasticsearch, Logstash y Kibana

  • Elasticsearch: es el motor de búsqueda y análisis, diseñado para indexar datos y permitir consultas rápidas y flexibles. Su documentación oficial está disponible en la página de Elasticsearch.
  • Logstash: es la herramienta encargada de la ingesta y transformación de datos. Actúa como un pipeline que conecta fuentes de información con Elasticsearch u otros destinos. Puedes consultar la documentación oficial de Logstash.
  • Kibana: es la interfaz de visualización que permite explorar y representar los datos almacenados en Elasticsearch de manera gráfica. La guía oficial está en Kibana Documentation.

Cada uno de estos componentes cumple un rol específico, pero es la combinación de los tres lo que convierte a ELK en una solución completa de observabilidad y análisis.

Por qué Logstash es clave en el procesamiento de datos

El valor diferencial de Logstash reside en su capacidad para actuar como un intermediario inteligente entre las fuentes de datos y el sistema de almacenamiento. No solo recoge información, también la transforma mediante filtros que permiten limpiar, enriquecer y dar formato homogéneo a los datos.

Esto significa que, antes de llegar a Elasticsearch, la información ya está procesada de manera que los analistas y los sistemas pueden trabajar con ella sin inconsistencias ni ruido innecesario. En proyectos de observabilidad, seguridad o analítica, este paso marca la diferencia entre datos útiles y datos inservibles.

Casos de uso más comunes de ELK y Logstash

El ecosistema ELK, con Logstash como motor de ingesta, se aplica en múltiples escenarios:

  • Monitorización de sistemas y aplicaciones: centralizar logs de servidores, contenedores y aplicaciones para detectar errores o anomalías en tiempo real.
  • Análisis de seguridad (SIEM): recopilar y procesar eventos de red, firewalls o sistemas de detección de intrusos, mejorando la capacidad de respuesta frente a amenazas.
  • Business Intelligence en tiempo real: integrar datos de distintas fuentes (bases de datos, APIs, aplicaciones internas) y analizarlos de forma centralizada.
  • IoT y datos de sensores: procesar grandes volúmenes de datos procedentes de dispositivos conectados y transformarlos para su análisis.

Estos casos de uso muestran por qué ELK es una de las soluciones más extendidas para la gestión de información en entornos modernos: permite unificar datos dispersos y transformarlos en insights accionables.

Instalación básica de Logstash

Antes de crear un pipeline, el primer paso es instalar Logstash en tu sistema. La instalación es sencilla y está disponible para distintos entornos, lo que permite adaptarla tanto a entornos de desarrollo como de producción.

Requisitos previos y entorno recomendado

Para trabajar con Logstash necesitas un entorno que cumpla con algunos requisitos mínimos:

  • Java: Logstash está desarrollado en Java, por lo que necesitas tener instalada una versión actualizada de Java 11 o superior.
  • Sistema operativo: Logstash funciona en Linux, macOS y Windows, aunque en entornos de producción suele desplegarse en servidores Linux.
  • Recursos: al menos 2 GB de RAM disponibles y espacio suficiente en disco para manejar los datos procesados.

Asegurarte de cumplir con estos requisitos evita problemas de rendimiento o errores en la instalación.

Descarga e instalación paso a paso

Elastic proporciona paquetes oficiales que facilitan la instalación en distintas plataformas. La forma más habitual es usar los paquetes precompilados o los repositorios oficiales:

  • En Linux, puedes instalarlo desde los repositorios de Elastic.
  • En Windows y macOS, puedes descargar los binarios directamente desde la página oficial de Logstash.
# Importar la clave GPG de Elastic
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

# Instalar el repositorio de Elastic
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list

# Actualizar repositorios e instalar Logstash
sudo apt-get update
sudo apt-get install logstash

Con esta instalación tendrás Logstash disponible en tu sistema y listo para configurarse.

Verificación de la instalación

Una vez instalado, conviene comprobar que Logstash se ha configurado correctamente. Para ello, ejecuta el comando de versión, que mostrará la información de la instalación.

# Comprobar la versión instalada de Logstash
logstash --version

Si el sistema responde mostrando la versión instalada, significa que Logstash está operativo y listo para ejecutar tu primer pipeline.

Estructura y gestión de archivos en Logstash

Para sacar el máximo partido a Logstash no basta con instalarlo: es importante conocer la estructura de archivos y directorios donde se guardan las configuraciones y logs. Esta organización facilita la gestión de proyectos reales y evita errores al desplegar pipelines.

Archivos principales de configuración

Logstash utiliza varios archivos clave que conviene identificar desde el principio:

  • logstash.yml: archivo principal de configuración del servicio, donde se definen parámetros globales como la ruta de logs, pipelines por defecto, o la dirección de monitorización.
  • pipelines.yml: permite gestionar múltiples pipelines de manera centralizada. Aquí se especifican los archivos .conf que se cargarán en paralelo.
  • jvm.options: archivo donde se ajustan las opciones de memoria y parámetros de la JVM que ejecuta Logstash.

Cada uno de estos archivos se encuentra normalmente en el directorio config dentro de la instalación de Logstash.

Directorio conf.d y archivos .conf

El directorio conf.d es el lugar habitual para guardar los archivos .conf que definen los pipelines. Cada archivo puede representar un flujo de procesamiento independiente, aunque en producción se recomienda estructurarlos con nombres claros:

  • input_syslog.conf: pipeline encargado de recoger y parsear logs de sistema.
  • filter_enrichment.conf: pipeline que añade información adicional a los datos.
  • output_elasticsearch.conf: pipeline que envía resultados a Elasticsearch.

Organizar los pipelines de esta manera permite escalar configuraciones y reutilizar bloques en distintos entornos.

Logs y monitorización básica

Logstash genera registros que ayudan a depurar y comprobar el estado de los pipelines. Los más importantes son:

  • logs de ejecución: ubicados normalmente en el directorio logs, muestran errores, advertencias y mensajes de depuración.
  • dead letter queue (DLQ): almacena eventos que no pudieron procesarse correctamente para su posterior revisión.
  • API de monitoring: Logstash expone métricas a través de una API HTTP que permite consultar información sobre pipelines activos y rendimiento.

Conocer esta estructura básica es esencial para mantener entornos estables y facilitar el trabajo colaborativo en proyectos con varios pipelines.

Primer pipeline con Logstash: entrada, filtro y salida

Un pipeline de Logstash se compone de tres secciones: input, filter y output. La entrada define de dónde llegan los datos, los filtros transforman y enriquecen la información y la salida determina el destino final. La sintaxis se define en archivos .conf y la referencia oficial está en la documentación de Logstash.

Estructura de un pipeline en Logstash

La estructura mínima de un pipeline es declarativa. Cada bloque puede incluir varios plugins. Por ejemplo, input { stdin {} } para leer desde la consola, filter { grok { ... } mutate { ... } } para parsear y normalizar, y output { stdout {} elasticsearch { ... } } para enviar a varios destinos. Puedes consultar la guía de plugins en la referencia de plugins de Logstash.

Para tener una visión rápida de las opciones más habituales en Logstash, a continuación se muestra una tabla con ejemplos de inputs, filtros y outputs comunes. Esta referencia te servirá como guía práctica cuando empieces a diseñar tus propios pipelines.

Tipo Plugin común Uso principal Ejemplo de aplicación
Input file Leer datos desde archivos locales Ingestar logs de /var/log/syslog
Input beats Recibir datos de Filebeat Centralizar logs de múltiples servidores
Input jdbc Consultar bases de datos SQL Extraer registros periódicos para análisis
Filtro grok Parsear texto mediante expresiones Separar campos de un log de Apache
Filtro mutate Renombrar, convertir o eliminar campos Normalizar IDs y convertir valores numéricos
Filtro date Parsear y estandarizar fechas Convertir cadenas a formato ISO8601
Output stdout Mostrar resultados en consola Debug en fase de desarrollo
Output elasticsearch Indexar datos en Elasticsearch Crear índices diarios para eventos
Output file Guardar datos en un archivo Exportar resultados procesados en CSV

Esta tabla no sustituye la exploración de la lista oficial de plugins de Logstash, pero funciona como un mapa rápido de los recursos más usados en proyectos reales.

A continuación puedes ver un ejemplo básico de la estructura mínima de un pipeline en Logstash, que servirá como punto de partida para crear configuraciones más completas.

input {
  stdin {}
}

filter {
  # Filtros opcionales; se añadirán en el ejemplo práctico
}

output {
  stdout { codec => rubydebug }
}

Esta estructura hace que Logstash sea muy flexible: puedes combinar múltiples entradas y salidas, encadenando filtros para limpiar y enriquecer los datos.

Ejemplo práctico de configuración de entrada, filtro y salida

Crearemos un pipeline sencillo que:

  • Lee eventos JSON por stdin para facilitar las pruebas.
  • Normaliza tipos y campos con mutate.
  • Añade un timestamp si falta.
  • Imprime por stdout y envía a Elasticsearch.

Usaremos filtros mutate y date; la referencia de mutate está en la documentación del filtro mutate y la de date en date filter.

input {
  stdin { codec => json }
}

filter {
  # Asegurar tipos y normalizaciones básicas
  mutate {
    convert => { "amount" => "float" }
    rename  => { "userId" => "user_id" }
    strip   => ["message"]
  }

  # Si llega un campo @timestamp como string, parsearlo
  date {
    match => ["@timestamp", "ISO8601", "yyyy-MM-dd HH:mm:ss,SSS"]
    target => "@timestamp"
    timezone => "UTC"
  }

  # Si no llega @timestamp, crear uno ahora
  if !("@timestamp" in [@metadata]) and ![timestamp] {
    mutate { add_field => { "ingested_at" => "%{@timestamp}" } }
  }
}

output {
  stdout { codec => rubydebug }
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "events-%{+YYYY.MM.dd}"
    action => "index"
  }
}

Con este ejemplo tendrás un pipeline reproducible para validar tu entorno y la conexión con Elasticsearch.

Ejecución y validación del pipeline

Para ejecutar un pipeline, utiliza logstash -f pipeline.conf. Enviaremos un evento de prueba en formato JSON por la entrada estándar y verificaremos tanto la salida en consola como el índice creado en Elasticsearch. La salida a Elasticsearch usa el plugin oficial documentado en Elasticsearch output.

# Ejecutar el pipeline
logstash -f pipeline.conf

# En otra terminal, enviar un evento de prueba por stdin
echo '{"userId":"u-123","amount":"42.5","message":"  purchase completed  ","@timestamp":"2025-10-07T10:30:00Z"}' | logstash -f pipeline.conf

# Comprobar documentos en Elasticsearch (requiere curl)
curl -s "http://localhost:9200/events-*/_search?pretty&size=1"

Si ves el evento enriquecido en la consola y confirmas su indexación en Elasticsearch, tu entorno de ELK habrá procesado correctamente el primer flujo de datos.

Buenas prácticas para empezar con Logstash

Cuando empiezas a trabajar con Logstash es fácil cometer errores que afectan al rendimiento o a la claridad de las configuraciones. Adoptar buenas prácticas desde el inicio te permitirá mantener pipelines más estables y escalables.

Gestión de configuraciones y archivos .conf

Logstash permite ejecutar varios pipelines en paralelo, y cada uno se define en un archivo .conf. Para evitar confusiones:

  • Guarda cada pipeline en un archivo independiente dentro de la carpeta conf.d.
  • Usa nombres descriptivos como input_syslog.conf o pipeline_elasticsearch.conf.
  • Documenta brevemente el propósito de cada pipeline en comentarios dentro del archivo.

La documentación oficial sobre configuración está en la guía de pipelines de Logstash.

Manejo de errores y logs en pipelines

Los pipelines de Logstash pueden generar errores silenciosos si no se monitorizan. Para evitarlo:

  • Ejecuta Logstash en modo --config.test_and_exit para validar configuraciones antes de desplegar.
  • Activa logs en nivel INFO o DEBUG cuando estés depurando un pipeline.
  • Usa el plugin dead_letter_queue para capturar eventos problemáticos sin interrumpir el flujo.

Más detalles sobre gestión de logs están disponibles en la documentación de monitoring de Logstash.

Extensiones y plugins más utilizados

Uno de los puntos fuertes de Logstash es su ecosistema de plugins. Los más habituales al empezar son:

  • Input plugins: file, beats, jdbc.
  • Filter plugins: grok, mutate, date.
  • Output plugins: stdout, elasticsearch, file.

La lista completa se encuentra en el catálogo oficial de plugins de Logstash.

Elegir los plugins adecuados desde el inicio te permitirá reducir la complejidad y mantener pipelines más fáciles de escalar.

Seguridad y rendimiento en pipelines de Logstash

Además de una buena organización y el uso correcto de plugins, es fundamental tener en cuenta aspectos de seguridad y rendimiento cuando se despliegan pipelines en entornos reales.

En el plano de la seguridad:

  • Cifrado TLS/SSL: habilita comunicación segura entre Logstash, Elasticsearch y Beats para proteger los datos en tránsito. La configuración se realiza mediante certificados en los bloques input y output.
  • Autenticación con Elastic Security: aprovecha las capacidades de Elastic para asignar roles y credenciales a los pipelines, evitando accesos no autorizados.
  • Protección de datos sensibles: evita almacenar credenciales en texto plano dentro de los archivos .conf, utilizando gestores de secretos o variables de entorno.

En el plano del rendimiento:

  • Asignación de memoria adecuada: ajusta el archivo jvm.options para configurar la memoria de la JVM, garantizando que Logstash pueda procesar cargas altas sin cuellos de botella.
  • Batching y workers: parámetros como pipeline.workers y pipeline.batch.size permiten optimizar el rendimiento ajustando el número de hilos y el tamaño de lotes procesados.
  • Uso de colas persistentes: activa persistent queues para evitar pérdida de datos en caso de caídas, especialmente en entornos críticos.

Aplicar estas medidas desde el inicio asegura que los pipelines sean no solo funcionales, sino también seguros, estables y preparados para producción.

Analiza los datos para tomar mejores decisiones en tu empresa
Cursos y talleres para formar a tus científicos de datos e ingenieros en las herramientas más utilizadas: Hadoop, Spark, Power BI, Pandas, R y más.
Solicitar más información

Conclusiones

Logstash es mucho más que una herramienta para mover datos: es el corazón del pipeline en la suite ELK. Su capacidad para recoger información de múltiples fuentes, transformarla mediante filtros y enviarla a destinos como Elasticsearch o sistemas externos lo convierte en un componente esencial en cualquier estrategia de análisis y observabilidad.

Empezar con Logstash no requiere un conocimiento avanzado, pero sí seguir un enfoque práctico: instalarlo correctamente, crear tu primer pipeline sencillo y familiarizarte con los plugins básicos. A partir de ahí, puedes evolucionar hacia configuraciones más complejas y adaptadas a tu entorno.

La clave está en combinar teoría con práctica, apoyándote en la documentación oficial y siguiendo buenas prácticas que garanticen la estabilidad de los pipelines en producción. Con ello, Logstash se convierte en una herramienta versátil para convertir datos en valor real.

Bombilla

Lo que deberías recordar sobre Logstash y ELK

  • La suite ELK integra Elasticsearch, Logstash y Kibana, y cada uno cumple un rol específico.
  • Logstash es el motor de ingesta y transformación de datos dentro de la suite.
  • Un pipeline se organiza en entrada, filtro y salida, y se define en archivos .conf.
  • Empezar con un pipeline básico ayuda a validar la instalación y comprender la estructura.
  • Usar buenas prácticas en configuraciones y plugins evita errores y mejora la escalabilidad.
  • La documentación oficial de Elastic es el mejor recurso para profundizar y resolver dudas.
Compartir este post

También te puede interesar

Curso

Dominio de Elasticsearch

Intermedio
4 h. y 38 min.

Esta formación está diseñada para profesionales que desean ampliar sus conocimientos en Elasticsearch, una poderosa herramienta de búsqueda...

Luis Ruiz
4.1