# Guia de Configuracion ## Configuracion General ### Variables de Entorno El archivo `.env` contiene toda la configuracion del sistema: ```env # ==================== 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 " # 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` ```env 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 " ``` 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`: ```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: ```json { "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: ```bash # 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`: ```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 ```bash ./scripts/restore-db.sh /backups/msp_monitor_20240115_020000.sql.gz ``` ## Configuracion de SSL ### Renovacion Automatica El contenedor de Certbot renueva automaticamente. Verificar: ```bash 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`: ```env # Nivel de log: debug, info, warn, error LOG_LEVEL="info" ``` ### Rotacion de Logs Docker maneja la rotacion. Configurar en `/etc/docker/daemon.json`: ```json { "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } } ``` ## Personalizacion ### Tema Visual Editar `tailwind.config.ts` para cambiar colores: ```typescript colors: { primary: { 500: '#06b6d4', // Color principal // ... }, // ... } ``` ### Logo Reemplazar archivo en `public/logo.png` ### Titulo Editar `src/app/layout.tsx`: ```typescript export const metadata: Metadata = { title: 'Mi Dashboard MSP', // ... } ```