Monitoreo y alertas de rendimiento de red Meraki

Meraki Network Monitor

Monitorea automáticamente la latencia y la tasa de pérdida de paquetes en redes Cisco Meraki, y envía alertas a través de Teams cuando el rendimiento supera los umbrales establecidos, utilizando Redis para evitar notificaciones duplicadas.

23 NodesIndustry Verticalmonitoreo de red alertas de rendimiento Meraki

Descripción general del flujo de trabajo

Este flujo de trabajo en n8n es un sistema de monitoreo y alertas para redes Cisco Meraki, diseñado para supervisar automáticamente métricas de rendimiento de red (latencia y tasa de pérdida de paquetes) y enviar notificaciones de alerta cuando se detecten problemas. El flujo obtiene, mediante la API de Meraki, información sobre organizaciones, redes y estadísticas de enlaces ascendentes (uplinks), calcula métricas promedio de rendimiento, filtra los sitios con problemas y envía alertas a través de Microsoft Teams, utilizando además una base de datos Redis para evitar alertas duplicadas.


Estructura del flujo de trabajo

1. Nodos desencadenantes

Nombres de los nodos:

  • When clicking "Execute Workflow" (desencadenante manual)
  • Schedule Trigger (desencadenante programado)

Descripción funcional: Este flujo admite dos formas de activación:

  • Ejecución manual: al hacer clic en el botón "Ejecutar flujo de trabajo"
  • Ejecución programada: se ejecuta automáticamente según un horario predefinido (para monitoreo continuo)

2. Fase de recolección de datos

2.1 Obtener información de organizaciones Meraki

Nombre del nodo: Get Meraki Organizations

