Documentacion del sistema de monitoreo de equipos de red - Version 2
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.
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:
Ademas del ping, el sistema se conecta directamente al router para obtener:
Cada lectura se guarda en la base de datos. El sistema compara con la lectura anterior para detectar cambios:
| Evento | Que paso | Ejemplo |
|---|---|---|
| REBOOT | El equipo se reinicio | Corte de energia, reinicio manual |
| ROUTER_DOWN | El equipo dejo de responder a la API | Router apagado o sin conectividad |
| ROUTER_UP | El equipo volvio a responder | Se recupero la energia o conectividad |
| VPN_DOWN | La conexion VPN se cayo | Problema en el tunel VPN |
| VPN_UP | La conexion VPN se recupero | El tunel se reestablecio |
| PING_DOWN | 100% de paquetes perdidos | Equipo completamente inaccesible por ping |
| PING_UP | El equipo volvio a responder al ping | Se recupero la conectividad |
| LTE_DOWN | La conexion celular LTE se cayo | Problema con la antena o el operador |
| LTE_UP | La conexion LTE se recupero | Senal celular reestablecida |
Si de 5 pings solo responden 3 (40% de perdida), el sistema:
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:
| Dato | Descripcion |
|---|---|
| Nombre del equipo | Identificador del router en la red |
| Tipo | MikroTik o Teltonika |
| Exito historico (%) | Dato principal. Porcentaje de pings respondidos sobre el total historico. 100% = nunca ha fallado |
| Barra de progreso | Representacion visual del exito: verde ≥ 99%, amarillo ≥ 90%, rojo < 90% |
| VPN individuales | Cada VPN (IP) con su exito historico % y latencia promedio historica |
| Uptime | Tiempo encendido del equipo (ej: "45d 12h" = 45 dias y 12 horas) |
| Calidad LTE | Si tiene conexion celular: Excelente, Bueno, Regular o Malo |
| Modelo | Modelo del hardware del router |
| Color | Condicion | Significado |
|---|---|---|
| Verde | Sin error y exito ≥ 90% | Equipo funcionando correctamente |
| Amarillo | Exito historico < 90% | Equipo con problemas frecuentes |
| Rojo | Error o 100% perdida actual | Equipo sin conexion |
Se abre un panel con informacion detallada:
| Filtro | Que muestra |
|---|---|
| Todos | Los 62 equipos |
| MikroTik | Solo los 58 routers MikroTik |
| Teltonika | Solo los 4 routers Teltonika |
| Con LTE | Solo los 39 equipos con conexion celular activa |
| Buscar | Filtra por nombre del equipo |
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.
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:
| Parametro | Que mide | Excelente (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.
| Clasificacion | Puntaje promedio | Interpretacion |
|---|---|---|
| Excelente | ≥ 2,50 | Senal optima, sin problemas |
| Bueno | ≥ 1,50 | Senal adecuada para operacion normal |
| Regular | ≥ 0,66 | Senal debil, posibles cortes |
| Malo | < 0,66 | Senal muy debil, conexion inestable |
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.
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.
| Archivo | Funcion |
|---|---|
result_by_identity_lte.json | Configuracion de todos los equipos (IPs, credenciales, tipo, modelo) |
mikrotik.py | Monitor de 58 equipos MikroTik en paralelo |
teltonika.py | Monitor de 4 equipos Teltonika en paralelo |
db.py | Modulo compartido: base de datos, calculos, deteccion de eventos |
app.py | Dashboard web (interfaz visual) |
run.sh | Loop de monitoreo cada 30 segundos |
init.sh | Orquestador de produccion (monitoreo + servidor web) |
monitor.db | Base de datos con todo el historial de lecturas y eventos |
El dashboard se actualiza automaticamente cada 15 segundos. Las lecturas de equipos se realizan cada 30 segundos.
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.
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.
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.
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.
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).
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.