Cómo leer los logs del servidor web y detectar errores 500, 404 y 502
¿Por qué revisar los logs?
Cuando un usuario ve “Error 500” o “404 Not Found”, el servidor ya registró lo sucedido.
Leer access.log y error.log te permite:
- Ver qué URL falló y con qué código.
- Descubrir la IP origen (útil contra ataques o crawlers).
- Saber la hora exacta del error para correlacionar cambios de código.
Tip rápido Si a Nosirve.com muestra que tu sitio está caído solo para algunos usuarios, revisa los logs: te dirán si es un error 5xx global o algo puntual.
1. Ubicar los archivos de log
| Servidor | Access Log | Error Log |
|---|---|---|
| Apache | /var/log/apache2/access.log | /var/log/apache2/error.log |
| Nginx | /var/log/nginx/access.log | /var/log/nginx/error.log |
| IIS | C:\inetpub\logs\LogFiles\W3SVC1\u_ex*.log | C:\Windows\System32\LogFiles\HTTPERR |
En hostings administrados (cPanel, Plesk), suele haber un panel de Raw Logs o Metrics.
2. Leer logs en tiempo real con tail
Linux / macOS
sudo tail -f /var/log/nginx/error.log
-
-fsigue el archivo en vivo. -
Usa
Ctrl+Cpara salir.
Windows PowerShell (IIS)
Get-Content "C:\inetpub\logs\LogFiles\W3SVC1\u_ex230424.log" -Wait
3. Ejemplo práctico: detectar un Error 500 en Nginx
Entrada típica de error.log:
2025/04/24 13:02:11 [error] 3128#3128: *56 rewrite or internal redirection cycle while internally redirecting to "/index.php", client: 203.0.113.10, server: example.com, request: "GET / HTTP/2.0", host: "example.com"
-
[error] → nivel de severidad.
-
client:→ IP del visitante. -
request:→ método y ruta que falló.
Solución rápida
-
Revisa reglas de
.htaccessotry_filesen Nginx. -
Comprueba permisos de
index.php. -
Reproduce el error tras cada cambio y verifica que desaparece del log.
4. Filtrar errores 4xx y 5xx con grep y awk
# Ver solo errores 4xx y 5xx del día
awk '$9 ~ /4[0-9][0-9]|5[0-9][0-9]/' /var/log/nginx/access.log
-
$9es el campo del código HTTP en formato combinado. -
Ajusta la expresión si usas formato “common” (sin referer/user‑agent).
5. Activar logs “verbose” para diagnósticos temporales
Apache
LogLevel debug rewrite:trace3
Nginx
error_log /var/log/nginx/error.log notice;
¡Importante!
Vuelve a
warnoerrorcuando termines: los logs verbose consumen disco muy rápido.
6. Herramientas gráficas para analizar logs
| Herramienta | Tipo | Ventajas |
|-------------|------|----------|
| GoAccess| CLI+Web | Dashboard en tiempo real, sin base de datos |
| AWStats | Perl | Informes HTML, ligero |
| ELK Stack| Elastic | Búsqueda y visualización avanzada |
Ejemplo GoAccess en Docker:
docker run --name goaccess \
-p 7890:7890 \
-v /var/log/nginx:/logs \
allinurl/goaccess \
--log-format=COMBINED /logs/access.log
Accede a http://localhost:7890 para ver el panel.
7. Buenas prácticas de rotación y retención
-
Activa logrotate (Linux) o tareas programadas en Windows.
-
Retén archivos de 30 días y comprímelos (
.gz). -
Usa S3 o Google Cloud Storage para archivarlos si tu disco es limitado.
Preguntas frecuentes
¿Puedo borrar los logs para liberar espacio?
Sí, pero rota primero: evita borrar el archivo abierto por el servicio; usa logrotate o reinicia el servidor tras mover el log.
¿Cómo sé si un error 404 es ataque o error genuino?
Revisa si la IP repite cientos de rutas inexistentes; si es así, limita con un firewall (Fail2Ban, mod_evasive).
¿Es seguro exponer GoAccess al público?
Ponlo detrás de autenticación básica o en una VPN privada; los logs contienen IP y rutas sensibles.
Conclusión
Leer los logs te da:
-
Visibilidad inmediata de errores 500, 404 y 502.
-
Datos para acelerar la corrección y mejorar uptime.
-
Evidencia ante tu proveedor de hosting.
La próxima vez que tu página “no sirva”, inspecciona los logs y comparte tus hallazgos en Nosirve.compara ayudar a otros administradores.
Palabras clave
leer logs apache · error 500 nginx · access.log · error.log · detectar error 404 · troubleshooting servidor web