Files
MSP-CAS/docs/guias/configuracion.md
MSP Monitor f4491757d9 Initial commit: MSP Monitor Dashboard
- Next.js 14 frontend with dark cyan/navy theme
- tRPC API with Prisma ORM
- MeshCentral, LibreNMS, Headwind MDM integrations
- Multi-tenant architecture
- Alert system with email/SMS/webhook notifications
- Docker Compose deployment
- Complete documentation
2026-01-21 19:29:20 +00:00

7.1 KiB

Guia de Configuracion

Configuracion General

Variables de Entorno

El archivo .env contiene toda la configuracion del sistema:

# ==================== BASE DE DATOS ====================
# URL de conexion a PostgreSQL
DATABASE_URL="postgresql://usuario:password@host:5432/database?schema=public"

# Credenciales para Docker
POSTGRES_USER=mspmonitor
POSTGRES_PASSWORD=password-seguro
POSTGRES_DB=msp_monitor

# ==================== CACHE Y COLAS ====================
# URL de conexion a Redis
REDIS_URL="redis://localhost:6379"

# ==================== SEGURIDAD ====================
# Clave secreta para JWT (minimo 32 caracteres)
JWT_SECRET="clave-muy-segura-de-al-menos-32-caracteres"

# ==================== INTEGRACIONES ====================
# MeshCentral
MESHCENTRAL_URL="https://mesh.tudominio.com"
MESHCENTRAL_USER="admin"
MESHCENTRAL_PASS="password"
MESHCENTRAL_DOMAIN="default"

# LibreNMS
LIBRENMS_URL="https://librenms.tudominio.com"
LIBRENMS_TOKEN="tu-token-api"

# Headwind MDM
HEADWIND_URL="https://mdm.tudominio.com"
HEADWIND_TOKEN="tu-token-api"

# ==================== NOTIFICACIONES ====================
# SMTP
SMTP_HOST="smtp.gmail.com"
SMTP_PORT="587"
SMTP_USER="tu-email@gmail.com"
SMTP_PASS="tu-app-password"
SMTP_FROM="MSP Monitor <noreply@tudominio.com>"

# Twilio (opcional)
TWILIO_ACCOUNT_SID=""
TWILIO_AUTH_TOKEN=""
TWILIO_PHONE_NUMBER=""

# ==================== APLICACION ====================
# URL publica de la aplicacion
NEXT_PUBLIC_APP_URL="https://monitor.tudominio.com"

# Entorno
NODE_ENV="production"

Configuracion de Integraciones

MeshCentral

  1. Crear usuario API en MeshCentral:

    • Acceder a MeshCentral como admin
    • Ir a "My Account" > "Security" > "Create Login Token"
    • O crear usuario dedicado con permisos de API
  2. Configurar en el dashboard:

    • Ir a Configuracion > Integraciones
    • Ingresar URL, usuario y password
    • Probar conexion
  3. Mapear grupos:

    • Cada cliente puede tener un grupo de MeshCentral asignado
    • Los dispositivos del grupo se sincronizaran automaticamente

LibreNMS

  1. Crear API Token en LibreNMS:

    • Ir a "Settings" > "API" > "API Settings"
    • Crear nuevo token con permisos de lectura
  2. Configurar en el dashboard:

    • Ir a Configuracion > Integraciones
    • Ingresar URL y token
    • Probar conexion
  3. Mapear grupos de dispositivos:

    • Crear grupos en LibreNMS para cada cliente
    • Asignar el grupo al cliente en el dashboard

Headwind MDM

  1. Obtener API Token:

    • Acceder a panel de admin de Headwind
    • Ir a configuracion de API
    • Copiar token de acceso
  2. Configurar en el dashboard:

    • Ir a Configuracion > Integraciones
    • Ingresar URL y token
    • Probar conexion

Configuracion de Notificaciones

Email (SMTP)

Para Gmail:

  1. Habilitar autenticacion de dos factores
  2. Crear "App Password" en configuracion de seguridad
  3. Usar el app password en SMTP_PASS
SMTP_HOST="smtp.gmail.com"
SMTP_PORT="587"
SMTP_USER="tu-cuenta@gmail.com"
SMTP_PASS="xxxx-xxxx-xxxx-xxxx"  # App password
SMTP_FROM="MSP Monitor <noreply@tudominio.com>"

Para otros proveedores:

