Monitorización y Troubleshooting
Monitorización y Troubleshooting
Introducción
La monitorización a nivel de sistema es fundamental para diagnosticar problemas de rendimiento, bloqueos, consumo excesivo de recursos o fallos de red.
Estas herramientas permiten observar en tiempo real el estado del sistema y son clave durante:
- Incidentes en producción
- Análisis de rendimiento
- Verificación tras cambios
- Troubleshooting rápido
CPU y Memoria
top
Herramienta básica para ver procesos en tiempo real.
top
Campos importantes:
- **%CPU**: uso de CPU por proceso
- **%MEM**: uso de memoria
- **load average**: carga del sistema (1, 5, 15 min)
- **us / sy / id**: uso de CPU (usuario / sistema / idle)
Ordenar por CPU:
P
Ordenar por memoria:
M
htop
Versión mejorada de `top` (si está instalada).
dnf install -y htop
htop
Ventajas:
- Vista gráfica
- Navegación con teclado
- Kill de procesos interactivo
- Filtros rápidos
vmstat
Muestra estadísticas de memoria, CPU y procesos.
vmstat 2
Campos clave:
- **r**: procesos esperando CPU
- **si / so**: swap in / swap out
- **us / sy / id / wa**: uso de CPU
Swap constante ≠ buena señal.
Disco y E/S
iostat
Permite analizar uso de disco y latencias.
dnf install -y sysstat
iostat -xz 2
Campos importantes:
- **%util**: disco saturado si se acerca a 100%
- **await**: latencia de E/S
- **r/s, w/s**: operaciones por segundo
iotop
Muestra procesos que generan E/S en disco.
dnf install -y iotop
iotop
Muy útil para detectar:
- Backups agresivos
- Logs descontrolados
- Procesos bloqueantes
Red
ss
Reemplazo moderno de `netstat`.
Ver sockets activos:
ss -tulnp
Filtrar por puerto:
ss -tulnp | grep 5432
Ver conexiones establecidas:
ss -tan
netstat
Aún presente en algunos sistemas.
dnf install -y net-tools
netstat -tulnp
Procesos y ficheros abiertos
lsof
Lista ficheros abiertos por procesos.
Ver qué proceso usa un puerto:
lsof -i :80
Ver ficheros abiertos por un PID:
lsof -p 1234
Ver procesos usando un fichero:
lsof /ruta/fichero
Análisis de procesos (básico)
strace
Permite trazar llamadas al sistema de un proceso.
Adjuntarse a un PID:
strace -p 1234
Ejecutar un comando con traza:
strace ls /tmp
Guardar salida en fichero:
strace -p 1234 -o /tmp/strace.log
Casos típicos:
- Procesos colgados
- Problemas de permisos
- Accesos a ficheros inexistentes
> ⚠️ Usar con cuidado en producción (genera carga y mucho output).
Flujo recomendado de diagnóstico
1. `top` / `htop` → ¿CPU o memoria? 2. `vmstat` → ¿swap o espera? 3. `iostat` / `iotop` → ¿disco saturado? 4. `ss` → ¿problema de red? 5. `lsof` → ¿qué proceso usa qué? 6. `strace` → último recurso
Buenas prácticas
- No diagnosticar solo con una herramienta
- Correlacionar CPU, memoria, disco y red
- Usar intervalos (`2`, `5`) para ver tendencias
- Guardar evidencias (logs, outputs)
- Evitar `strace` prolongado en producción