monitoreo
Logstash
Definición y propósito
Logstash es una herramienta de ingesta y procesamiento de datos del stack Elastic. Su función principal es recolectar datos desde múltiples fuentes, transformarlos mediante filtros y enviarlos a destinos como Elasticsearch. Actúa como un pipeline flexible de ETL orientado a datos en tiempo real.
Arquitectura basada en pipelines
- Input
- Define las fuentes de datos
- Soporta archivos, TCP/UDP, HTTP, bases de datos, colas y brokers
- Permite ingestión continua o por lotes
- Filter
- Etapa de transformación y enriquecimiento
- Procesamiento estructurado y no estructurado
- Normalización de campos y formatos
- Output
- Define los destinos finales
- Uso más común: envío a Elasticsearch
- Soporte para múltiples salidas simultáneas
Inputs más utilizados
- File
- Lectura de logs desde archivos locales
- Seguimiento del offset para evitar reprocesos
- Beats
- Recepción de datos desde Filebeat, Metricbeat y otros
- Uso común en arquitecturas distribuidas
- HTTP
- Recepción de eventos vía API REST
- Integración con aplicaciones externas
- Kafka
- Consumo de streams de eventos
- Alta escalabilidad y tolerancia a fallos
Filtros principales
- grok
- Parseo de texto no estructurado mediante patrones
- Muy usado para logs de aplicaciones y servidores
- mutate
- Renombrar, eliminar o convertir campos
- Limpieza y normalización de datos
- date
- Conversión de timestamps a formato estándar
- Clave para análisis temporal en kibana
- geoip
- Enriquecimiento con información geográfica
- Uso común en análisis de tráfico y seguridad
- json
- Parseo de payloads JSON
- Conversión automática a campos estructurados
Outputs comunes
- Elasticsearch
- Indexación directa de eventos procesados
- Configuración de índices, pipelines y autenticación
- File
- Escritura de eventos procesados a disco
- Uso frecuente para depuración
- Stdout
- Visualización en consola
- Útil en desarrollo y testing
Configuración
- Basada en archivos
.conf - Sintaxis declarativa por secciones
- Permite múltiples pipelines simultáneos
- Soporte para variables de entorno
Escalabilidad y rendimiento
- Procesamiento en paralelo mediante workers
- Ajuste de batch size y batch delay
- Posibilidad de escalar horizontalmente
- Integración con colas para desacoplar productores y consumidores
Gestión de errores y resiliencia
- Manejo de eventos fallidos
- Dead Letter Queue para datos no procesables
- Reintentos configurables
- Logs detallados para diagnóstico
Casos de uso comunes
- Centralización de logs
- Normalización de datos heterogéneos
- Enriquecimiento de eventos antes de indexar
- Integración de sistemas legacy
- Procesamiento previo a analítica y observabilidad
Relación con Kibana y Elasticsearch
- Logstash prepara y estructura los datos
- Elasticsearch los indexa y almacena
- kibana los visualiza y analiza
- Juntos forman un flujo completo de observabilidad y análisis
Buenas prácticas
- Mantener pipelines simples y modulares
- Usar grok de forma eficiente para evitar impacto en rendimiento
- Validar datos antes de indexar
- Separar pipelines por dominio o fuente
- Monitorizar el uso de memoria y CPU
¿Te gusta este contenido? Suscríbete vía RSS