Descripción funcional:

  • Realiza una solicitud HTTP a la API de Meraki (https://api.meraki.com/api/v1/organizations)
  • Utiliza autenticación por encabezado (header), requiriendo una clave API de Meraki
  • Obtiene una lista de todas las organizaciones a las que la cuenta tiene acceso

Detalles técnicos:

  • Tipo de solicitud: GET
  • Método de autenticación: Autenticación por encabezado HTTP
  • Encabezados requeridos:
    • Authorization: para autenticación
    • Accept: application/json: especifica que los datos devueltos deben estar en formato JSON

2.2 Procesar datos de organizaciones

Nombre del nodo: Get Org Name & ID

Descripción funcional:

  • Usa un nodo Set para extraer y renombrar campos clave
  • Extrae de los datos originales:
    • CompanyName: nombre de la organización
    • OrgID: ID de la organización

2.3 Obtener IDs de redes

Nombre del nodo: Get Network IDs

Descripción funcional:

  • Para cada ID de organización, llama a la API para obtener todas sus redes
  • Utiliza una URL dinámica: https://api.meraki.com/api/v1/organizations/{{ $json.OrgID }}/networks
  • Proporciona una lista de redes para su posterior monitoreo

2.4 Procesar variables de red

Nombre del nodo: Sets Network Variables

Descripción funcional:

  • Extrae y formatea información de red
  • Incluye campos clave como nombre de red, ID de red y URL de red

2.5 Obtener estadísticas de enlace ascendente

Nombre del nodo: Get Uplink Loss and Latency

Descripción funcional:

  • Obtiene estadísticas de rendimiento del enlace ascendente de los dispositivos de red
  • Incluye:
    • Porcentaje de pérdida de paquetes (Loss Percent)
    • Latencia en milisegundos (Latency Ms)
    • Datos de series temporales (los últimos 5 puntos temporales)

3. Fase de procesamiento y análisis de datos

3.1 Combinación de datos

Nombre del nodo: Combine latency to its respective Network

Descripción funcional:

  • Usa un nodo Merge para combinar información de red con estadísticas de rendimiento
  • Campo de coincidencia: NetworkID y networkId
  • Modo de combinación: enrichInput1 (enriquece los datos de la entrada 1)

3.2 Reestructuración de datos

Nombre del nodo: Makes Latency and Loss Filterable

Descripción funcional:

  • Reorganiza la estructura de los datos para facilitar el filtrado y análisis de latencia y pérdida
  • Extrae 5 puntos de datos de series temporales:
    • TS0-Loss a TS4-Loss: tasas de pérdida en 5 momentos distintos
    • TS0-Latency a TS4-Latency: latencias en 5 momentos distintos
  • Conserva metadatos como nombre de red, número de serie y URL

3.3 Cálculo de promedios

Nombre del nodo: Average Latency & Loss over 5m

Descripción funcional:

  • Usa código JavaScript para calcular promedios de los últimos 5 puntos temporales
  • Calcula dos métricas clave:
    • AverageLoss: pérdida promedio de paquetes
    • AverageLatency: latencia promedio (en milisegundos)
  • Estos promedios permiten identificar problemas de rendimiento con mayor precisión

Lógica del código:

// Calcula la pérdida total y la latencia total en los 5 puntos temporales
// Divide entre 5 para obtener los promedios
// Añade los resultados al elemento de datos

3.4 Filtrado de sitios problemáticos

Nombre del nodo: Filters Problematic sites

Descripción funcional:

  • Usa código JavaScript para filtrar sitios que superen umbrales predefinidos
  • Criterios de umbral:
    • Latencia promedio > 300 ms
    • O pérdida promedio > 2%
  • Solo los sitios que cumplan al menos una condición pasan al siguiente paso

Lógica de filtrado:

// Si AverageLatency > 300 o AverageLoss > 2
// entonces el sitio se marca como problemático

4. Fase de deduplicación de alertas y notificación

4.1 Verificación de existencia de alerta

Nombre del nodo: Check if Alert Exists

Descripción funcional:

  • Consulta la base de datos Redis para verificar si ya se ha enviado una alerta para esa red
  • Usa el nombre de red como clave
  • Si la clave existe, significa que ya se ha enviado una alerta (dentro del período TTL)

4.2 Creación de respuesta

Nombre del nodo: Create Response

Descripción funcional:

  • Procesa con JavaScript el resultado de la consulta a Redis
  • Convierte el resultado en un valor booleano o identificador utilizable
  • Determina si es necesario enviar una nueva alerta

4.3 Fusión para deduplicación

Nombre del nodo: Merge

Descripción funcional:

  • Combina los sitios problemáticos con los datos de alertas ya existentes
  • Campo de coincidencia: NetworkName
  • Modo de combinación: conserva todos los elementos no coincidentes
  • Lógica clave: si coincide el nombre de red, significa que ya existe una alerta y no se reenvía; solo continúan los elementos no coincidentes (nuevos problemas)

4.4 Envío de mensaje a Teams

Nombre del nodo: Message Techs

Descripción funcional:

  • Envía una alerta mediante un webhook de Microsoft Teams
  • El contenido del mensaje incluye:
    • Nombre de la red
    • Datos de latencia y pérdida promedio
    • URL de la red (como hipervínculo para acceder directamente al sitio con problemas)
  • Notifica al equipo técnico de que un sitio ha superado los umbrales de rendimiento

4.5 Registro de alerta

Nombre del nodo: Log the Alert

Descripción funcional:

  • Registra la alerta en la base de datos Redis
  • Establece un TTL (tiempo de vida) de 3 horas
  • Lógica anti-repetición: si el problema en el mismo sitio persiste más allá de las 3 horas, se enviará nuevamente la alerta

5. Nodos de notas explicativas

El flujo incluye varios nodos Sticky Note (notas adhesivas) con instrucciones detalladas:

  • Sticky Note3: explica cómo configurar la autenticación de la API de Meraki
  • Sticky Note4: describe la lógica de combinación de datos y cálculo estadístico
  • Sticky Note5: detalla el mecanismo de deduplicación de alertas y el flujo de notificación
  • Sticky Note6: sugiere otros casos de uso (por ejemplo, integración con herramientas PSA para crear tickets)

Diagrama del flujo de trabajo

[Desencadenante] → [Obtener organizaciones] → [Procesar datos de organizaciones] → [Obtener IDs de red] → [Procesar datos de red]
                ↓                                                                                     ↓
          [Obtener datos de enlace ascendente] ----------------------------------------------------→ [Combinar datos]
                                                                                                      ↓
                                                                                      [Reestructurar datos de latencia/pérdida]
                                                                                                      ↓
                                                                                         [Calcular promedio de 5 minutos]
                                                                                                      ↓
                                                                                        [Filtrar sitios problemáticos]
                                                                                                      ↓
                                                            [Verificar existencia de alerta] ← → [Fusión para deduplicación]
                                                                    ↓                              ↓
                                                            [Crear respuesta] --------------------→ [Enviar mensaje a Teams]
                                                                                                      ↓
                                                                                               [Registrar alerta]

Aspectos técnicos clave

1. Autenticación API

2. Umbrales de rendimiento

  • Umbral de latencia: 300 milisegundos
  • Umbral de pérdida: 2%
  • Estos umbrales pueden ajustarse según necesidades específicas

3. Mecanismo anti-repetición de alertas

  • Almacena alertas enviadas en Redis
  • TTL establecido en 3 horas
  • No se reenvían alertas para el mismo sitio dentro del período TTL

4. Métodos de procesamiento de datos

  • Recopila datos de los últimos 5 puntos temporales
  • Calcula promedios para reducir el impacto de fluctuaciones momentáneas
  • Usa nodos de código JavaScript para procesamiento y filtrado complejos de datos

Casos de uso

  1. Monitoreo de rendimiento de red: supervisión continua de latencia y pérdida en redes Meraki
  2. Alertas proactivas: notificación automática al equipo técnico ante degradación del rendimiento
  3. Resolución de fallos: proporciona enlaces directos a la URL de la red para localizar rápidamente el problema
  4. Gestión de alertas: evita el bombardeo de alertas, enviando solo una vez por sitio en un lapso de 3 horas

Sugerencias de ampliación

Según lo indicado en Sticky Note6, se pueden realizar las siguientes ampliaciones:

  1. Integración con sistemas PSA: reemplazar el nodo de mensaje de Teams por un nodo de herramienta PSA (como ConnectWise Manage) para crear tickets automáticamente en lugar de solo enviar mensajes
  2. Notificación multicanal: además de Teams, añadir canales como correo electrónico, Slack, etc.
  3. Umbrales personalizados: definir diferentes umbrales de rendimiento para distintas redes
  4. Almacenamiento histórico: guardar los datos de monitoreo en una base de datos para análisis a largo plazo y predicción de tendencias

Resumen

Este es un flujo de trabajo completo de automatización para monitoreo de redes, que aprovecha plenamente las siguientes capacidades de n8n:

  • Integración mediante solicitudes HTTP con APIs externas
  • Transformación y procesamiento de datos (nodos Set y Code)
  • Combinación de datos (nodo Merge)
  • Filtrado condicional y evaluación lógica
  • Notificaciones externas (webhook de Teams)
  • Persistencia de datos (Redis)

Mediante el monitoreo automatizado y alertas inteligentes, mejora significativamente la eficiencia operativa de redes y reduce considerablemente la carga de trabajo manual.