{ "meta": { "title": "ProxMenux Monitor — Pannello: Log di sistema | Documentazione ProxMenux", "description": "La scheda System Logs consolida tre sorgenti in una schermata: live journalctl con filtri e download, cronologia delle attività Proxmox (UPID), e registro di notifica — tutti ricercabili, filtrabili per gravità / intervallo di tempo e scaricabili come pacchetti di testo." }, "header": { "title": "Pannello: Log di sistema", "description": "Tre sottoschede in una schermata: journal di sistema (journalctl con filtri), cronologia delle attività Proxmox e registro delle notifiche. Tutte consentono di cercare, filtrare e scaricare i dati come pacchetti di testo.", "section": "ProxMenux Monitor · Dashboard" }, "readOnly": { "title": "sola lettura per design", "body": "Questa scheda non modifica i file di log. I filtri risiedono nell'URL o nello stato dell'interfaccia; i file da scaricare sono preparati sul server. Il pannello non elimina mai le voci: per la manutenzione usa journalctl --vacuum-time=<N> o logrotate sull'host." }, "topRow": { "heading": "Riga superiore: quattro contatori", "items": [ "Voci totali — numero di record nel periodo del filtro attivo.", "Errori — numero di voci con gravità ≤ 3 (err / crit / alert / emerg).", "Avvisi — numero di voci con gravità 4 (warning).", "Backup — numero di voci di attività vzdump / PBS nello stesso periodo." ] }, "subtabs": { "heading": "Tre sottoschede", "logsTitle": "Log", "logsIntro": "Il journal di sistema, letto sul server con journalctl. Filtri disponibili nella barra degli strumenti:", "logsFilters": [ "Gravità — emerg / alert / crit / err / warning / notice / info / debug, o qualsiasi combinazione.", "Time range — ultima 5 min / 15 min / 1 h / 6 h / 24 h / 7 d / personalizzato.", "Ricerca libera — sottostringa o espressione regolare (journalctl --grep).", "Filtro per unità — limita a una specifica unità systemd (pveproxy.service, nginx.service, …)." ], "logsRowsAfter": "Ogni riga mostra timestamp, tasso di gravità, unità sorgente e il messaggio. I messaggi lunghi crollano con un \"mostra di più\". L'azione Download raggruppa il filtro corrente in un unico file .txt tramite GET /api/logs/download — utile quando si desidera condividere una fetta di giornale con qualcuno.", "logDetailsModalTitle": "Finestra Dettagli del log", "logDetailsBody": "Un clic su una riga apre Dettagli del log con tutti i campi strutturati acquisiti da journald per quella voce, come eseguendo journalctl --output=verbose sull'host.", "logDetailsImageAlt": "Finestra Dettagli del log — singola voce del journal con livello, servizio, data e ora, origine, unità systemd, ID del processo, nome host e messaggio completo", "logDetailsImageCaption": "Dettagli del log — tutti i campi strutturati di questa voce journald, con il messaggio completo non troncato in fondo. Utile per i log di cron e dei servizi quando conta la riga di comando eseguita.", "fieldsIntro": "Campi indicati:", "fields": [ "Level — distintivo di gravità colorato (INFO / ATTENZIONE / ERROR / CRITICAL).", "Service — nome corto dell'unità / processo che ha emesso l'ingresso.", "Timestamp — data e ora completi della linea di registro.", "Source — origine dell'entrata (giornale, kernel, audit, ...).", "Systemd Unit — l'unità effettiva .service / .timer / .socket se l'ingresso è associato a uno.", "Process ID — PID del processo di emissione.", "Hostname — utile quando le riviste vengono inoltrate attraverso nodi di cluster.", "Messaggio — messaggio completo non troncato in un blocco a spaziatura fissa, pronto da copiare." ], "maxLevelStoreTitle": "Journald MaxLevelStore", "maxLevelStoreBody": "Su una nuova installazione Proxmox, journald usa per impostazione predefinita MaxLevelStore=warning, scartando i messaggi info. Monitor lo rileva all'avvio e aggiunge una configurazione complementare (/etc/systemd/journald.conf.d/proxmenux-loglevel.conf) con soglia info, per conservare messaggi informativi e più gravi. Questo non include debug.", "backupsTitle": "Backup", "backupsBody": "Cronologia delle attività Proxmox limitata ai backup. Una riga per attività (vzdump, trasferimenti PBS, Garbage Collect, Verify), con stato (OK / WARNINGS / ERROR), guest interessato, storage di origine, durata e UPID. Fai clic su una riga per caricare il log completo tramite GET /api/task-log/<upid>: gli stessi dati esposti da Proxmox in Datacenter → Tasks, limitati ai backup.", "notificationsTitle": "Notifiche", "notificationsBody1": "Tutte le notifiche inviate da Monitor: Telegram, Discord, e-mail, Gotify, ntfy, Slack, Teams e webhook. Ogni riga mostra data e ora, canale, tipo di evento, gravità, titolo e corpo generati e, se l'IA è attiva, un comando per confrontare la sua riscrittura con l'originale.", "notificationsBody2": "Usa questa scheda per verificare che un canale recapiti le notifiche e confrontare la riscrittura AI con il modello di base. I canali si configurano nella pagina dettagliata Notifiche." }, "dataCollected": { "heading": "Come vengono raccolti i dati", "headerSubtab": "Sottoscheda", "headerEndpoint": "Endpoint", "headerSource": "Fonte", "rows": [ { "subtab": "Registri (filtro in tempo reale)", "endpoint": "/api/logs", "source": "journalctl --output json --since <range> con filtri per gravità, unità e ricerca applicati sul server." }, { "subtab": "Scarica", "endpoint": "/api/logs/download", "source": "La stessa query, restituita come testo semplice per grep / less." }, { "subtab": "Backup", "endpoint": "/api/backups", "source": "Cronologia delle attività PVE filtrata per vzdump, trasferimenti PBS, Garbage Collect e Verify." }, { "subtab": "Dettagli di un'attività di backup", "endpoint": "/api/task-log/<upid>", "source": "Log completo dell'attività in testo semplice, letto da /var/log/pve/tasks/<index>/<upid>." }, { "subtab": "Cronologia delle notifiche", "endpoint": "/api/notifications/history", "source": "Tabella SQLite notification_history alimentata dal ciclo di invio." } ], "apiIntro": "Il filtro in tempo reale e i download sono accessibili anche tramite API:", "codeComment1": "# Errori ed eventi più gravi dell'ultima ora con una parola chiave", "codeComment2": "# Scarica il journal completo delle ultime 6 ore come testo semplice", "codeComment3": "# Cerca l'output completo di un'attività specifica tramite UPID" }, "whereNext": { "heading": "Dove proseguire", "items": [ { "label": "Monitoraggio integrità", "href": "/docs/monitor/health-monitor", "tail": " — la categoria Log di sistema, che rileva eventi persistenti, picchi e sequenze a cascata." }, { "label": "Notifiche", "href": "/docs/monitor/notifications", "tail": " — il monitoraggio del journal legge la stessa fonte e trasforma le corrispondenze in notifiche." }, { "label": "Riferimento API", "href": "/docs/monitor/api", "tail": " — gli endpoint logs e task-log con i rispettivi parametri di query." }, { "label": "Indice del pannello", "href": "/docs/monitor/dashboard", "tail": "— le altre schede." } ] } }