Salta ai contenuti

Proxmox Datacenter Manager

La console che federa diversi cluster Proxmox VE e istanze Proxmox Backup Server: quali istanze raggiunge, l’intero patrimonio a colpo d’occhio, i task falliti ovunque, e lo stato di salute proprio della console.

Un monitor per il patrimonio, o un monitor per cluster?

Sezione intitolata “Un monitor per il patrimonio, o un monitor per cluster?”

Un monitor Datacenter Manager non sostituisce i monitor Proxmox VE e Proxmox Backup Server. Risponde a una domanda diversa.

Monitor Datacenter ManagerUn monitor per cluster e per backup server
Monitor da creareunouno per cluster, uno per backup server
Credenziali da gestireun token, sulla consoleun token per istanza
Carico su ogni clusternessuno nostro: leggiamo la cache propria della consoleuna sonda per intervallo, per cluster
Cosa ottieniraggiungibilità, versione, conteggi guest e nodi, totali CPU, memoria e storage, task fallititutto questo più i guest uno per uno, snapshot, job di backup, HA, Ceph, replicazione, dischi e SMART, pool ZFS, il calendario backup su 30 giorni
Cosa non puoi ottenereserie per guest, dettaglio per datastore, dischi, snapshot, log dei taskun totale unico per l’intero patrimonio
Guasto principalela console non può raggiungere un’istanzail cluster non ci risponde

La nostra raccomandazione. Aggiungi il monitor Datacenter Manager quando esegui già una console e vuoi una pagina che dica se il patrimonio è intero — è il modo più economico per notare che un sito remoto è caduto, e non costa nulla ai cluster. Aggiungi un monitor dedicato per ogni cluster e backup server che gestisci davvero: è lì che sta la profondità, ed è ciò che ti dice quale VM si è fermata o quale backup è fallito. I due si sovrappongono senza entrare in conflitto; un backup fallito genera allora un avviso dal monitor PBS (con il log del task) e uno dalla console (che nomina l’istanza). Silenzia la regola dei task della console se la trovi ridondante, oppure limitala alle istanze per cui non hai un monitor dedicato.

Se non esegui affatto una console, non installarne una solo per il monitoraggio: i monitor dedicati vedono strettamente di più.

Oltre ai grafici generici, un monitor Datacenter Manager mostra tre pannelli, letti da ciò che la sonda ha memorizzato — aprire la pagina non interroga né la console né i cluster che gestisce:

  • Federated instances — una striscia di totali del patrimonio (istanze, nodi online, guest in esecuzione e fermi, core, memoria, storage), poi una riga per istanza federata. Le istanze che la console non può raggiungere vengono ordinate prima, poi quelle con task falliti, poi quelle indietro di versione. Ogni riga dà il prodotto (Proxmox VE o Backup Server), la versione, i conteggi di nodi e guest, l’utilizzo di memoria e storage, lo stato dell’abbonamento, l’indirizzo configurato, quando la console ha raccolto da essa l’ultima volta — e, quando è fallito, il messaggio che la console stessa ha ricevuto. Quel messaggio è la sola cosa che spiega l’interruzione, quindi viene mostrato alla lettera.
  • Failures — ogni task fallito in tutto il patrimonio negli ultimi 14 giorni, il più recente prima, con l’istanza su cui è stato eseguito, il tipo di task, quando è iniziato, quanto è durato e il messaggio di errore. Il log del task stesso resta sull’istanza: aprilo lì, oppure aggiungi quel cluster come proprio monitor, dove Show log lo recupera.
  • Console host — la macchina che esegue la console: CPU, memoria, file system root, uptime e kernel, i suoi certificati con i giorni rimanenti prima della scadenza, i pacchetti in attesa di un aggiornamento, e lo stato dell’abbonamento dei nodi gestiti. L’intero pannello è opzionale: un token senza Sys.Audit non ne legge nulla e il pannello lo dice, invece di mostrare zeri.

La cronologia dei task viene mantenuta in SQLite (pdm_task_history, 19 giorni, al massimo 5000 task per monitor) così l’elenco dei fallimenti sopravvive ai riavvii anche se ogni sonda guarda solo alla finestra dei task.

Tutte le metriche hanno il prefisso dumbmonit_pdm_.

