8 Monitoreo del Sistema
Las herramientas de monitoreo te permiten supervisar el rendimiento, recursos y estado general del sistema en tiempo real con visualizaciones modernas.
8.1 htop - Monitor interactivo de procesos
htop es una versión mejorada de top con interfaz colorida e interactiva.
8.1.2 Funciones útiles
8.1.2.1 Gestión de procesos
- Space: Marcar proceso
- U: Mostrar solo procesos de un usuario
- t: Vista de árbol de procesos
- H: Mostrar/ocultar hilos de usuario
- K: Mostrar/ocultar hilos del kernel
8.1.2.2 Filtros y búsqueda
# Dentro de htop:
# F4 + "python" - Filtrar solo procesos de Python
# F3 + "nginx" - Buscar proceso nginx
# \ - Filtro incremental8.1.3 Configuración personalizada
Archivo ~/.config/htop/htoprc:
# Campos a mostrar
fields=0 48 17 18 38 39 40 2 46 47 49 1
# Opciones
hide_kernel_threads=1
hide_userland_threads=1
show_thread_names=0
show_program_path=1
highlight_base_name=1
tree_view=18.2 fastfetch - Información del sistema moderna
fastfetch es el sucesor oficial y moderno de neofetch, ofreciendo mejor rendimiento y más opciones de personalización.
⚠️ Migración desde neofetch
neofetch ha sido marcado como obsoleto y ya no recibe actualizaciones. fastfetch es el reemplazo oficial recomendado por la comunidad.
# Desinstalar neofetch si está instalado
brew uninstall neofetch 2>/dev/null || true
# Instalar fastfetch (el reemplazo moderno)
brew install fastfetch8.2.1 Uso básico
# Información completa del sistema
fastfetch
# Solo información específica
fastfetch --disable packages shell resolution de wm theme icons cursor
# Con logo personalizado
fastfetch --logo /path/to/image.png
# ASCII distro específico
fastfetch --logo arch8.2.2 Configuración personalizada
Archivo ~/.config/fastfetch/config.jsonc:
{
"logo": {
"source": "macos",
"padding": {
"top": 2,
"left": 4
}
},
"display": {
"separator": " -> ",
"key": {
"width": 10
}
},
"modules": [
"title",
"separator",
"os",
"host",
"kernel",
"uptime",
"packages",
"shell",
"terminal",
"cpu",
"gpu",
"memory",
"disk"
]
}8.2.3 Comparación de rendimiento
| Herramienta | Estado | Velocidad | Memoria | Mantenimiento |
|---|---|---|---|---|
fastfetch |
✅ Activo | ~50ms | Bajo | Activo |
neofetch |
❌ Obsoleto | ~200ms | Alto | Abandonado |
screenfetch |
⚠️ Inactivo | ~150ms | Medio | Mínimo |
8.2.4 Scripts con fastfetch
8.2.4.1 System info script moderno
#!/bin/bash
# system-report.sh
echo "=== SYSTEM REPORT $(date) ==="
fastfetch --format json > /tmp/system_info.json
# Extraer información específica con jq
OS=$(jq -r '.os.name' /tmp/system_info.json)
KERNEL=$(jq -r '.kernel.release' /tmp/system_info.json)
CPU=$(jq -r '.cpu.name' /tmp/system_info.json)
MEMORY=$(jq -r '.memory.used + " / " + .memory.total' /tmp/system_info.json)
echo "OS: $OS"
echo "Kernel: $KERNEL"
echo "CPU: $CPU"
echo "Memory: $MEMORY"
echo -e "\n=== DISK USAGE ==="
df -h | grep -E '^(/dev/)'
echo -e "\n=== TOP PROCESSES ==="
ps aux --sort=-%cpu | head -6
echo -e "\n=== NETWORK INTERFACES ==="
ip addr show | grep -E '^[0-9]+:|inet '
echo -e "\n=== RECENT LOGINS ==="
last -n 5
echo -e "\n=== SYSTEM LOAD ==="
uptime8.3 Herramientas complementarias
8.3.1 iotop - Monitor de I/O
# Monitorear I/O por proceso
sudo iotop
# Solo procesos activos
sudo iotop -o
# Acumulativo
sudo iotop -a8.3.2 nethogs - Monitor de red por proceso
# Monitor de ancho de banda
sudo nethogs
# Interfaz específica
sudo nethogs eth08.3.3 Monitoring script completo
#!/bin/bash
# system-monitor.sh
LOG_FILE="/var/log/system-monitor.log"
ALERT_THRESHOLD_CPU=80
ALERT_THRESHOLD_MEM=85
ALERT_THRESHOLD_DISK=90
log_message() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}
check_cpu() {
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | awk -F'%' '{print $1}')
cpu_usage=${cpu_usage%.*} # Remove decimal
if [ "$cpu_usage" -gt "$ALERT_THRESHOLD_CPU" ]; then
log_message "ALERT: CPU usage is ${cpu_usage}%"
return 1
fi
return 0
}
check_memory() {
mem_usage=$(free | grep Mem | awk '{printf("%.0f", $3/$2 * 100.0)}')
if [ "$mem_usage" -gt "$ALERT_THRESHOLD_MEM" ]; then
log_message "ALERT: Memory usage is ${mem_usage}%"
return 1
fi
return 0
}
check_disk() {
disk_usage=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')
if [ "$disk_usage" -gt "$ALERT_THRESHOLD_DISK" ]; then
log_message "ALERT: Disk usage is ${disk_usage}%"
return 1
fi
return 0
}
# Ejecutar verificaciones
log_message "Starting system check..."
check_cpu && log_message "CPU: OK"
check_memory && log_message "Memory: OK"
check_disk && log_message "Disk: OK"
log_message "System check completed"
Tips de monitoreo
- Usa htop para debugging de rendimiento en tiempo real
- fastfetch es útil para screenshots y reportes de sistema (reemplaza neofetch)
- Combina estas herramientas con scripts para monitoreo automatizado
En el próximo capítulo cubriremos herramientas de texto y documentos.