- 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
333 lines
7.1 KiB
Markdown
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',
|
|
// ...
|
|
}
|
|
```
|