FamigliaMetricheEtichette
Patrimonioremotes_total, remotes_failed, nodes_online, nodes_offline, cpu_used_cores, cpu_total_cores, memory_used_bytes, memory_total_bytes, memory_used_percent, storage_used_bytes, storage_total_bytes, storage_used_percent, datastores_total
Guest del patrimonioguests_running, guests_stoppedguest_type (qemu, lxc)
Istanzeremote_reachable (1 la console ha ottenuto una risposta, 0 non l’ha ottenuta), remote_version_info (serie di presenza, etichetta version), remote_version_behind, remote_nodes_online, remote_nodes_offline, remote_guests_running, remote_guests_stopped, remote_cpu_used_cores, remote_cpu_total_cores, remote_cpu_used_percent, remote_memory_used_bytes, remote_memory_total_bytes, remote_memory_used_percent, remote_storage_used_bytes, remote_storage_total_bytes, remote_storage_used_percent, remote_datastores, remote_subscription_active, remote_updates_pending, remote_last_collection_age_seconds, remote_tasks_failedremote, type (pve, pbs)
Task nella finestratasks_total, tasks_failed, tasks_running
Console hostnode_cpu_percent, node_cpu_count, node_iowait_percent, node_load1, node_memory_used_bytes, node_memory_total_bytes, node_memory_used_percent, node_swap_used_bytes, node_swap_total_bytes, node_rootfs_used_bytes, node_rootfs_total_bytes, node_rootfs_percent, node_uptime_seconds, node_kernel_info, node_updates_pending, version_info
Certificati consolenode_certificate_expiry_days (negativo una volta scaduto)file (proxy.pem)
Abbonamentosubscription_active (etichetta status), subscription_active_nodes, subscription_total_nodes
Raccoltaup, scrape_errors, scrape_duration_seconds

Un task che termina con WARNINGS: n conta come riuscito. Solo il fallimento di GET /version condanna l’intera sonda; qualsiasi altra chiamata fallita viene contata in scrape_errors, e un’istanza che la console non può raggiungere è una misurazione (remote_reachable = 0), non un errore di raccolta.

remote_version_behind confronta le istanze federate tra loro, prodotto per prodotto: è 1 quando un altro cluster Proxmox VE — o un altro backup server — nello stesso patrimonio esegue una versione più recente. Non è un confronto rispetto a ciò che Proxmox pubblica; una sonda non ha motivo di raggiungere internet. La serie esiste solo per un’istanza la cui versione è stata letta, così un’istanza irraggiungibile non passa mai per aggiornata.

I totali di storage contano ogni nome di storage una volta per istanza: uno storage condiviso da cinque nodi di un cluster viene contato una volta, non cinque.

Le regole integrate che si applicano: Monitor unreachable, Federated instance unreachable, Federated instance behind, Task failed on a federated instance, Datacenter console disk almost full, Datacenter console certificate expiring, Datacenter console updates pending. Le notifiche nominano l’istanza interessata.

I passaggi seguenti sono quelli mostrati dalla nota accanto al modulo. Il principio: un utente riservato al monitoraggio, un token con un ruolo di sola lettura — mai l’account con cui accedi.

  1. Nella console, apri Configuration → Access Control → Users e clicca Add. Dai all’account il nome seguente e lascia vuota la password: il token è ciò che accede.

    dumbmonit@pdm
  2. Ancora sotto Access Control, apri API Tokens → Add, scegli quell’utente e dai al token il nome “monitor”. La console mostra il secret una volta: copialo subito.

    dumbmonit@pdm!monitor
  3. Dai sia all’utente che al token il ruolo Auditor su / (la cima dell’albero, quindi l’intero patrimonio). Auditor porta System.Audit, Resource.Audit e Access.Audit, e non può modificare nulla. Un token non ha mai più diritti del suo utente, quindi il permesso viene concesso due volte: Permissions → Add → User Permission, poi di nuovo con API Token Permission.

  4. Copia l’id del token nel campo Token ID di DumbMonit e il secret nel suo campo Secret.

  5. In DumbMonit, inserisci l’indirizzo della console, per esempio “dc.lan” oppure “dc.lan:8443”.

Preferisci la riga di comando? proxmox-datacenter-manager-admin gestisce i remote, non gli utenti; crea l’account, il token e i due permessi nell’interfaccia web.

CredenzialeCampi
API token (consigliato)Token ID: utente, realm e nome del token come li mostra la console, dumbmonit@pdm!monitor. Secret: l’UUID mostrato una volta alla creazione del token. DumbMonit li invia come l’header PDMAPIToken=user@pdm!name:secret che la console si aspetta.

Non c’è un’opzione username / password, ed è deliberato: dalla sua prima release la console restituisce il suo ticket di sessione solo in un cookie HttpOnly — il corpo JSON porta un ticket-info inutilizzabile. Un login non comprerebbe nulla in più rispetto a un token mentre aprirebbe una sessione autenticata a ogni sonda. I token sono comunque ciò che Proxmox raccomanda per l’automazione.

Diritti, di sola lettura. Più semplice e sufficiente: il ruolo integrato Auditor su /, concesso sia all’utente che al token. Per endpoint:

EndpointRichiede
GET /versionqualsiasi utente autenticato
GET /remotes/remoterestituisce le istanze che il chiamante può verificare
GET /remotes/remote/{id}/versionResource.Audit su /resource/{id}
GET /resources/status, GET /resources/listResource.Audit su /resource
GET /resources/subscriptionResource.Audit su /resource
GET /remotes/tasks/listResource.Audit su /resource/{remote}, per istanza
GET /nodes/{node}/statusSystem.Audit su /system/status
GET /nodes/{node}/certificates/info, GET /nodes/{node}/subscriptionqualsiasi utente autenticato
GET /nodes/{node}/apt/updateSystem.Audit; un 403 è tollerato: nessuna serie node_updates_pending, nessun errore di raccolta
GET /remotes/metric-collection/statuspiù di Auditor; un 403 è tollerato: nessuna serie remote_last_collection_age_seconds, nessun errore di raccolta
GET /remotes/updates/summaryResource.Modify — un privilegio di scrittura. Disattivato per impostazione predefinita (remote_updates) per questo motivo

