# Proxmox: Servicios Colgados - Diagnóstico y Soluciones

## Descripción del Problema

Proxmox ocasionalmente experimenta un estado donde los servicios del sistema de gestión se "cuelgan", resultando en:
- **Frontend web inaccesible** o extremadamente lento
- **Comandos de Proxmox no responden** (pvesh, pvecm, qm, pct)
- **VMs/Containers siguen funcionando** pero sin gestión
- **SSH funciona** pero utilidades de Proxmox fallan
- **Contenedores fucionales** pero lenbtos y pesados sin presentar cargar que lo explique.

## Diagnóstico

### Verificación del Estado de Servicios
```bash
# Comprobar posibles problemas con NFS
df -h 

# Comprobar estado de servicios críticos
systemctl status pve-cluster
systemctl status pvedaemon 
systemctl status pvestatd
systemctl status pveproxy

# Verificar logs para identificar errores
journalctl -u pve-cluster -f
journalctl -u pvedaemon -f
tail -f /var/log/pve/tasks/active
```

### Indicadores Comunes
- **pve-cluster**: Estado "failed" o "timeout"
- **pvedaemon**: No responde a peticiones API
- **pveproxy**: Error 502/503 en interfaz web
- **Alta carga del sistema** sin razón aparente

### Verificación de Recursos
```bash
# Comprobar memoria y CPU
free -h
top -n 1

# Estado del almacenamiento
df -h
iostat -x 1 3

# Conectividad de cluster (si aplica)
pvecm status
```

## Soluciones

### Solución Rápida (Restart de Servicios)
```bash
# Secuencia de reinicio recomendada
service pve-cluster restart && \
service pvedaemon restart && \
service pvestatd restart && \
service pveproxy restart

# Verificar que los servicios han iniciado correctamente
systemctl status pve-cluster pvedaemon pvestatd pveproxy
```

### Solución Alternativa por Pasos
```bash
# Si el comando conjunto falla, reiniciar individualmente
systemctl stop pveproxy
systemctl stop pvestatd  
systemctl stop pvedaemon
systemctl stop pve-cluster

# Esperar unos segundos y reiniciar en orden
systemctl start pve-cluster
sleep 5
systemctl start pvedaemon
sleep 3
systemctl start pvestatd
systemctl start pveproxy
```

### Troubleshooting Avanzado

#### Si pve-cluster no inicia:
```bash
# Verificar quorum (en clusters)
pvecm expected 1

# Limpiar archivos de lock problemáticos
rm -f /var/lib/pve-cluster/.pmxcfs.lockfile
systemctl start pve-cluster
```

#### Si persisten problemas:
```bash
# Reinicio completo del stack de Proxmox
systemctl restart pve-cluster pvedaemon pvestatd pveproxy

# Reinicio completo del stack de Proxmox completo. Opción más dura.
systemctl restart pve-cluster pvedaemon pvestatd pveproxy corosync

# Como último recurso (CUIDADO: puede afectar VMs)
# Si tienes un KVM remoto para la máquina baremetal es el momento de activarl y tenerla abierta
reboot
```

## Prevención

### Monitoreo Proactivo
```bash
# Script de verificación periódica
#!/bin/bash
services=("pve-cluster" "pvedaemon" "pvestatd" "pveproxy")
for service in "${services[@]}"; do
    if ! systemctl is-active --quiet $service; then
        echo "$(date): $service is down" >> /var/log/pve-health.log
        systemctl restart $service
    fi
done
```

### Configuración de Cron
```bash
# Añadir al crontab (cada 5 minutos)
*/5 * * * * /path/to/pve-health-check.sh
```

## Causas Comunes

- **Sobrecarga de memoria** en el host Proxmox
- **Problemas de red** en configuraciones de cluster
- **Almacenamiento lento** o con alta latencia
- **Actualizaciones parciales** o interrumpidas
- **Configuraciones de firewall** bloqueando puertos internos
- **Problemas con monatajes NFS** bloquenado el subsistema de ficheros PVE

## Puertos Críticos de Proxmox
- **8006**: Interfaz web HTTPS
- **5404/5405**: Corosync (cluster)
- **111/2049**: NFS (si se usa)
- **3128**: Proxy de descarga

## Logs Importantes
- `/var/log/pve/tasks/active` - Tareas en ejecución
- `/var/log/daemon.log` - Servicios del sistema  
- `/var/log/pve/cluster.log` - Información del cluster
- `journalctl -u pve-*` - Logs específicos de servicios

## Notas Adicionales

⚠️ **Importante**: Los VMs y containers continúan ejecutándose durante estos problemas, solo se ve afectada la gestión.

✅ **Tip**: Mantener siempre acceso SSH alternativo para poder ejecutar estos comandos de recuperación.

##### Aviso
Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. 
También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad.
El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de [Castris](https://castris.com)

Si necesitas soporte profesional puedes contratar con Castris [soporte profesional](https://intranet.castris.com/store/soporte-profesional).