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

333 lines
7.1 KiB
Markdown

# 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 <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`
```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 <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`:
```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',
// ...
}
```