{ "meta": { "title": "API Proxmox Monitor — Riferimento per le integrazioni | ProxMenux", "description": "Endpoint HTTP di ProxMenux Monitor per Home Assistant, Homepage, Grafana, Prometheus, n8n e pannelli personalizzati. Consultazione dello stato e operazioni documentate: controllo VM, avvio backup, notifiche e conferma degli avvisi.", "ogTitle": "API Proxmox Monitor — Riferimento per le integrazioni", "ogDescription": "Endpoint di ProxMenux Monitor per Home Assistant, Homepage, Grafana, Prometheus, n8n e pannelli personalizzati.", "twitterTitle": "Monitor Proxmox API | ProxMenux", "twitterDescription": "Endpoint per Home Assistant, Homepage, Grafana, Prometheus, n8n e pannelli personalizzati." }, "header": { "title": "Riferimento API", "description": "Endpoint HTTP per leggere lo stato e invocare azioni documentate: sensori Home Assistant, schede Homepage, pannelli Grafana, raccolta Prometheus, flussi n8n e script personalizzati. Include categorie, metriche esportate ed esempi curl.", "section": "ProxMenux Monitor" }, "intro": { "title": "A cosa serve questa pagina", "body": "Questa pagina raccoglie endpoint per integrazioni: lettura dei dati, avvio di backup, notifiche personalizzate e conferma degli avvisi. L’API usa il processo Flask del pannello su TCP 8008. Indirizzo di ascolto e TLS sono descritti in Accesso e autenticazione." }, "headerEndpoint": "Endpoint", "headerMethod": "Metodo", "headerUse": "Uso", "auth": { "heading": "Autenticazione", "intro": "Con autenticazione attiva, gli endpoint protetti richiedono un token JWT Bearer nell’intestazione:", "tokensIntro": "Due modi per ottenere il token:", "items": [ "Token API, consigliati per le integrazioni. Valgono 365 giorni e si creano in Sicurezza → Token API. Hanno un nome e si revocano singolarmente. Usa read_only per i dati e full_admin solo per azioni amministrative necessarie.", "Accesso, JWT di 24 ore. POST /api/auth/login con utente, password e TOTP se richiesto dalla 2FA. Il JWT scade dopo 24 ore; gli script devono autenticarsi di nuovo." ], "flowLink": "Accesso, password, 2FA, registro di audit e TLS sono descritti in Accesso e autenticazione.", "rows": [ { "endpoint": "/api/auth/login", "method": "POST", "use": "Campi del corpo (schema): '{'\"username\",\"password\",\"totp_token?\"'}'. Restituisce un JWT di 24 ore." }, { "endpoint": "/api/auth/api-tokens", "method": "GET", "use": "Elenca i token API (solo metadati — nomi, prefissi, date; mai il segreto reale)." }, { "endpoint": "/api/auth/generate-api-token", "method": "POST", "use": "Crea un token API di 365 giorni con sessione autenticata. Campi: password, token_name?, totp_token?, scope?. Password e TOTP richiesto sono ricontrollati. scope vale read_only per impostazione predefinita; full_admin va scelto esplicitamente. Il segreto è restituito una sola volta." }, { "endpoint": "/api/auth/api-tokens/", "method": "DELETE", "use": "Revocare un token specifico API dal suo ID." } ] }, "conventions": { "heading": "Convenzioni", "items": [ "La maggior parte usa JSON. Alcuni download restituiscono testo semplice; /api/prometheus usa il formato testuale Prometheus 0.0.4 anziché OpenMetrics. Controlla il tipo di risposta della singola rotta.", "Molte scritture restituiscono '{'\"success\": true, ...'}'. Gli errori variano; un formato comune è '{'\"success\": false, \"error\": \"'<'reason'>'\"'}'. Controlla stato HTTP e campi: alcune richieste di autenticazione usano HTTP 200 con success false.", "I parametri dipendono dall’endpoint. Usa limit, offset, since e filtri di categoria solo dove supportati.", "I formati temporali variano: timestamp Unix, stringhe ISO-8601 e date systemd. Non presumere la stessa unità né un fuso esplicito per tutti i campi." ] }, "system": { "heading": "Sistema e hardware", "rows": [ { "endpoint": "/api/system", "method": "GET", "use": "Valori attuali di CPU, memoria, swap, tempo di attività e carico." }, { "endpoint": "/api/info", "method": "GET", "use": "Informazioni statiche dell’host: nome, kernel, versione PVE, modello CPU e distribuzione." }, { "endpoint": "/api/system-info", "method": "GET", "use": "Dati di sistema estesi usati nell’intestazione: metriche generali e ora di avvio." }, { "endpoint": "/api/hardware", "method": "GET", "use": "Inventario hardware dettagliato: dispositivi PCI, GPU e sensori." }, { "endpoint": "/api/hardware/live", "method": "GET", "use": "Valori attuali dei sensori che cambiano rapidamente." }, { "endpoint": "/api/temperature/history", "method": "GET", "use": "Serie temporali delle temperature CPU e package." }, { "endpoint": "/api/gpu//realtime", "method": "GET", "use": "Metriche attuali delle GPU NVIDIA, Intel e AMD per posizione PCI." } ] }, "actions": { "heading": "Azioni di sistema", "intro": "Queste azioni asincrone usano unità systemd temporanee. Con autenticazione attiva, le scritture richiedono full_admin; read_only può consultare .../status. L’avvio accettato restituisce HTTP 202 e stato; consulta .../status per l’avanzamento. Controllo ospiti e backup usano risposte diverse, descritte sotto.", "shapeTitle": "Forma di risposta comune", "shapeIntro": "Le azioni di sistema asincrone condividono questo oggetto JSON di stato. Controllo ospiti e backup hanno formati diversi:", "shapeCode": "{\n \"unit\": \"proxmenux-action-pve-update.service\",\n \"state\": \"idle | running | success | failed | cancelled\",\n \"started_at\": \"Sat 2026-08-01 11:01:32 CEST\",\n \"finished_at\": null,\n \"exit_code\": null,\n \"result\": null\n}", "concurrencyTitle": "Concorrenza e cancellazione", "concurrencyBody": "Avviare di nuovo la stessa azione attiva restituisce HTTP 409. Si annulla solo con una rotta DELETE documentata, come per l’aggiornamento PVE. Lo stato passa a cancelled conservando le date. Gli stati finali restano nella memoria del processo e possono perdersi al riavvio di Monitor.", "rows": [ { "endpoint": "/api/system/power/reboot", "method": "POST", "use": "Avvia il riavvio dell’host Proxmox. La connessione HTTP può chiudersi quando systemd inizia l’arresto." }, { "endpoint": "/api/system/power/reboot/status", "method": "GET", "use": "Stato del riavvio attuale o precedente." }, { "endpoint": "/api/system/power/shutdown", "method": "POST", "use": "Spegne l’host Proxmox, ad esempio in risposta al segnale di arresto dell’UPS." }, { "endpoint": "/api/system/power/shutdown/status", "method": "GET", "use": "Stato dell’arresto attuale o precedente." }, { "endpoint": "/api/system/pve-update/run", "method": "POST", "use": "Avvia l’aggiornamento PVE usato da Aggiorna ora di Health Monitor e dal menu della shell; delega a update-pve-safe.sh." }, { "endpoint": "/api/system/pve-update/status", "method": "GET", "use": "Stato dell’aggiornamento PVE attuale o precedente." }, { "endpoint": "/api/system/pve-update", "method": "DELETE", "use": "Annulla un aggiornamento PVE in corso con SIGTERM." }, { "endpoint": "/api/proxmenux/self-update/run", "method": "POST", "use": "Aggiorna ProxMenux con l’installer del canale stabile o beta configurato. Usa un’unità systemd separata per continuare durante il riavvio di proxmenux-monitor eseguito dall’installer." }, { "endpoint": "/api/proxmenux/self-update/status", "method": "GET", "use": "Stato dell’aggiornamento ProxMenux attuale o precedente." }, { "endpoint": "/api/vms//control", "method": "POST", "use": "Invia un comando di controllo VM o LXC. action accetta start, stop, shutdown o reboot. La risposta riuscita restituisce una task PVE confermata, senza indicarne il completamento. Consulta l’endpoint control-task dell’ospite per l’esito." }, { "endpoint": "/api/vms//backup", "method": "POST", "use": "Crea un backup vzdump di una VM o di un LXC. Campi del corpo, tutti facoltativi salvo che i valori predefiniti non corrispondano alla struttura dello storage: storage (uno storage PVE), mode (snapshot, suspend o stop), compress (zstd, lzo, gzip o none), protected (true o false), notes e pbs_change_detection (default, legacy o data). Restituisce l’UPID della task PVE." }, { "endpoint": "/api/vms//backups", "method": "GET", "use": "Elenca i backup precedenti di una VM o di un LXC negli storage raggiungibili." } ], "syncVsAsyncTitle": "Due tipi di azioni", "syncVsAsyncBody": "Alimentazione e aggiornamenti host usano unità systemd temporanee con .../status. Solo l’aggiornamento PVE ha qui una rotta DELETE di annullamento. Il controllo VM/LXC restituisce una task da seguire; il backup un UPID di lavoro in background. Accettazione non significa completamento. Autenticazione e permessi dipendono dalla rotta.", "curlTitle": "Esempio curl", "curlBody": "Avvia un aggiornamento PVE e ne segue il completamento, come un’automazione Home Assistant o un playbook Ansible.", "curlCode": "TOKEN=\n\ncurl -sSf -X POST \\\n -H \"Authorization: Bearer $TOKEN\" \\\n https://:8008/api/system/pve-update/run\n\nwhile true; do\n state=$(curl -sSf -H \"Authorization: Bearer $TOKEN\" \\\n https://:8008/api/system/pve-update/status | jq -r .state)\n [ \"$state\" != \"running\" ] && break\n sleep 30\ndone\necho \"final state: $state\"", "haTitle": "Esempio per Home Assistant", "haBody": "Un sensore rest consulta lo stato e rest_command avvia l’aggiornamento. Usali con un pulsante del pannello e le automazioni desiderate:", "haCode": "# configuration.yaml\nsensor:\n - platform: rest\n resource: https://pve.local:8008/api/system/pve-update/status\n name: pve_update_state\n value_template: \"{{ value_json.state }}\"\n scan_interval: 60\n headers:\n Authorization: \"Bearer !secret proxmenux_token\"\n\nrest_command:\n pve_update:\n url: https://pve.local:8008/api/system/pve-update/run\n method: POST\n headers:\n Authorization: \"Bearer !secret proxmenux_token\"\n\n # Start VM 100 (works for LXC too — same endpoint)\n vm_100_start:\n url: https://pve.local:8008/api/vms/100/control\n method: POST\n content_type: 'application/json'\n payload: '{\"action\": \"start\"}'\n headers:\n Authorization: \"Bearer !secret proxmenux_token\"\n\n # Backup VM 100 to the 'pbs-main' storage\n vm_100_backup:\n url: https://pve.local:8008/api/vms/100/backup\n method: POST\n content_type: 'application/json'\n payload: '{\"storage\": \"pbs-main\", \"mode\": \"snapshot\", \"compress\": \"zstd\"}'\n headers:\n Authorization: \"Bearer !secret proxmenux_token\"" }, "health": { "heading": "Monitoraggio integrità", "rows": [ { "endpoint": "/api/health", "method": "GET", "use": "Controllo leggero che restituisce JSON con status, timestamp e version. Adatto ai controlli per parola chiave di Uptime Kuma; con autenticazione attiva, il client deve inviare l’intestazione Bearer." }, { "endpoint": "/api/health/status", "method": "GET", "use": "Stato generale: un livello di gravità e un riepilogo." }, { "endpoint": "/api/health/details", "method": "GET", "use": "Le dieci categorie con stato e dati strutturati di ogni controllo." }, { "endpoint": "/api/health/full", "method": "GET", "use": "Dati completi: categorie, errori attivi, avvisi ignorati e impostazioni di silenziamento. Usa risultati in background di meno di sei minuti; altrimenti, o con aggiornamento forzato, esegue un nuovo controllo." }, { "endpoint": "/api/health/active-errors", "method": "GET", "use": "Elenco attivo, filtrabile con ?category=<name>." }, { "endpoint": "/api/health/dismissed", "method": "GET", "use": "Avvisi ignorati con le ore di silenziamento rimanenti." }, { "endpoint": "/api/health/settings", "method": "GET", "use": "Durata del silenziamento impostata per categoria." }, { "endpoint": "/api/health/remote-storages", "method": "GET", "use": "Inventario degli storage remoti definiti in Proxmox, con stato di disponibilità." }, { "endpoint": "/api/health/interfaces", "method": "GET", "use": "Interfacce di rete con tipo (bridge / bond / fisica), IP e velocità del collegamento." }, { "endpoint": "/api/health/acknowledge", "method": "POST", "use": "Corpo: '{'\"error_key\":\"smart_sdh\"'}'. Silenzia un avviso per la durata impostata nella categoria." }, { "endpoint": "/api/health/cleanup-orphans", "method": "POST", "use": "Pulizia manuale degli errori relativi a dispositivi o VM rimossi. Idempotente." } ], "outro": "Formati delle risposte e categorie sono descritti in Health Monitor." }, "storage": { "heading": "Archiviazione", "rows": [ { "endpoint": "/api/storage", "method": "GET", "use": "Dischi visibili all’host: dispositivi a blocchi, pool ZFS e LVM." }, { "endpoint": "/api/storage/summary", "method": "GET", "use": "Riepilogo compatto utilizzato da schede di dashboard." }, { "endpoint": "/api/proxmox-storage", "method": "GET", "use": "Storage definiti in /etc/pve/storage.cfg, con stato di disponibilità e spazio libero." }, { "endpoint": "/api/storage/observations", "method": "GET", "use": "Cronologia persistente: avvisi SMART, errori I/O ed eventi ZFS. Resta disponibile dopo la risoluzione automatica degli avvisi." }, { "endpoint": "/api/storage/smart/", "method": "GET", "use": "Attributi attuali SMART per un disco." }, { "endpoint": "/api/storage/smart//latest", "method": "GET", "use": "Più recente SMART auto-test per il disco." }, { "endpoint": "/api/storage/smart//history", "method": "GET", "use": "Elenco dei rapporti SMART memorizzati per il disco." }, { "endpoint": "/api/storage/smart//history/", "method": "GET", "use": "Legge un rapporto SMART specifico salvato." }, { "endpoint": "/api/storage/smart//test", "method": "POST", "use": "Avvia un autotest SMART. Schema del corpo: '{'\"test_type\":\"short\"|\"long\"'}'." }, { "endpoint": "/api/storage/smart/schedules", "method": "GET", "use": "Elenca i test SMART attualmente programmati." }, { "endpoint": "/api/storage/smart/tools", "method": "GET", "use": "Verifica se smartctl e gli strumenti associati sono installati." } ] }, "network": { "heading": "Rete", "rows": [ { "endpoint": "/api/network", "method": "GET", "use": "Tutte le interfacce con lo stato del collegamento e gli indirizzi." }, { "endpoint": "/api/network/summary", "method": "GET", "use": "Vista compatta utilizzata dal cruscotto." }, { "endpoint": "/api/network//metrics", "method": "GET", "use": "RX/TX per interfaccia, contatori di errori e serie temporali RRD." }, { "endpoint": "/api/network/latency/current", "method": "GET", "use": "Ultima misurazione di latenza verso il gateway." }, { "endpoint": "/api/network/latency/history", "method": "GET", "use": "Serie temporale di latenza gateway." } ] }, "vms": { "heading": "VM e container", "rows": [ { "endpoint": "/api/vms", "method": "GET", "use": "VM e CT del nodo locale con stato, vmid e nome." }, { "endpoint": "/api/vms/", "method": "GET", "use": "Dettagli completi di un ospite: configurazione, rete e dischi." }, { "endpoint": "/api/vms//metrics", "method": "GET", "use": "Serie temporali di CPU, memoria e I/O disco di un ospite (RRD)." }, { "endpoint": "/api/vms//logs", "method": "GET", "use": "Log delle attività recenti di questo ospite." }, { "endpoint": "/api/vms//backups", "method": "GET", "use": "Backup conservati per questo ospite." }, { "endpoint": "/api/vms//control", "method": "POST", "use": "Scegli un’azione dello schema: '{'\"action\":\"start|stop|reboot|shutdown\"'}'. Controlla l’alimentazione dell’ospite." }, { "endpoint": "/api/vms//backup", "method": "POST", "use": "Avvia vzdump per l’ospite. Il corpo indica storage e modalità (snapshot / suspend / stop)." }, { "endpoint": "/api/vms//config", "method": "PUT", "use": "Aggiorna la descrizione (note) di una VM o di un CT. Questo endpoint non modifica altre chiavi di configurazione." }, { "endpoint": "/api/node/metrics", "method": "GET", "use": "Metriche aggregate del nodo in serie RRD." } ] }, "backups": { "heading": "Backup", "rows": [ { "endpoint": "/api/backups", "method": "GET", "use": "Backup trovati negli storage dir, NFS, CIFS e PBS interrogati tramite il nodo locale. Non esamina tutti i nodi del cluster." }, { "endpoint": "/api/backup-storages", "method": "GET", "use": "Storage indicati come destinazioni di backup, con spazio libero." } ] }, "logs": { "heading": "Log, attività, eventi", "rows": [ { "endpoint": "/api/logs", "method": "GET", "use": "Le voci del diario filtrate. Query: ?level=&service=&limit=." }, { "endpoint": "/api/logs/download", "method": "GET", "use": "Esporta l’intervallo filtrato come testo semplice." }, { "endpoint": "/api/events", "method": "GET", "use": "Flusso di eventi interno — lo stesso che alimenta le notifiche." }, { "endpoint": "/api/task-log/", "method": "GET", "use": "Log completo in testo semplice di una task Proxmox identificata dall’UPID." } ] }, "notifications": { "heading": "Notifiche e IA", "intro": "Invio, canali e riformulazione con IA sono descritti in Notifiche e Assistente IA.", "rows": [ { "endpoint": "/api/notifications", "method": "GET", "use": "Notifiche recenti mostrate nel pannello." }, { "endpoint": "/api/notifications/download", "method": "GET", "use": "Esporta le notifiche come testo." }, { "endpoint": "/api/notifications/status", "method": "GET", "use": "Stato dell’invio: processo in background attivo, lunghezza della coda e ultimo invio." }, { "endpoint": "/api/notifications/settings", "method": "GET", "use": "Legge la configurazione delle notifiche: canali, controlli per evento, riformulazione IA e nome visualizzato." }, { "endpoint": "/api/notifications/history", "method": "GET", "use": "Cronologia degli invii. Parametri: ?limit=&offset=&severity=&channel=." }, { "endpoint": "/api/notifications/history", "method": "DELETE", "use": "Svuota la tabella della cronologia degli invii." }, { "endpoint": "/api/notifications/test", "method": "POST", "use": "Invia una notifica di prova a un canale. Corpo: '{'\"channel\":\"telegram\"'}'." }, { "endpoint": "/api/notifications/send", "method": "POST", "use": "Genera un evento personalizzato. Corpo: '{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"body\":\"...\",\"data\":'{''}''}'." }, { "endpoint": "/api/notifications/test-ai", "method": "POST", "use": "Verifica la connessione al provider IA. Campi del corpo (schema): '{'\"provider\",\"api_key\",\"model\",\"ollama_url?\"'}'." }, { "endpoint": "/api/notifications/provider-models", "method": "POST", "use": "Elenca i modelli disponibili per il fornitore AI selezionato." }, { "endpoint": "/api/notifications/proxmox/setup-webhook", "method": "POST", "use": "Registrare il Monitor come obiettivo webhook in /etc/pve/notifications.cfg." }, { "endpoint": "/api/notifications/proxmox/cleanup-webhook", "method": "POST", "use": "Rimuovere l'obiettivo Monitor dalla configurazione di notifica di PVE." }, { "endpoint": "/api/notifications/proxmox/read-cfg", "method": "GET", "use": "Leggi l'attuale notifications.cfg di PVE come la vede PVE." } ] }, "security": { "heading": "Sicurezza (lettura)", "rows": [ { "endpoint": "/api/security/firewall/status", "method": "GET", "use": "Stato firewall PVE e regole attive." }, { "endpoint": "/api/security/fail2ban/details", "method": "GET", "use": "Stato del jail Fail2Ban; richiede il componente opzionale installato." }, { "endpoint": "/api/security/fail2ban/activity", "method": "GET", "use": "Eventi recenti Fail2Ban: blocchi, sblocchi e avvii del jail." }, { "endpoint": "/api/security/lynis/status", "method": "GET", "use": "Stato di Lynis: installazione e data dell’ultima analisi." }, { "endpoint": "/api/security/lynis/report", "method": "GET", "use": "Ultimo rapporto Lynis: avvisi, suggerimenti e indice di hardening." }, { "endpoint": "/api/security/tools", "method": "GET", "use": "Rileva quali strumenti di sicurezza opzionali (Fail2Ban, Lynis) sono installati." } ] }, "proxmenuxIntegration": { "heading": "Integrazione ProxMenux", "rows": [ { "endpoint": "/api/proxmenux/update-status", "method": "GET", "use": "Disponibilità di aggiornamenti ProxMenux Monitor, versione installata e più recente." }, { "endpoint": "/api/proxmenux/installed-tools", "method": "GET", "use": "Elenco di ogni ottimizzazione post-installazione ProxMenux attualmente registrata sull'host (da /usr/local/share/proxmenux/installed_tools.json)." }, { "endpoint": "/api/proxmenux/tool-source/", "method": "GET", "use": "Codice della funzione post-installazione associata, estratto dagli script attuali dell’host o da codice precedente conservato. Non garantisce una copia del codice eseguito in origine." } ] }, "prometheus": { "heading": "Metriche Prometheus", "intro": "L’endpoint autenticato GET /api/prometheus restituisce il formato testuale Prometheus 0.0.4. Ogni metrica include node=\"<hostname>\" e un timestamp esplicito. Usa Prometheus o un database temporale compatibile per raccoglierle.", "exportedTitle": "metriche esportate", "headerGroup": "Gruppo", "headerMetric": "Metrica", "headerDesc": "Descrizione", "groups": [ { "group": "Sistema", "metrics": [ { "metric": "proxmox_cpu_usage", "desc": "Percentuale di utilizzo CPU, tipo gauge." }, { "metric": "proxmox_memory_total_bytes", "desc": "Memoria fisica totale in byte." }, { "metric": "proxmox_memory_used_bytes", "desc": "Memoria utilizzata in byte." }, { "metric": "proxmox_memory_usage_percent", "desc": "Percentuale di utilizzo della memoria." }, { "metric": "proxmox_load_average", "desc": "Media del carico di sistema. Etichetta period=\"1m\" | \"5m\" | \"15m\"." } ] }, { "group": "Tempo di attività", "metrics": [ { "metric": "proxmox_uptime_seconds", "desc": "Secondi dall’ultimo avvio." } ] }, { "group": "Hardware", "metrics": [ { "metric": "proxmox_cpu_temperature_celsius", "desc": "Temperatura del package CPU." }, { "metric": "proxmox_disk_temperature_celsius", "desc": "Temperatura per disco. Etichetta disk." }, { "metric": "proxmox_fan_speed_rpm", "desc": "Velocità delle ventole. Etichetta fan." } ] }, { "group": "Spazio disco", "metrics": [ { "metric": "proxmox_disk_total_bytes", "desc": "Capacità totale per voce disco esportata. Etichetta disk." }, { "metric": "proxmox_disk_used_bytes", "desc": "Capacità utilizzata per voce disco esportata." }, { "metric": "proxmox_disk_usage_percent", "desc": "Percentuale utilizzata per voce disco esportata." } ] }, { "group": "Rete", "metrics": [ { "metric": "proxmox_network_bytes_sent_total", "desc": "Totale dei byte inviati, tipo counter." }, { "metric": "proxmox_network_bytes_received_total", "desc": "Totale dei byte ricevuti, tipo counter." }, { "metric": "proxmox_interface_bytes_sent_total", "desc": "Byte inviati per interfaccia. Etichetta interface." }, { "metric": "proxmox_interface_bytes_received_total", "desc": "Byte ricevuti per interfaccia." } ] }, { "group": "VMs / CTs", "metrics": [ { "metric": "proxmox_vms_total", "desc": "Numero totale di VM e LXC." }, { "metric": "proxmox_vms_running", "desc": "Numero di ospiti in esecuzione." }, { "metric": "proxmox_vms_stopped", "desc": "Numero di ospiti fermati." }, { "metric": "proxmox_vm_status", "desc": "Stato per VM/CT: 1 in esecuzione, 0 altrimenti. Etichette node, vmid e name." }, { "metric": "proxmox_vm_cpu_usage", "desc": "Utilizzo CPU per VM/CT, con le stesse etichette." }, { "metric": "proxmox_vm_memory_used_bytes / _max_bytes", "desc": "Memoria utilizzata e massimo configurato per VM/CT." } ] }, { "group": "GPU", "metrics": [ { "metric": "proxmox_gpu_temperature_celsius", "desc": "Temperatura GPU. Etichette slot e vendor; gpu include anche il nome della GPU." }, { "metric": "proxmox_gpu_utilization_percent", "desc": "Percentuale di utilizzo della GPU." }, { "metric": "proxmox_gpu_memory_total_bytes", "desc": "Memoria totale della GPU." }, { "metric": "proxmox_gpu_power_draw_watts", "desc": "Potenza assorbita dalla GPU in watt." }, { "metric": "proxmox_gpu_clock_speed_mhz", "desc": "Frequenza del core GPU." }, { "metric": "proxmox_gpu_memory_clock_mhz", "desc": "Frequenza della memoria GPU." } ] }, { "group": "UPS", "metrics": [ { "metric": "proxmox_ups_battery_charge_percent", "desc": "Percentuale di carica della batteria." }, { "metric": "proxmox_ups_load_percent", "desc": "Carico corrente sull'UPS." }, { "metric": "proxmox_ups_runtime_seconds", "desc": "Autonomia stimata della batteria." }, { "metric": "proxmox_ups_input_voltage_volts", "desc": "Tensione di ingresso." } ] } ], "scrapeTitle": "Configurazione di raccolta Prometheus", "scrapeIntro": "Con autenticazione attiva, aggiungi un token API nell’intestazione Bearer della configurazione di raccolta Prometheus:", "perHostTitle": "Raccolta per host", "perHostBody": "Ogni istanza esporta le metriche del proprio host. In un cluster configura Prometheus per interrogare ogni nodo. L’etichetta node distingue le serie in Grafana (proxmox_vms_running'{'node=\"pve01\"'}')." }, "puttingItTogether": { "heading": "Combinare le integrazioni", "body": "Vedi Integrazioni per collegare gli endpoint a sensori Home Assistant, schede Homepage, pannelli Grafana, flussi n8n e altri strumenti. Include configurazioni tipiche copiabili per ogni piattaforma. Questa pagina raccoglie il catalogo degli endpoint." }, "whereNext": { "heading": "Come proseguire", "items": [ { "label": "Accesso e autenticazione", "href": "/docs/monitor/access-auth", "tail": " — creazione di token, registro di audit, jail Fail2Ban opzionale e TLS." }, { "label": "Notifiche", "href": "/docs/monitor/notifications", "tailRich": " — contenuto di data per evento nelle chiamate a /api/notifications/send." }, { "label": "Assistente IA", "href": "/docs/monitor/ai-assistant", "tailRich": " — funzionamento di /api/notifications/test-ai e /api/notifications/provider-models." }, { "label": "Monitoraggio integrità", "href": "/docs/monitor/health-monitor", "tailRich": " — formato delle risposte di /api/health/* e significato delle dieci categorie." } ] } }