Proxmox VE: clústeres, máquinas virtuales y contenedores
La pantalla Proxmox conecta Atalaya con la API de uno o varios clústeres (o nodos sueltos) de Proxmox VE. Atalaya solo lee: usa un token de solo lectura y no puede arrancar, parar ni cambiar nada en Proxmox.
Qué hace
- Descubre los nodos, las máquinas virtuales (KVM) y los contenedores (LXC) y los da de alta como equipos, sin agente. Si ya tenías un equipo con la misma MAC, dirección o nombre, lo enlaza en vez de crear otro.
- Cuelga cada invitado de su nodo con las dependencias de Equipos (ver también el Mapa): si cae un nodo llega una sola alerta, con la lista de invitados afectados. Si una máquina migra a otro nodo, la dependencia se cambia sola. Una dependencia que pusiste tú a mano no se toca.
- Vigila el clúster como una entidad: sano, degradado (falta algún nodo) o sin quórum, con aviso al perder el quórum o un nodo.
- Lee el uso de CPU y memoria de cada nodo y de cada invitado (y el disco de los contenedores), como si los enviara un agente, para las gráficas y las reglas de umbral. Si el equipo tiene agente, se usan sus métricas.
- Rellena el inventario (procesador y memoria de los nodos, núcleos y memoria asignada a los invitados, sistema) con origen «Proxmox». Un cambio de memoria o de núcleos asignados queda anotado como cualquier cambio de hardware.
- Avisa de almacenamientos llenos o no disponibles, de invitados parados que deberían estar en marcha y de copias de seguridad atrasadas.
Crear el token en Proxmox
- En Proxmox, Centro de datos › Permisos › Usuarios › Añadir: un usuario
atalayaen el dominio Proxmox VE (pve), sin contraseña usable. - Permisos › Tokens de API › Añadir: usuario
atalaya@pve, nombrelectura, y desmarca «Privilege Separation». Copia el secreto que se muestra (solo se enseña una vez). - Permisos › Añadir › Permiso de usuario: ruta
/, usuarioatalaya@pve, rol PVEAuditor, con «Propagar».
El identificador del token es atalaya@pve!lectura. PVEAuditor deja ver el estado, las configuraciones y el contenido de los almacenamientos, y nada más.
Añadir el clúster
Añadir clúster, e indica:
- Dirección:
https://equipo:8006de cualquier nodo. En un clúster conviene escribir varias, separadas por comas: si un nodo no responde, Atalaya prueba el siguiente (sin esto, si cae justo el nodo al que se conecta, perdería la vista del clúster). - Identificador y secreto del token. El secreto se guarda cifrado con la clave maestra, igual que las credenciales, y no vuelve a mostrarse.
- Certificado: lo normal en Proxmox es el autofirmado. Con la opción por defecto, en la primera lectura Atalaya aprende la huella de la clave pública de cada dirección y desde entonces solo acepta esa (como la huella SSH de una sonda). Si renuevas el certificado de un nodo, Atalaya avisa de que la huella ha cambiado; edita el clúster y marca Olvidar la huella guardada. Con un certificado de una autoridad reconocida (Let's Encrypt), elige «De una autoridad». «No comprobar» acepta cualquier certificado y no se recomienda.
- Leer cada: 60 segundos por defecto. La configuración de los invitados, la versión de los nodos y las copias de seguridad se leen con menos frecuencia (cada 10 y 30 minutos).
- Avisar si una copia tiene más de: horas máximas desde la última copia de cada invitado (0 para no avisar). Atalaya las ve en los almacenamientos con contenido «copias» (incluidos Proxmox Backup Server); necesita el permiso de lectura de almacenamiento que ya da PVEAuditor.
- Dar de alta como equipos…: si lo desmarcas, solo se enlazan los equipos que ya existen.
Equipos creados y enlazados
- Los nodos se dan de alta con su dirección IP y la etiqueta
proxmox. Los invitados, con su nombre y la MAC; si Proxmox no da una IP (DHCP) y el descubrimiento de red ha visto esa MAC, se usa esa dirección. Si no hay forma de saber la dirección, el equipo se crea con su nombre como dirección y sin ping, y se completa cuando se descubre. - Cada invitado se busca primero por MAC, luego por dirección y por último por nombre (no distingue mayúsculas). En la tabla de invitados, el botón de opciones permite enlazarlo con otro equipo, no enlazarlo con ninguno o volver a dejarlo automático.
- Un invitado parado en Proxmox no tiene por qué responder al ping, así que su equipo no genera alerta de caída mientras esté parado. Si debería estar siempre en marcha, Atalaya abre su propia alerta «parado en Proxmox»: por defecto, para los que arrancan con el nodo (opción Arrancar al iniciar, onboot); cámbialo en las opciones del invitado.
- Quitar el clúster no borra los equipos; solo se deja de leer Proxmox y se sueltan las dependencias que se habían puesto.
Alertas del clúster
Son alertas de tipo clúster. Respetan los silencios por equipo, por etiqueta y generales.
| Alerta | Cuándo |
|---|---|
| Sin quórum (crítica) | El clúster no tiene quórum. |
| Clúster degradado | Falta un nodo del clúster y su equipo no tiene ya su propia alerta de caída (para no avisar dos veces); pasados unos minutos. |
| No se puede leer Proxmox | Tres lecturas seguidas fallan: token rechazado, huella distinta, red caída. |
| Almacenamiento casi lleno | A partir del porcentaje de Ajustes › Proxmox (85 %; crítico al 95 %). |
| Almacenamiento no disponible | Un almacenamiento no está activo (NFS caído, disco desmontado). |
| Invitado parado | Un invitado que debería estar en marcha está parado. |
| Copia atrasada | La última copia supera el máximo del clúster, o no hay ninguna. En las opciones de un invitado se puede indicar que no necesita copias. |
Las plantillas no cuentan para copias ni paradas.
API
| Ruta | Qué hace |
|---|---|
GET /api/v1/pve/clusters | Clústeres con su estado. |
POST /api/v1/pve/clusters | Añade uno (name, base_url, token_id, token_secret, tls_mode, interval_s, backup_max_age_h, auto_create). |
GET /api/v1/pve/clusters/{id} | Detalle con nodos, invitados y almacenamientos. |
PATCH /api/v1/pve/clusters/{id} | Cambia campos; forget_pins: true olvida las huellas. |
POST /api/v1/pve/clusters/{id}/poll | Lee ya. |
DELETE /api/v1/pve/clusters/{id} | Quita el clúster. |
PATCH /api/v1/pve/guests/{id} | expect_running (true, false, null), backup_expected, host_id (equipo, o null para no enlazar), relink: true. |
Solo los administradores pueden crear, cambiar o quitar clústeres.