Flux VPN Monitor

Documentacion del sistema de monitoreo de equipos de red - Version 2

1. Que es Flux VPN Monitor?

Es un sistema que vigila automaticamente el estado de 62 equipos de red (routers) distribuidos en distintas ubicaciones de Chile y Colombia. Cada 30 segundos, el sistema verifica si cada equipo esta funcionando correctamente y registra los resultados en una base de datos.

Los resultados se muestran en un dashboard web (panel de control) accesible desde cualquier navegador en el puerto 4575.

Tipos de equipos monitoreados

2. Como funciona?

Cada 30 segundos se ejecuta el siguiente ciclo:

[JSON de equipos] --> [mikrotik.py] --> Ping a cada IP + Consulta API --> [Base de datos]
[JSON de equipos] --> [teltonika.py] --> Ping a cada IP + Consulta API --> [Base de datos]

[Base de datos] --> [app.py / Dashboard web] --> Navegador del usuario

Paso 1: Ping a cada IP

El sistema envia 5 paquetes de ping a cada IP de cada equipo. Cada equipo tiene 1 o 2 IPs (cada una corresponde a un tunel VPN). El ping mide:

Paso 2: Consulta API del router

Ademas del ping, el sistema se conecta directamente al router para obtener:

Paso 3: Registro y deteccion de eventos

Cada lectura se guarda en la base de datos. El sistema compara con la lectura anterior para detectar cambios:

EventoQue pasoEjemplo
REBOOTEl equipo se reinicioCorte de energia, reinicio manual
ROUTER_DOWNEl equipo dejo de responder a la APIRouter apagado o sin conectividad
ROUTER_UPEl equipo volvio a responderSe recupero la energia o conectividad
VPN_DOWNLa conexion VPN se cayoProblema en el tunel VPN
VPN_UPLa conexion VPN se recuperoEl tunel se reestablecio
PING_DOWN100% de paquetes perdidosEquipo completamente inaccesible por ping
PING_UPEl equipo volvio a responder al pingSe recupero la conectividad
LTE_DOWNLa conexion celular LTE se cayoProblema con la antena o el operador
LTE_UPLa conexion LTE se recuperoSenal celular reestablecida

3. Que pasa cuando un equipo no responde?

Escenario: El ping no responde (100% perdida de paquetes)
  1. Se registra en la base de datos que se enviaron 5 pings y se recibieron 0 respuestas (100% perdida)
  2. Se intenta conectar a la API del router de todas formas. Si tampoco responde, se registra un error
  3. Todos los datos LTE se anulan: no se guardan valores de senal celular porque no son confiables sin conexion
  4. Se genera un evento PING_DOWN (si antes respondia)
  5. Si la API tampoco responde, se genera un evento ROUTER_DOWN
  6. El exito historico baja: los 5 pings fallidos se suman al total historico
  7. En el dashboard, el equipo aparece con borde rojo y sube hacia arriba en la lista (peor calidad primero)
  8. En los graficos de 24 horas, se ve un vacio en latencia y un pico a 100% en perdida de paquetes
  9. Los graficos LTE (RSRP, SINR) tambien muestran vacios durante la caida
Escenario: El equipo se recupera
  1. En el siguiente ciclo (30 segundos despues), el ping vuelve a responder
  2. Se genera un evento PING_UP
  3. Si la API tambien vuelve a responder, se genera ROUTER_UP
  4. Si el uptime del router es menor que antes, significa que se reinicio: se genera REBOOT
  5. Los datos LTE vuelven a registrarse normalmente
  6. El equipo vuelve a mostrar datos en el dashboard con los valores actualizados
Escenario: Perdida parcial de paquetes (ej: 20%, 40%)

Si de 5 pings solo responden 3 (40% de perdida), el sistema:

4. El Dashboard

Vista resumen (pantalla principal)

Muestra una grilla de tarjetas, una por cada equipo. Las tarjetas se ordenan de peor a mejor segun el exito historico, para que los equipos que necesitan atencion aparezcan primero.

Cada tarjeta muestra:

DatoDescripcion
Nombre del equipoIdentificador del router en la red
TipoMikroTik o Teltonika
Exito historico (%)Dato principal. Porcentaje de pings respondidos sobre el total historico. 100% = nunca ha fallado
Barra de progresoRepresentacion visual del exito: verde ≥ 99%, amarillo ≥ 90%, rojo < 90%
VPN individualesCada VPN (IP) con su exito historico % y latencia promedio historica
UptimeTiempo encendido del equipo (ej: "45d 12h" = 45 dias y 12 horas)
Calidad LTESi tiene conexion celular: Excelente, Bueno, Regular o Malo
ModeloModelo del hardware del router

Color del borde izquierdo de cada tarjeta

ColorCondicionSignificado
VerdeSin error y exito ≥ 90%Equipo funcionando correctamente
AmarilloExito historico < 90%Equipo con problemas frecuentes
RojoError o 100% perdida actualEquipo sin conexion

Vista detalle (al hacer click en un equipo)

Se abre un panel con informacion detallada:

Filtros disponibles

FiltroQue muestra
TodosLos 62 equipos
MikroTikSolo los 58 routers MikroTik
TeltonikaSolo los 4 routers Teltonika
Con LTESolo los 39 equipos con conexion celular activa
BuscarFiltra por nombre del equipo

