Base de datos

OBSIDIUM utiliza MariaDB como sistema de almacenamiento para gestionar métricas, nodos monitorizados, usuarios y eventos del sistema.

Visión general

La base de datos está diseñada bajo un modelo relacional estructurado, permitiendo escalabilidad, integridad de datos y eficiencia en consultas.

Modelo de datos

El sistema se organiza en varias entidades principales:

Tablas principales

Usuario

Gestiona los usuarios del sistema y sus roles.

Servidor

Representa cada máquina monitorizada dentro del sistema.

Agente

Asocia un agente de monitorización a un servidor.

Monitorización

Almacena métricas de rendimiento enviadas por los agentes.

Alertas

Eventos generados cuando se detectan condiciones anómalas.

Notificaciones

Registro de notificaciones enviadas a usuarios.

Log

Registro de acciones realizadas en el sistema.

Reglas

Define condiciones para generar alertas automáticamente.

Relaciones

Ejemplo de flujo de datos

  1. El agente envía métricas.
  2. Se almacenan en la tabla monitorizacion.
  3. Se evalúan reglas.
  4. Se generan alertas si es necesario.
  5. Se envían notificaciones a usuarios.

Diseño y escalabilidad

Ejemplo de consulta

SELECT cpu, ram, ultimo_chekeo 
FROM monitorizacion 
WHERE server_id = 1 
ORDER BY ultimo_chekeo DESC 
LIMIT 10;