Resumen: qué hace esta pantalla
Resumen es la primera pantalla tras iniciar sesión (/). Recorre la disponibilidad y la seguridad en un único panel: la banda superior muestra los indicadores compuestos de salud, las tarjetas KPI y el anillo de detecciones; la banda inferior muestra las series temporales de carga / memoria / red / almacenamiento del parque de servidores.
Rasgos principales:
- Dos puntuaciones compuestas convergentes: un indicador de disponibilidad (composición ponderada de toda la telemetría no relacionada con la seguridad) junto a un indicador de seguridad (composición ponderada de las evidencias de detección de 24 h).
- 8 tarjetas KPI: servidores, pico de carga, pico de memoria, pico de red, amenazas, copia de seguridad y (cuando hay datos) servicio web y base de datos.
- Anillo de detecciones (24 h): alertas IDS / anomalías de IA / ataques web / escaneo y bloqueo, cuatro categorías.
- Panel de rendimiento del servicio: se elige un servicio web y uno de base de datos «individuales» y se muestran como indicadores compactos (nunca sumados).
- Bandas de servidores a todo lo ancho: carga / memoria / red / almacenamiento, un selector de rango 6h · 24h · 3d, división de pantalla (1 · 2 · 3), un deslizador de altura y escala lineal/logarítmica.
- Sondeo en vivo: una comprobación barata de
rev(el último seq) descarga la carga pesada solo cuando cambia y después sustituye los datos in situ.
Todas las cifras son datos reales que los recolectores, ejecutados fuera de Laravel, cargan en la base de datos. Si la base de datos heredada no está accesible o está vacía, el controlador recurre de forma elegante a una maqueta (demo) estructuralmente idéntica; en ese caso
sourceesmockupyreves0, por lo que el frontend omite el nuevo renderizado.
Cuándo usarla
- Al empezar la jornada, cuando se necesita saber en 30 segundos «qué duele ahora mismo»: el color del indicador junto con los símbolos de evidencia deja claro qué eje (actividad · carga · memoria · disco · RAID · copia de seguridad / IDS · IA · web · cortafuegos · reputación · TLS) está siendo penalizado.
- Para montar un muro de monitorización: repartirlo con división de pantalla y paginación entre varios monitores (modo de pantalla completa).
- Para rastrear cuándo se produjo el pico de carga o de disco de un servidor («hace N minutos»).
- Como punto de partida antes de profundizar en pantallas de detalle como Infraestructura ▸ Servidores o Seguridad ▸ Resumen.
Disposición
Cabecera superior
Título y lema («Respuesta inmediata · Listo por defecto · Siempre recuperable») y, a la derecha, la marca de tiempo de la recolección (stamp) y el número de hosts, un conmutador LIVE/PAUSED y un botón de pantalla completa.
Puntuación de salud (izquierda)
Dos indicadores en anillo (disponibilidad, seguridad) con un panel de evidencias a dos columnas debajo:
| Columna | 6 símbolos (información al pasar el ratón) | Origen de la puntuación |
|---|---|---|
| Base de la disponibilidad | actividad · carga · memoria · disco · RAID · copia de seguridad | avail_parts de aggregate() (composición sensible a la duración, 0–100) |
| Base de la seguridad | IDS · IA · web · cortafuegos · reputación · TLS | PostureService (proporciones de residuo sin mitigar de 24 h normalizadas a puntuaciones de salud) |
Cada símbolo se colorea según metric_cls: ≥90 good · ≥70 warn · por debajo crit · sin datos muestra — (na).
Tarjetas KPI (centro 3×2 + 2 condicionales)
| Tarjeta | Valor | Línea secundaria |
|---|---|---|
| Servidores | en línea/total | número de fuera de línea o «todos en línea» |
| Pico de carga | carga máxima del conjunto visible | host · «hace N min» |
| Pico de memoria | % máximo de memoria del conjunto visible | host · «hace N min» |
| Pico de red | máximo de paquetes (el mayor de entrada/salida) | host · «hace N min» |
| Amenazas | abiertas (= bloqueos de Kitsune) | bloqueadas hoy |
| Copia de seguridad | % de éxito a 14 días | ejecuciones en 24 h · última duración · tipo dominante |
| Servicio web (condicional) | up/total | host más lento · ms |
| Base de datos (condicional) | up/total | base de datos más ocupada · lentas en 24 h · en cola |
Los picos de carga/memoria/red se calculan en el frontend como «el máximo de la serie entre los servidores actualmente visibles (current_servers)». Es decir, cambiar la división o la página cambia qué servidores tienen en cuenta las tarjetas de pico. La etiqueta «hace N min» se deriva de la posición del seq (
times[idx]) en la que se observó ese pico por primera vez.
Panel de rendimiento del servicio (derecha)
Muestra un servicio web y uno de base de datos como indicadores compactos: individuales, no sumados, para que un servicio desbocado no quede enterrado en una media. Use el desplegable («Elegir otro servicio») para cambiar de objetivo:
- Web: un anillo de códigos de respuesta con cuatro bandas (2xx good · 3xx info · 4xx warn · 5xx crit) con las peticiones por segundo en el centro, más la tasa de error y la latencia. Selección por defecto: la de mayor RPS.
- BD: un arco de saturación de conexiones (asientos) con las QPS en el centro, más en ejecución/en cola. Selección por defecto: la de mayor saturación. Umbrales de tono 70/90 % (la convención de Servicio ▸ Base de datos).
Anillo de detecciones (derecha)
Las detecciones de 24 horas en cuatro categorías (IDS/IA/web/escaneo). Anillo de ECharts + una leyenda HTML (nombre · recuento compacto · barra de proporción).
Parte inferior: bandas de servidores a todo lo ancho
Bajo la barra de herramientas Server stats (chip de RAID · chip «<1G libre» · deslizador de altura · etiqueta de rango · selector de rango temporal · botones de división) hay cuatro bandas:
- Carga media: los 3 servidores con el valor más reciente más alto, fijados con alias·valor, lineal/logarítmica.
- Memoria: % de uso, lineal/logarítmica.
- Tráfico de red: área apilada de entrada (abajo) + salida (arriba).
- Almacenamiento: indicador no lineal de la raíz (/) + uso de la partición
/data.
Cómo usarla
- Primero los indicadores: lea el color de las dos puntuaciones. Si son bajas, pase el ratón por las celdas rojas (crit) o ámbar (warn) de los 6 símbolos de evidencia de abajo para ver qué eje está penalizado.
- Tarjetas KPI: busque valores atípicos (servidores fuera de línea, amenazas, tasa de éxito de la copia de seguridad). Use el «hace N min» de las tarjetas de pico para fijar el momento del incidente.
- Cambiar la ventana temporal: los botones
6h · 24h · 3dde la parte inferior derecha cambian la ventana de las bandas. La elección se guarda enlocalStorage(infr:range:overview) y se vuelve a consultar al servidor mediante el parámetrorange. Las tarjetas KPI y los indicadores de salud se mantienen fijos en un concepto de 24 h (solo las bandas cambian de ventana). - División de pantalla: los botones
All · 2 · 3reparten el parque en páginas (◀▶). Útil para repartirlo entre monitores. - Altura y escala: el deslizador fija la altura de las bandas (80–360px); el
Lin/Logde cada banda fija la escala del eje y (útil frente a hosts con muchos picos). - En vivo / pantalla completa: el conmutador
LIVEde la cabecera activa o desactiva el sondeo;full screenoculta la barra de navegación superior para el modo muro de monitorización.
Rango → número de puntos
La ventana de las bandas inferiores se convierte en un número de puntos de seq según la cadencia de recolección de server_status (unos 5 min).
| range | puntos de seq |
|---|---|
6h |
72 |
24h |
288 (por defecto) |
3d |
864 |
Comportamiento de la actualización en vivo (sondeo)
every 30s ──▶ GET /overview/rev (cheap latest seq)
│ rev changed?
├─ no → skip (0 bandwidth)
└─ yes → GET /overview/live?range=<window> → swap data + re-render charts
- Cuando la pestaña está oculta (
document.hidden), el sondeo se pausa y se reanuda con una comprobación inmediata. - Un tic de
clockde 30 segundos recalcula las etiquetas «hace N min» incluso mientras los datos no cambian. - Si Reverb está conectado (
window.Echo), un evento.ticken el canalinfr.overviewpuede pasar esa misma actualización a modo push (actualmente no hace nada; véase Tiempo real (Reverb)).
Orígenes de datos
Todos de solo lectura. La aplicación lee las tablas de recursos heredadas tal cual.
| Eje | Tabla / servicio | Conexión | Uso |
|---|---|---|---|
| Parque de servidores / series | server_status (loadavg·free·df-*·traffic-out) |
legacy (MAIN) |
bandas de carga/memoria/disco/red, actividad |
| RAID | storage_status (status_summary) |
legacy |
evidencia Optimal/Degraded/Failed |
| Copia de seguridad | backup_history |
legacy |
tasa de éxito a 14 días · última · tipo |
| IDS | suricata_alert_ct |
legacy_glory |
anillo de detecciones · base de la seguridad (sev 1·2) |
| Anomalía de IA | kitsune_detail_log (is_blocked) |
legacy_glory |
detecciones · amenazas · base de la seguridad |
| Ataque web | nginx_meta_ct (is_suspicious) |
legacy_glory |
detecciones · proporción de peticiones sospechosas |
| Reputación / bloqueo | blacklist_info |
legacy_glory |
bloqueadas hoy · presión de bloqueos nuevos |
| Higiene TLS | suricata_tls_ct (version) |
legacy_glory |
proporción de TLS débil (<1.2) |
| Rendimiento del servicio web | WebMetricService::dashboard() (infr_web_metric) |
central | KPI web · panel de rendimiento |
| Rendimiento de BD | DbCollectorService::latest() · infr_db_metric · infr_collector (access=database) |
central | KPI de BD · panel de rendimiento |
| Exposición del cortafuegos | FirewallService::dashboard() (infr_instance_firewall) |
central | base de la seguridad fw |
Fórmulas de las puntuaciones compuestas
Disponibilidad = media ponderada de los ejes que tienen datos (los pesos se renormalizan). Cada eje observa toda la ventana mostrada y penaliza según «cuánto tiempo (duración) y con qué gravedad (pico)» se rebasó el umbral.
| Eje | Peso | Base de la penalización |
|---|---|---|
| actividad | 0.30 | fracción de ciclos sin respuesta después del primer informe |
| carga | 0.15 | rebase de la carga media ≥ 8 (≥16 = totalmente sobrecargado) |
| memoria | 0.15 | uso > 99% (100% = presión total) |
| disco | 0.15 | espacio libre en la raíz < 1G (solo las particiones medidas; 0G = riesgo total) |
| RAID | 0.15 | un nodo Degraded/Failed puntúa 0 |
| copia de seguridad | 0.10 | tasa de éxito a 14 días |
Seguridad = media ponderada de las 6 métricas de evidencia (solo las presentes). Cada una normaliza una medición de 24 h de glory a una puntuación de salud (0–100): cuanto mayor es el volumen o la proporción, mayor es la penalización (penalización máxima 45 → suelo 55). Solo cuando ninguna métrica está disponible se recurre al escalar heurístico de detections().
| Métrica | Peso | Origen (24 h) | Penalización máxima en |
|---|---|---|---|
| ids | 0.22 | número de alertas IDS de gravedad alta (sev 1·2) | 200 |
| ai | 0.22 | número de bloqueos de Kitsune | 500 |
| web | 0.20 | proporción % de peticiones sospechosas de nginx | 8% |
| rep | 0.14 | número de IP bloqueadas nuevas hoy | 400 |
| tls | 0.12 | proporción % de TLS débil (<1.2) | 5% |
| fw | 0.10 | puertos críticos con IP pública ×2 + críticos + exposición no gestionada | 200 |
TTL de la caché
| Objetivo | TTL | Clave |
|---|---|---|
| Datos reales del resumen (build) | 30s | infr:overview:data:v1:{points} |
| Panel de rendimiento del servicio (web/db) | 15s | infr:ov:perf |
| Base de la seguridad (PostureService) | 300s | infr:sec:posture:v1:<range> |
Acceso
- Pantalla de solo lectura. La página de inicio (
/) aplica únicamente el middlewareinfr.auth: cualquier nivel autenticado (demo=1 en adelante) puede verla. No hay acciones de escritura, así que tampoco hay control por nivel. - Las evidencias de seguridad y las cifras de detección son visibles aquí incluso para demo (1), pero el área de rol de seguridad específica (
/security/*) tiene su propio control coninfr.level:2. - Para el esquema de niveles en conjunto, véase Niveles RBAC.
Resolución de problemas y preguntas frecuentes
Q. Los indicadores y las tarjetas muestran valores que parecen de demostración.
Es la maqueta de reserva que se activa cuando la conexión con la base de datos heredada (legacy/legacy_glory) falla o no tiene datos. Si el source de la carga útil es mockup y rev es 0, la base de datos real no está disponible. Compruebe la conectividad de la base de datos y la ingesta de los recolectores (Administración ▸ Recolectores).
Q. Un símbolo de evidencia muestra —.
Ese eje no tiene datos (queda excluido de la ponderación). Por ejemplo, si la CMDB de cortafuegos (infr_instance_firewall) está vacía, fw muestra —: hacen falta activos de cortafuegos, no la antigua firewall_status. RAID se excluye cuando no existe un storage_status.host coincidente.
Q. Los datos no se actualizan.
Compruebe (1) si el conmutador de la cabecera indica PAUSED y (2) si la pestaña está en segundo plano (el sondeo se pausa mientras está oculta). Los recolectores ingieren con una cadencia aproximada de 5 minutos fuera de Laravel, así que incluso con un sondeo de 30 s el valor real puede ir varios minutos por detrás. Si rev no ha cambiado, la carga pesada no se descarga.
Q. El servidor con el pico de carga cambia según la vista.
El pico se calcula sobre el conjunto de servidores de la vista actual (división/página). Para razonar sobre todos los servidores, ponga la división en All.
Q. La entrada de red siempre es 0.
server_status no tiene un origen de entrada por alias, así que net_in se rellena con 0 y solo se mide traffic-out (paquetes). Para el ancho de banda detallado, véase Tráfico (E/S de red).
Q. Cambiar el rango no mueve los KPI ni los indicadores.
Es lo esperado. El range (6h/24h/3d) se aplica solo a las bandas inferiores; las tarjetas KPI y los indicadores de salud son un concepto fijo de 24 h.
Relacionado
- Infraestructura ▸ Servidores: series temporales de carga y memoria por servidor en profundidad
- Infraestructura ▸ Estado: sondas en vivo de las tarjetas de nodo
- Seguridad ▸ Resumen: el embudo de defensa amenaza→detección→respuesta
- Servicio ▸ Web · Servicio ▸ Base de datos: las pantallas de origen del panel de rendimiento
- Infraestructura ▸ Alertas: políticas de alerta para el rebase de umbrales
- Tiempo real (Reverb): contexto sobre el paso del sondeo al push