Nota che la console redige i token di accesso che mantiene per le sue istanze (GET /remotes/remote restituisce un token vuoto), e DumbMonit non legge mai comunque quel campo: nessun segreto di istanza passa mai attraverso il collector, la vista memorizzata o l’API.

Indirizzo: 10.0.0.40, dc.lan, dc.lan:8443, [fd00::2] oppure un URL completo. Lo schema https e la porta 8443 vengono aggiunti se mancanti.

ChiaveEtichettaPredefinitoAiuto
portAPI port8443Usata se l’indirizzo non fornisce una porta.
insecure_tlsAccept an unverifiable certificatefalseProxmox Datacenter Manager fornisce un certificato autofirmato per impostazione predefinita: abilita questo se la connessione viene rifiutata per questo motivo.
request_timeout_secondsTimeout per request (seconds)20Tempo consentito per ogni chiamata API, da 1 a 120. La console inoltra le chiamate a ogni istanza federata, quindi un sito lento trattiene l’intera risposta.
nodeConsole node namelocalhostNome del nodo che esegue la console. Un Datacenter Manager ha un solo nodo e lo chiama “localhost”.
task_lookback_hoursTask window (hours)24I task più vecchi non vengono contati tra i fallimenti, da 1 a 8760.
max_age_secondsAccepted cache age (seconds)60Quanto obsoleto può essere l’inventario proprio della console prima che interroghi di nuovo le istanze federate, da 0 a 3600. Zero chiede dati freschi a ogni sonda, il che rimette ogni cluster in linea.
remotesMonitored instances(vuoto)Nomi delle istanze federate da monitorare, separati da virgole. Vuoto: ogni istanza.
max_remotesInstance version limit100Numero massimo di istanze interrogate per la loro versione a ogni sonda, da 1 a 1000.
versionsRead each instance versiontrueUna chiamata per istanza federata, per riportare la sua versione e segnalare quelle rimaste indietro rispetto ai loro pari. Un’istanza che non risponde conta come irraggiungibile.
tasksWatch tasks across instancestrueLegge l’elenco dei task di ogni istanza federata per riportare i fallimenti.
node_statusWatch the console hosttrueLegge CPU, memoria, file system root, uptime, certificati e abbonamento della macchina che esegue la console.
updatesCount pending updatestrueElenca i pacchetti in attesa di un aggiornamento sulla console stessa.
remote_updatesCount updates on each instancefalseLegge il riepilogo degli aggiornamenti della console per le istanze federate. Disattivato per impostazione predefinita: la console protegge quel percorso con Resource.Modify, un privilegio di scrittura che un account di monitoraggio non ha motivo di possedere.

max_age_seconds è quella che vale la pena capire. La console mantiene il proprio inventario, aggiornato dal proprio ciclo di raccolta. Chiedere dati freschi a ogni sonda fa chiamare di nuovo ogni cluster dalla console, oltre al suo ritmo normale — esattamente il carico che un unico monitor console dovrebbe evitare. Sessanta secondi sono comunque più freschi dell’intervallo di sonda predefinito.

SintomoCausa probabile
Errore di certificatoCertificato autofirmato: installane uno fidato (ACME è integrato nella console) oppure abilita insecure_tls.
Errore di autenticazioneIl secret è stato incollato in Token ID (o il contrario), oppure il permesso è stato concesso all’utente ma non al token — un token non ha mai più diritti del suo utente, e le due ACL sono voci separate.
Ogni istanza appare irraggiungibile, ma la pagina propria della console va beneIl token ha Auditor sull’utente ma non sul token, oppure solo su /system: Resource.Audit su /resource è ciò che permette alla console di rispondere per le sue istanze.
Un’istanza è irraggiungibile e il messaggio menziona un’impronta digitaleLa console verifica il certificato di ogni istanza che gestisce; correggilo nella console (Remotes → l’istanza), non qui.
Nessuna serie remote_last_collection_age_secondsGET /remotes/metric-collection/status richiede più di Auditor ed è saltato silenziosamente. Nulla altro è interessato.
Nessuna serie remote_updates_pendingremote_updates è disattivato per impostazione predefinita perché quel percorso richiede Resource.Modify. Attivalo solo se sei disposto a concedere un privilegio di scrittura.
Nessun pannello console hostAl token manca System.Audit su /system/status, oppure node_status è disattivato.
“Federated instance behind” non si attiva maiConfronta istanze dello stesso prodotto tra loro. Una console che federa un unico cluster Proxmox VE non ha nulla con cui confrontarlo.
I totali del patrimonio sono tutti trattiniLa console ha risposto ma non ha contato nulla — di solito perché ogni istanza è irraggiungibile. Le righe delle istanze dicono perché.