Diagnóstico del Sistema, Monitorización y Logs con journalctl
Un administrador de sistemas Linux debe ser capaz de diagnosticar con rapidez por qué un servicio no arranca, qué proceso tiene ocupado un puerto de red o qué está consumiendo el 100% de la CPU o el disco.
Las herramientas modernas de diagnóstico en Linux (ss, lsof, journalctl, htop y df) proporcionan visibilidad total sobre la salud del sistema.
1. Diagnóstico de Puertos y Red con ss y lsof #
Cuando un servicio falla al iniciar con el error "Address already in use" (dirección en uso), necesitamos identificar inmediatamente qué proceso ocupa el puerto.
Inspeccionar todos los puertos a la escucha con ss: #
1sudo ss -tulpn
-t: Protocolo TCP.-u: Protocolo UDP.-l: Sockets en estado de escucha (Listening).-p: Muestra el nombre del proceso y su PID.-n: Muestra puertos en formato numérico (ej. 80 en vez dehttp).
Averiguar qué proceso exacto usa un puerto con lsof: #
1# Averiguar quién ocupa el puerto 80 2sudo lsof -i :80
2. Inspección Centralizada de Logs con journalctl #
En los sistemas con systemd, todos los demonios envían sus registros a un diario centralizado (systemd-journald).
1# Ver logs de un servicio en tiempo real (modo follow / continuo) 2sudo journalctl -u nginx -f 3 4 # Ver las últimas 50 líneas de un servicio 5sudo journalctl -u postgresql -n 50 6 7 # Filtrar solo errores críticos del sistema 8sudo journalctl -p err -b 9 10 # Ver logs generados desde el último arranque del servidor 11sudo journalctl -b
3. Monitorización de Recursos (CPU, Memoria y Almacenamiento) #
1┌──────────────────────────────────────────────────────────────────────────────┐ 2│ MONITORIZACIÓN BÁSICA │ 3├───────────────────────┬──────────────────────────────────────────────────────┤ 4│ htop / top │ CPU en tiempo real, hilos y memoria por proceso │ 5│ free -h │ Memoria RAM física, memoria usada, buffers y Swap │ 6│ df -h │ Espacio libre y ocupado en particiones de disco │ 7│ uptime │ Tiempo activo del servidor y Load Average (1, 5, 15) │ 8└───────────────────────┴──────────────────────────────────────────────────────┘
Comandos esenciales de comprobación rápida: #
1# Verificar estado de la memoria RAM 2free -h 3 4 # Verificar espacio disponible en disco 5df -h 6 7 # Ver tiempo encendido y carga media 8uptime
Resumen del tema
Conceptos clave #
- Diagnóstico de Puertos:
ss -tulpnylsof -i :puertoidentifican qué proceso y PID bloquean un puerto de red. - Auditoría con
journalctl: inspección y seguimiento en tiempo real (-f) de los registros de cualquier demonio administrado por systemd. - Métricas de Recursos:
htop,free -hydf -hpermiten prevenir saturaciones de RAM, CPU y disco antes de que afecten a la producción.
Qué debes recordar #
Ante cualquier fallo en un servidor, sigue siempre el ciclo de diagnóstico: revisa el estado del servicio con systemctl status, lee sus logs detallados con journalctl -u servicio -n 50 e inspecciona los puertos con ss -tulpn.