Boton de ayuda (?)

En la esquina superior derecha del dashboard hay un boton ? que abre una guia interactiva con la explicacion de todos los parametros y calculos, similar a este documento.

5. Calidad de senal LTE

Los equipos con conexion celular LTE tienen su senal evaluada con tres parametros tecnicos. El sistema calcula un puntaje de 0 a 3 y clasifica la calidad:

ParametroQue mideExcelente (3 pts)Bueno (2 pts)Regular (1 pt)Malo (0 pts)
RSRP (dBm)Potencia de la senal≥ -80≥ -90≥ -105< -105
SINR (dB)Senal vs ruido≥ 20≥ 13≥ 0< 0
RSRQ (dB)Calidad de la senal≥ -10≥ -15≥ -20< -20

Calculo: Se promedian los puntajes de los parametros disponibles. Si falta alguno (ej: RSRQ no disponible), se calcula con los demas.

ClasificacionPuntaje promedioInterpretacion
Excelente≥ 2,50Senal optima, sin problemas
Bueno≥ 1,50Senal adecuada para operacion normal
Regular≥ 0,66Senal debil, posibles cortes
Malo< 0,66Senal muy debil, conexion inestable
Importante: LTE y caidas de conexion

Cuando un equipo pierde conexion (100% de pings perdidos), los datos LTE se anulan automaticamente. Esto evita mostrar datos de senal obsoletos y garantiza que los graficos reflejen la realidad. Los graficos de RSRP y SINR muestran vacios durante esos periodos.

6. Exito Historico: El indicador principal

Como se calcula

Formula: (Total pings recibidos / Total pings enviados) x 100

Ejemplo: Un equipo monitoreado durante 24 horas con lecturas cada 30 segundos:

Por VPN individual: El mismo calculo se aplica a cada IP/VPN por separado, para identificar si un tunel especifico tiene mas problemas que otro.

7. Arquitectura tecnica

result_by_identity_lte.json (configuracion de 62 equipos)
|
+--> mikrotik.py (58 equipos en paralelo, 15 hilos)
| +-- Ping ICMP a cada IP (5 paquetes, timeout 2s)
| +-- API RouterOS port 8728 (uptime, VPN, LTE)
|
+--> teltonika.py (4 equipos en paralelo, 5 hilos)
| +-- Ping ICMP a cada IP (5 paquetes, timeout 2s)
| +-- API HTTPS ubus + REST (uptime, VPN, LTE)
|
+--> monitor.db (base de datos SQLite)
| +-- snapshots: 1 fila por equipo por ciclo
| +-- ping_results: detalle por IP individual
| +-- events: cambios de estado detectados
|
+--> app.py (dashboard web Flask, puerto 4575)
+-- /api/summary (datos de todos los equipos)
+-- /api/device/nombre (detalle de un equipo)
+-- / (interfaz web HTML)

Archivos principales

ArchivoFuncion
result_by_identity_lte.jsonConfiguracion de todos los equipos (IPs, credenciales, tipo, modelo)
mikrotik.pyMonitor de 58 equipos MikroTik en paralelo
teltonika.pyMonitor de 4 equipos Teltonika en paralelo
db.pyModulo compartido: base de datos, calculos, deteccion de eventos
app.pyDashboard web (interfaz visual)
run.shLoop de monitoreo cada 30 segundos
init.shOrquestador de produccion (monitoreo + servidor web)
monitor.dbBase de datos con todo el historial de lecturas y eventos

8. Preguntas frecuentes

Cada cuanto se actualiza el dashboard?

El dashboard se actualiza automaticamente cada 15 segundos. Las lecturas de equipos se realizan cada 30 segundos.

Que significa un uptime bajo?

Un uptime de pocas horas o minutos indica que el equipo se reinicio recientemente. Esto puede deberse a un corte de energia en la ubicacion, un reinicio manual, o una actualizacion de firmware. El sistema genera un evento REBOOT cuando detecta esto.

Por que un equipo aparece en rojo?

Un equipo en rojo tiene error en la conexion o 100% de perdida de paquetes. Puede estar apagado, sin Internet, o con un problema en la VPN.

Que significa "LTE Apagado"?

El equipo tiene hardware de conexion celular LTE, pero la interfaz esta desactivada en la configuracion del router. No se monitorea la senal LTE en este caso.

Por que los graficos LTE muestran vacios?

Cuando un equipo pierde conexion (100% de pings perdidos), los datos de senal LTE se anulan para no mostrar informacion obsoleta. Los vacios en los graficos corresponden a periodos donde el equipo estuvo inaccesible.

Que diferencia hay entre "Latencia" y "Exito historico"?

Latencia mide la velocidad de la conexion (cuanto tarda en responder). Exito historico mide la confiabilidad (que tan seguido responde). Un equipo puede tener latencia alta pero exito del 100% (responde siempre, pero lento) o latencia baja pero exito del 80% (cuando responde es rapido, pero falla seguido).

Los datos se pierden si se reinicia el sistema?

No. Todos los datos se guardan en el archivo monitor.db (base de datos SQLite). Este archivo persiste entre reinicios del contenedor Docker porque esta montado como volumen externo.