Este artículo explica cómo solucionar los gráficos a nivel de nodo en Proxmox VE que muestran la fecha 1969-12-31 y no presentan datos después de una migración de máquinas virtuales.
Síntomas
- Los gráficos a nivel de nodo (uso de CPU, carga del servidor, uso de memoria, tráfico de red) muestran la fecha 1969-12-31 y no presentan datos
- Los gráficos de las VMs funcionan correctamente
- Los gráficos se visualizan correctamente al acceder directamente a la interfaz web del nodo afectado, pero fallan cuando se ven desde otros nodos del clúster
- Ejecutar
pvesh get nodes/<nodo>/rrddata --timeframe hourdesde nodos remotos devuelve:
RRD error: start (2137035316) should be less than end (1774687139)Causa
Durante las migraciones de VMs (especialmente migraciones masivas mediante PDM), los archivos RRD del nodo origen pueden escribirse con marcas de tiempo futuras corruptas.
Cuando Proxmox VE se actualizó de la versión 8 a la 9, el formato RRD cambió. El proceso de actualización conservó los archivos de formato antiguo con el sufijo .old en /var/lib/rrdcached/db/pve2-node/. Proxmox lee la marca de tiempo last_update de estos archivos antiguos para determinar el tiempo de inicio de la consulta. Si el archivo antiguo contiene una marca de tiempo futura (por ejemplo, año 2037), el tiempo de inicio excede el tiempo de fin, causando el error RRD.
Los archivos corruptos existen en los nodos remotos del clúster, no en el nodo afectado, porque cada nodo mantiene su propia copia de los datos RRD de los demás miembros del clúster.
Diagnóstico
- Confirme el error desde un nodo remoto del clúster:
pvesh get nodes/<nodo-afectado>/rrddata --timeframe hour- Verifique que los gráficos funcionan al acceder directamente a la interfaz web del nodo afectado (por ejemplo,
https://hostname-del-nodo:8006). - Identifique el archivo corrupto en los nodos remotos:
ls -la /var/lib/rrdcached/db/pve2-node/<nodo-afectado>*- Verifique que la marca de tiempo está en el futuro:
perl -e 'print scalar localtime(2137035316), "\n"'Salida: Sat Sep 19 23:55:16 2037
Solución
Elimine el archivo RRD de formato antiguo corrupto en cada nodo remoto del clúster que muestre el error:
rm /var/lib/rrdcached/db/pve2-node/<nodo-afectado>.oldReemplace <nodo-afectado> con el nombre real del nodo.
Esto debe hacerse en cada nodo donde los gráficos estén rotos. No se requiere reiniciar ningún servicio—la corrección toma efecto inmediatamente.
Lo que NO soluciona el problema
Las siguientes acciones no resolverán este problema:
- Eliminar el archivo RRD de formato nuevo (
/var/lib/rrdcached/db/pve-node-9.0/<nodo>) en el nodo afectado - Reiniciar
rrdcacheden el nodo afectado - Reiniciar
pveproxyopvestatden cualquier nodo - Eliminar directorios RRD de VMs bajo
pve-vm-9.0/
Estas acciones afectan los archivos incorrectos. El problema está específicamente en los archivos .old de formato antiguo en los nodos remotos.
Notas adicionales
- Los archivos
pve2-node/*.oldson remanentes de la actualización de PVE 8 a PVE 9. Se conservan para mantener continuidad en los gráficos históricos, pero pueden eliminarse de forma segura si están corruptos. - Si los gráficos de almacenamiento también están afectados, verifique los archivos correspondientes en
/var/lib/rrdcached/db/pve2-storage/. - Entradas de log relacionadas como
PullMetric.pm: Use of uninitialized valueindican que pveproxy no puede recolectar métricas, lo cual ocurre frecuentemente durante o después de migraciones cuando los datos RRD no están disponibles.