Elastic Workflows
Guía de referencia rápida en español
Automatización nativa en Elastic Stack. Triggers, steps, templating con Liquid y ejemplos prácticos listos para usar.
¿Qué son Elastic Workflows?
Una nueva capacidad de automatización end-to-end dentro de Elastic Stack
Elastic Workflows es el nuevo motor de automatización nativo de Elastic que te permite crear procesos complejos sin programar ni usar herramientas externas.
Piensa en ellos como "recetas automatizadas" que conectan diferentes acciones dentro de tu stack de Elastic: buscar datos, crear alertas, generar dashboards, enviar notificaciones, e incluso integrar con agentes de IA.
Todo se define en archivos YAML simples donde describes qué quieres lograr, y Elastic se encarga de ejecutarlo de forma fiable y escalable. Si necesitas ayuda profesional implementando workflows en tu organización, ofrecemos consultoría y formación especializada.
Automatización Declarativa
Secuencias de pasos definidas en YAML para lograr outcomes específicos sin herramientas externas.
YAML Simple
Define qué quieres hacer, no cómo hacerlo. Elastic maneja la ejecución automáticamente.
Todo en Elastic
Sin necesidad de Logstash, Zapier, n8n o herramientas externas. Todo dentro de tu cluster.
Ejemplos de uso real
Auto-respuesta a Incidentes
Situación: Detectas 500 errores en 5 minutos en producción.
Workflow automático:
- 1. Busca los logs afectados
- 2. Crea un ticket en Jira
- 3. Notifica al equipo en Slack
- 4. Genera un dashboard temporal
Todo en menos de 10 segundos, sin intervención humana.
Reporting Automático
Situación: Necesitas un reporte diario de métricas para el equipo.
Workflow programado (cada día 8am):
- 1. Agrega datos de las últimas 24h
- 2. Calcula KPIs clave
- 3. Crea visualizaciones
- 4. Envía email con el resumen
Tu equipo recibe insights automáticamente, sin trabajo manual.
Limpieza Inteligente
Situación: Tus índices crecen y consumen espacio.
Workflow semanal:
- 1. Identifica logs de +30 días
- 2. Verifica que haya backups
- 3. Elimina índices antiguos
- 4. Reporta espacio liberado
Mantén tu cluster saludable sin preocuparte.
Análisis con IA
Situación: Recibes una alerta compleja y necesitas contexto.
Workflow con Agente IA:
- 1. Busca logs relacionados
- 2. Consulta agente IA para análisis
- 3. Recibe diagnóstico y recomendaciones
- 4. Ejecuta acciones sugeridas
La IA analiza patrones y sugiere soluciones en tiempo real.
Integración con Agentes IA
Una de las capacidades más potentes de Workflows
Elastic Workflows se integra nativamente con Agent Builder, el framework de Elastic para crear agentes de IA. Esto te permite combinar la potencia de búsqueda y análisis de Elastic con la inteligencia de modelos de lenguaje (LLMs).
¿Qué puedes hacer con IA en Workflows?
- → Análisis inteligente de logs: El agente lee logs complejos y te explica en lenguaje natural qué está ocurriendo.
- → Clasificación automática: La IA categoriza incidentes según severidad, impacto y urgencia sin reglas manuales.
- → Recomendaciones contextuales: Basándose en el histórico, sugiere acciones para resolver problemas similares.
- → Enriquecimiento de datos: La IA añade contexto adicional a tus documentos automáticamente.
- → Generación de consultas: Describe en lenguaje natural qué buscas, y la IA genera la query de Elasticsearch.
Ejemplo: Root Cause Analysis
Cuando una alerta se dispara, un workflow puede llamar a un agente IA que analiza logs, métricas y traces para identificar la causa raíz, generando un informe detallado en segundos.
Ejemplo: Triage Inteligente
La IA clasifica automáticamente cada incidente, asigna prioridades, sugiere el equipo adecuado para resolverlo y genera un resumen ejecutivo para el ticket.
💡 Nota: Los agentes IA pueden usar LLMs de OpenAI, Azure OpenAI, Amazon Bedrock, Google Vertex o modelos open-source desplegados en tu propia infraestructura.
Casos de uso reales con IA: automatización de observabilidad con análisis inteligente de logs, detección de anomalías con Machine Learning, clasificación automática de tickets de soporte, análisis de sentimiento en logs de aplicaciones, generación automática de dashboards según el contexto, y recomendaciones proactivas para optimización de infraestructura. La combinación de Elasticsearch, Kibana, Workflows y agentes IA crea un ecosistema completo de observabilidad inteligente.
Workflows vs Otras Herramientas
Si estás considerando migrar de Logstash a Workflows, actualizar desde Watcher, o evaluar alternativas a Zapier o n8n para automatización de Elastic Stack, esta comparativa te ayudará a entender las diferencias clave.
| Característica | Workflows | Watcher | Logstash |
|---|---|---|---|
| Complejidad de flujos | ✓ Multi-step | Limitado | Pipeline lineal |
| Control de flujo | ✓ If/Foreach/Wait | No | No |
| Gestión de datos | ✓ Liquid templating | Mustache | Ruby/Grok |
| UI Management | ✓ Kibana nativo | ✓ Kibana | Config files |
| Infraestructura | ✓ Incluido en cluster | ✓ Incluido | ✗ Proceso separado |
Anatomía de un Workflow
Estructura básica: metadata, constantes, inputs, triggers y steps
name: mi-primer-workflow
description: Ejemplo básico
enabled: true
triggers:
- type: manual
steps:
- name: buscar_logs
type: elasticsearch.search
with:
index: "logs-*"
query:
match_all: {}
name: workflow-completo
description: Ejemplo con todos los componentes
enabled: true
tags: ["demo", "produccion"]
consts:
indexName: "logs-app-*"
threshold: 100
inputs:
- name: environment
type: string
required: true
default: "staging"
triggers:
- type: scheduled
with:
every: 1h
steps:
- name: buscar_errores
type: elasticsearch.search
with:
index: "{{consts.indexName}}"
query:
match:
level: "ERROR"
- name: notificar
type: console
with:
message: "Encontrados {{steps.buscar_errores.output.hits.total.value}} errores"
# ═══════════════════════════════════════════════════════════════
# METADATA - Identifica y describe el workflow
# ═══════════════════════════════════════════════════════════════
name: mi-workflow # ← 1. Identificador único (requerido)
description: Qué hace # ← 2. Descripción (opcional)
enabled: true # ← 3. Activar/desactivar ejecución
tags: ["demo"] # ← 4. Para organizar workflows
# ═══════════════════════════════════════════════════════════════
# CONSTANTS - Valores reutilizables definidos una vez
# ═══════════════════════════════════════════════════════════════
consts:
indexName: "logs-*" # ← 5. Acceder con {{consts.indexName}}
threshold: 50
# ═══════════════════════════════════════════════════════════════
# INPUTS - Parámetros pasados al ejecutar el workflow
# ═══════════════════════════════════════════════════════════════
inputs:
- name: env
type: string # ← 6. Tipo: string, number, boolean
default: "prod" # ← 7. Valor por defecto
# ═══════════════════════════════════════════════════════════════
# TRIGGERS - Cómo/cuándo se ejecuta el workflow
# ═══════════════════════════════════════════════════════════════
triggers:
- type: manual # ← 8. Click en botón Run
# - type: scheduled # ← 9. Programado (cron)
# - type: alert # ← 10. Desde una alerta
# ═══════════════════════════════════════════════════════════════
# STEPS - La lógica del workflow (se ejecutan en orden)
# ═══════════════════════════════════════════════════════════════
steps:
- name: paso_uno # ← 11. Nombre del step
type: elasticsearch.search # ← 12. Tipo de acción
with: # ← 13. Parámetros del step
index: "{{consts.indexName}}" # ← 14. Usa constante
query:
match_all: {}
- name: paso_dos
type: console
with:
message: "Total: {{steps.paso_uno.output.hits.total.value}}" # ← 15. Usa output del step anterior
🎯 Triggers
Los eventos o condiciones que inician un workflow
Manual
Ejecutar on-demand desde Kibana
triggers:
- type: manual
# 💡 Casos de uso:
# - Tareas on-demand
# - Testing y desarrollo
# - Análisis puntuales
# - Limpieza manual
Scheduled
Programación automática (cron)
triggers:
- type: scheduled
with:
every: 1h # Cada hora
# every: 30m # Cada 30 min
# every: 1d # Cada día
# every: "0 9 * * *" # Cron: 9am
# 💡 Casos de uso:
# - Reporting periódico
# - Limpieza de índices
# - Agregaciones diarias
# - Backups automáticos
Alert
Desde reglas de alerting
triggers:
- type: alert
# Se activa cuando una regla
# de alerting se dispara.
# El workflow recibe el contexto
# completo de la alerta.
# 💡 Casos de uso:
# - Auto-respuesta a incidentes
# - Crear tickets automáticos
# - Enriquecimiento de alertas
# - Escalado inteligente
⚙️ Steps
Las acciones que componen tu workflow
🔍 elasticsearch.search
Busca documentos en un índice
- name: buscar
type: elasticsearch.search
with:
index: "logs-*"
query:
match:
level: "ERROR"
➕ elasticsearch.index
Indexa nuevos documentos
- name: indexar
type: elasticsearch.index
with:
index: "metrics-custom"
document:
timestamp: "{{now}}"
value: 42
🔄 elasticsearch.update
Actualiza documentos existentes
- name: actualizar
type: elasticsearch.update
with:
index: "users"
id: "user-123"
document:
status: "active"
🗑️ elasticsearch.delete
Elimina documentos
- name: eliminar
type: elasticsearch.delete
with:
index: "temp-logs"
query:
range:
@timestamp:
lt: "now-30d"
📊 kibana.dashboard.create
Crea dashboards automáticamente
- name: crear_dashboard
type: kibana.dashboard.create
with:
title: "Dashboard {{inputs.cliente}}"
description: "Auto-generado"
✏️ kibana.saved_object.update
Modifica objetos guardados
- name: actualizar_objeto
type: kibana.saved_object.update
with:
type: "visualization"
id: "viz-123"
🔀 if
Ejecución condicional
- name: validar
type: if
with:
condition: "{{steps.buscar.output.hits.total.value > 10}}"
then:
- type: console
with:
message: "⚠️ Umbral superado"
🔁 foreach
Itera sobre arrays
- name: procesar_cada_uno
type: foreach
with:
items: "{{steps.buscar.output.hits.hits}}"
do:
- type: console
with:
message: "Procesando: {{item._id}}"
⏸️ wait
Pausa la ejecución
- name: esperar
type: wait
with:
duration: "30s" # 30 segundos
# duration: "5m" # 5 minutos
# duration: "1h" # 1 hora
🌐 http.request
Llamadas a APIs externas
- name: llamar_api
type: http.request
with:
url: "https://api.ejemplo.com/alert"
method: POST
body:
message: "Alerta desde Elastic"
💬 slack.message
Notificaciones a Slack
- name: notificar_slack
type: slack.message
with:
channel: "#alertas"
text: "🚨 {{steps.buscar.output.hits.total.value}} errores detectados"
✉️ email.send
Enviar emails
- name: enviar_email
type: email.send
with:
to: "equipo@empresa.com"
subject: "Reporte diario"
body: "Resumen adjunto"
💧 Templating con Liquid
Gestiona datos dinámicos en tus workflows
Sintaxis Común
| Sintaxis | Resultado | Uso |
|---|---|---|
| {{inputs.env}} | "prod" | Acceso a inputs |
| {{consts.index}} | "logs-*" | Acceso a constantes |
| {{steps.s1.output}} | {...} | Output de step previo |
| {{steps.s1.output.hits.total.value}} | 100 | Navegación anidada |
| {{now}} | 2026-02-04T... | Timestamp actual |
| {% if ... %} | - | Condicionales |
Ejemplo Completo
consts:
threshold: 50
steps:
- name: buscar
type: elasticsearch.search
with:
index: "logs-{{inputs.environment}}" # ← Usa input
query:
match:
level: "ERROR"
- name: validar
type: if
with:
# ← Compara output del step anterior con constante
condition: "{{steps.buscar.output.hits.total.value > consts.threshold}}"
then:
- type: slack.message
with:
channel: "#alertas"
# ← Interpola datos en el mensaje
text: "🚨 Encontrados {{steps.buscar.output.hits.total.value}} errores en {{inputs.environment}}"
Tip avanzado: Liquid en Workflows soporta filtros como | upcase, | date, y | default, así como operadores de comparación (==, >, <), operadores lógicos (and, or), y loops {% for %}. Para debugging de templates, puedes usar el step console para imprimir valores durante el desarrollo. Más detalles en el blog de tutoriales.
📦 Workflows Completos
Ejemplos reales y templates reutilizables en GitHub
Repositorio GitHub
Más de 50+ ejemplos de workflows listos para usar: auto-respuesta a alertas, agregaciones, enriquecimiento de datos, integraciones y mucho más.
¿Necesitas workflows customizados? Como parte de mis servicios de consultoría, ofrezco diseño e implementación de workflows a medida para casos de uso específicos de tu infraestructura. También puedes aprender a crearlos tú mismo en mis formaciones especializadas de Elastic.
📚 Aprende Más
Recursos adicionales para dominar Elastic Workflows
Blog Byviz
Tutoriales paso a paso, casos reales de implementación y troubleshooting de workflows en entornos de producción.
- → Guías prácticas en español
- → Casos reales en banca y fintech
- → Mejores prácticas y patrones
Documentación Oficial
Referencias completas de Elastic sobre Workflows, API, arquitectura y todas las capacidades disponibles.
Ir a Docs Elastic →Preguntas Frecuentes
Respuestas a las dudas más comunes sobre Elastic Workflows
- Manual: Ejecutado on-demand desde Kibana para testing y análisis puntuales
- Scheduled: Programación automática con sintaxis cron para reporting periódico y limpieza
- Alert: Disparado desde reglas de alerting para respuesta automática a incidentes
Watcher está limitado a flujos simples sin control de flujo avanzado, usa Mustache para templating.
Logstash requiere un proceso separado, tiene pipelines lineales sin ramificaciones condicionales complejas, y está más enfocado en ingestión de datos que en automatización de workflows.
{{inputs.env}}, constantes {{consts.index}}, outputs de steps previos {{steps.s1.output}} y usar condicionales. Es similar a Mustache (usado en Watcher) pero más potente y flexible.
match: { field: "value" }) y entiendes lógica condicional simple (if/then), puedes crear workflows complejos. La curva de aprendizaje es mucho menor que Logstash o programación tradicional.
¿Más preguntas? Contáctame o visita el blog para tutoriales detallados.
¿Necesitas ayuda implementando Workflows?
Como Consultor y Gold Contributor de Elastic con 10+ años de experiencia, puedo ayudarte a diseñar e implementar workflows para tu caso específico.
Diseño de workflows custom para tu infraestructura
Migración desde Logstash/Watcher a Workflows
Formación in-company sobre automatización