Resumen: Sistema de Monitoreo del Servidor
🎯 Implementación Completada
Se ha implementado exitosamente un sistema de monitoreo en tiempo real de recursos del servidor para DocuCenter.
📂 Archivos Creados
1. Servicio de Métricas
Ubicación: app/Services/ServerMetricsService.php
Servicio que obtiene métricas del sistema operativo: - Uso de disco (disk_free_space/disk_total_space) - Uso de RAM (lectura de /proc/meminfo) - Uso de CPU (sys_getloadavg y /proc/stat) - Información del sistema (hostname, OS, PHP, uptime)
2. Componente Livewire
Ubicación: app/Http/Livewire/Admin/Reports/ServerMonitor.php
Componente con: - Auto-refresh cada 5 segundos (configurable) - Métodos para actualizar métricas individuales - Toggle para activar/desactivar auto-refresh - Integración con sistema de traducciones
3. Vista Blade
Ubicación: resources/views/livewire/admin/reports/server-monitor.blade.php
Interfaz responsive con: - 3 tarjetas principales (Disco, RAM, CPU) - Barras de progreso con código de colores - Botones de refresh individuales - Información del sistema - Leyenda de estados
4. Script de Prueba
Ubicación: scripts/test-server-monitor.sh
Script para verificar funcionamiento en Docker/producción.
5. Documentación
Ubicación: docs/technical/server-monitoring-system.md
Documentación completa del sistema.
🔧 Configuración
Ruta Agregada
// routes/web.php
Route::get('/server_monitor', \App\Http\Livewire\Admin\Reports\ServerMonitor::class)
->name('server_monitor');
URL de acceso: /admin/reports/server_monitor
Traducciones
Agregadas en:
- lang/es_panel.json (español)
- lang/en_panel.json (inglés)
✨ Características Principales
Métricas Monitoreadas
- Disco
- Total, usado, libre
- Porcentaje de uso
-
Alerta visual según nivel
-
RAM
- Total, usado, libre
- Buffers y caché
-
Porcentaje de uso
-
CPU
- Load average (1, 5, 15 min)
- Porcentaje de uso
- Desglose: usuario, sistema, idle
-
Número de CPUs
-
Sistema
- Hostname
- Sistema operativo
- Versión de PHP
- Uptime
Funcionalidades
- ✅ Auto-refresh: Cada 5 segundos (configurable)
- ✅ Refresh manual: Botón por cada métrica
- ✅ Toggle auto-refresh: Activar/desactivar
- ✅ Código de colores:
- Verde: < 60% (Normal)
- Amarillo: 60-80% (Advertencia)
- Rojo: > 80% (Crítico)
- ✅ Responsive: Funciona en móvil y desktop
- ✅ Timestamp: Última actualización visible
🔐 Seguridad
- Protegido por middleware
dynamicAclycheck.active.organization - Solo lectura de archivos del sistema
- Logging de errores
- Manejo de excepciones
🧪 Testing
Prueba Manual
./scripts/test-server-monitor.sh
Prueba en Navegador
http://localhost/admin/reports/server_monitor
Verificación de Funciones PHP
# Prueba realizada exitosamente:
php -r "echo disk_free_space('/') . PHP_EOL;"
# Resultado: Funciona correctamente
php -r "print_r(sys_getloadavg());"
# Resultado: Array con load averages
📊 Compatibilidad
Producción (Linux sin Docker)
✅ Totalmente funcional - Acceso directo a /proc/* - Métricas reales del servidor - Todas las características disponibles
Desarrollo (Docker)
⚠️ Métricas del contenedor - Muestra datos del contenedor, no del host - Funcional para desarrollo - Para métricas del host requiere configuración adicional
Sistemas Operativos
- ✅ Linux (Ubuntu, Debian, CentOS)
- ⚠️ Windows (solo disco)
- ⚠️ macOS (funcionalidad limitada)
🚀 Uso
Acceso
- Iniciar sesión en DocuCenter
- Navegar a
/admin/reports/server_monitor - Ver métricas en tiempo real
Configuración
El auto-refresh está activado por defecto (5 segundos).
Para cambiar el intervalo, editar en ServerMonitor.php:
public $refreshInterval = 5; // Cambiar a segundos deseados
📝 Convenciones Seguidas
- ✅ Comentarios en español
- ✅ NO usar emojis en código
- ✅ Sistema de traducciones integrado
- ✅ Middleware de seguridad aplicado
- ✅ Documentación en docs/technical/
- ✅ Scripts de testing en scripts/
- ✅ Logging apropiado de errores
🔄 Próximos Pasos Sugeridos
- Históricos: Almacenar métricas para gráficos temporales
- Alertas: Email cuando se superan umbrales
- Múltiples servidores: Monitorear varios servidores
- Métricas de aplicación: Jobs, cache, sesiones de Laravel
- Exportación: Generar reportes en PDF/CSV
✅ Verificación de Implementación
- [x] Servicio de métricas creado
- [x] Componente Livewire implementado
- [x] Vista responsive creada
- [x] Ruta configurada
- [x] Traducciones agregadas (ES/EN)
- [x] Middleware de seguridad aplicado
- [x] Script de prueba creado
- [x] Documentación completa
- [x] Pruebas básicas realizadas
📞 Soporte
Para problemas o mejoras:
1. Revisar logs: storage/logs/laravel.log
2. Consultar documentación: docs/technical/server-monitoring-system.md
3. Ejecutar script de prueba: ./scripts/test-server-monitor.sh
Implementación completada siguiendo las convenciones de DocuCenter y listo para uso en producción.