Proveedor Host Puerto
Gmail smtp.gmail.com 587
Office 365 smtp.office365.com 587
SendGrid smtp.sendgrid.net 587
Mailgun smtp.mailgun.org 587

SMS (Twilio)

  1. Crear cuenta en Twilio
  2. Obtener Account SID y Auth Token
  3. Comprar numero de telefono
  4. Configurar en .env:
TWILIO_ACCOUNT_SID="ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
TWILIO_AUTH_TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
TWILIO_PHONE_NUMBER="+1234567890"

Webhooks

Los webhooks se configuran por regla de alerta:

  1. Crear regla de alerta
  2. Habilitar "Notificar por Webhook"
  3. Ingresar URL del endpoint

Formato del payload:

{
  "id": "alert-id",
  "severidad": "CRITICAL",
  "titulo": "Titulo de la alerta",
  "mensaje": "Descripcion detallada",
  "dispositivo": "Nombre del dispositivo",
  "cliente": "Nombre del cliente",
  "timestamp": "2024-01-15T10:30:00Z"
}

Configuracion de Usuarios y Permisos

Roles de Usuario

Rol Descripcion Permisos
SUPER_ADMIN Administrador global Todo
ADMIN Admin de cliente Gestion de su cliente
TECNICO Soporte tecnico Operaciones y monitoreo
CLIENTE Usuario cliente Solo lectura
VIEWER Vista limitada Dashboard basico

Crear Usuario

  1. Ir a Configuracion > Usuarios
  2. Click en "Nuevo Usuario"
  3. Completar:
    • Email
    • Nombre
    • Rol
    • Cliente (opcional)
    • Password (o usar SSO de MeshCentral)

Permisos Granulares

Ademas del rol, se pueden asignar permisos especificos:

recursos: dispositivos, alertas, reportes, configuracion, usuarios
acciones: read, write, delete, execute

Configuracion de Alertas

Reglas Predefinidas

El sistema incluye reglas por defecto:

Regla Metrica Umbral Severidad
CPU Alta cpu > 90% WARNING
CPU Critica cpu > 95% CRITICAL
RAM Alta ram > 85% WARNING
Disco Lleno disco > 90% WARNING
Temperatura Alta temperatura > 80 WARNING
Bateria Baja bateria < 15 WARNING

Crear Regla Personalizada

  1. Ir a Alertas > Reglas
  2. Click en "Nueva Regla"
  3. Configurar:
    • Nombre descriptivo
    • Tipo de dispositivo (opcional)
    • Metrica a monitorear
    • Condicion (>, <, >=, <=, ==)
    • Valor umbral
    • Duracion minima (evitar falsos positivos)
    • Severidad
    • Canales de notificacion

Configuracion de Backups

Backup Automatico

Agregar al crontab del servidor:

# Backup diario a las 2am
0 2 * * * /opt/msp-monitor/scripts/backup-db.sh >> /var/log/msp-backup.log 2>&1

Configuracion de Backup

Variables en .env:

# Directorio de backups
BACKUP_DIR="/backups"

# Dias de retencion
RETENTION_DAYS=30

# S3 (opcional)
S3_BUCKET="mi-bucket-backups"
AWS_ACCESS_KEY_ID="..."
AWS_SECRET_ACCESS_KEY="..."

Restaurar Backup

./scripts/restore-db.sh /backups/msp_monitor_20240115_020000.sql.gz

Configuracion de SSL

Renovacion Automatica

El contenedor de Certbot renueva automaticamente. Verificar:

docker compose -f docker/docker-compose.yml logs certbot

Certificado Manual

  1. Copiar certificados a docker/nginx/ssl/
  2. Actualizar paths en docker/nginx/conf.d/default.conf
  3. Reiniciar Nginx: docker compose restart nginx

Configuracion de Logs

Niveles de Log

En .env:

# Nivel de log: debug, info, warn, error
LOG_LEVEL="info"

Rotacion de Logs

Docker maneja la rotacion. Configurar en /etc/docker/daemon.json:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

Personalizacion

Tema Visual

Editar tailwind.config.ts para cambiar colores:

colors: {
  primary: {
    500: '#06b6d4', // Color principal
    // ...
  },
  // ...
}

Reemplazar archivo en public/logo.png

Titulo

Editar src/app/layout.tsx:

export const metadata: Metadata = {
  title: 'Mi Dashboard MSP',
  // ...
}