Come impedire che i log di Jellyfin riempiano il disco di sistema

Eva Wong è la Technical Writer e smanettatrice residente di ZimaSpace. Una geek da sempre con una passione per homelab e software open-source, si specializza nel tradurre concetti tecnici complessi in guide accessibili e pratiche. Eva crede che l'auto-ospitare debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, dà potere alla comunità di demistificare le configurazioni hardware, dalla costruzione del loro primo NAS al dominio dei container Docker.

I log di Jellyfin non dovrebbero mai poter crescere fino a competere con il database, la cache o il sistema operativo per gli ultimi gigabyte liberi. Previeni il problema limitando sia il livello di verbosità dei log di Jellyfin, sia il livello di logging del container o dell'host che potrebbe raccogliere nuovamente gli stessi eventi.

È facile non accorgersene su un piccolo disco di sistema di un home server, perché due percorsi di log indipendenti possono crescere contemporaneamente: Jellyfin scrive i log dell'applicazione, mentre Docker, journald o un altro supervisore possono conservare separatamente stdout e stderr. Inizia identificando quale percorso sta effettivamente consumando spazio, quindi limita la conservazione a quel livello, verifica la pulizia durante l'uso normale e mantieni un avviso sullo spazio libero, così una futura sessione di debug non potrà riempire il disco senza essere rilevata.

Individua quale archivio di log sta effettivamente crescendo

Misura prima di eliminare qualsiasi elemento. Confronta le dimensioni della directory dei log configurata di Jellyfin con l'archivio dei log del runtime dei container o del gestore dei servizi e osserva quale dei due cambia mentre riproduci una normale scansione della libreria o una sessione di riproduzione. Se cresce un solo percorso, intervieni su quello invece di applicare contemporaneamente più modifiche alla rotazione.

La guida alla risoluzione dei problemi di Jellyfin avverte che il logging di debug può generare una quantità molto elevata di output ed è pensato per brevi periodi di diagnosi; il primo controllo di prevenzione consiste quindi nel verificare se un logging.json personalizzato ha lasciato abilitate categorie dettagliate. Consulta le indicazioni sul logging di debug prima di modificare i valori di conservazione.

Se la directory dei log di Jellyfin rimane stabile ma il disco di sistema dell'host continua a riempirsi, controlla quindi i log del runtime. Questo risultato significa che eliminare i file di log di Jellyfin tratterebbe solo il sintomo visibile, mentre il secondo livello di logging continuerebbe a crescere.

Imposta un limite di conservazione a livello di runtime

Per i container, scegli un driver di logging e una politica di rotazione con un limite massimo definito, invece di affidarti a una crescita illimitata. Applica l'impostazione ai container creati successivamente e annota il limite scelto, così una futura ricostruzione del file Compose non rimuoverà la protezione.

Docker documenta che il logging predefinito json-file può consumare una quantità significativa di spazio su disco quando la rotazione non è configurata, mentre il driver local esegue la rotazione per impostazione predefinita. Usa questo comportamento di rotazione dei log dei container per decidere se impostare un limite per max-size/max-file o utilizzare il driver locale.

Dopo aver modificato la politica del runtime, ricrea il container Jellyfin se il runtime lo richiede e verifica che il container attivo utilizzi effettivamente il nuovo driver. Un'impostazione a livello di demone che si applica solo ai nuovi container non rappresenta una soluzione efficace finché l'istanza di Jellyfin non l'ha ereditata.

Mantieni utile la pulizia di Jellyfin, ma non considerarla l'unica protezione

Jellyfin include attività di manutenzione che eliminano log, cache, log delle attività e dati di transcodifica, ma la pulizia pianificata è una seconda linea di difesa, non un motivo per lasciare il logging senza limiti. Un'attività può non riuscire, essere posticipata o avviarsi dopo che un picco ha già consumato lo spazio di sistema rimanente.

Usa la cronologia delle attività nella dashboard per confermare che l'attività di pulizia dei log venga eseguita correttamente, quindi confronta le dimensioni della directory dei log prima e dopo la successiva esecuzione pianificata. Se la directory non si riduce mai, esamina gli errori dell'attività o una discrepanza nel percorso invece di ridurre semplicemente l'intervallo.

Un approccio efficace per un home server consiste nel mantenere osservabili lo stato dell'applicazione e i flussi di lavoro dei contenuti multimediali senza permettere ai file diagnostici di dominare il disco di avvio. Lo stesso approccio orientato alle risorse è utile quando risolvi i problemi di buffering di Jellyfin, perché i log sono utili solo quando indicano il collo di bottiglia effettivo.

-15% OFF

Usa il logging di debug come modalità diagnostica a tempo

Quando ti serve l'output di debug, stabilisci l'ora di inizio, la finestra di riproduzione del problema e la condizione di arresto prima di abilitarlo. Acquisisci l'azione che causa il problema, salva la parte di log pertinente in un luogo sicuro, quindi riporta immediatamente la configurazione al livello di verbosità normale dopo aver raccolto le prove.

Non mantenere abilitato il logging di debug per giorni solo perché al momento è disponibile spazio su disco. Una serata con poco traffico e una scansione della libreria possono produrre volumi molto diversi, quindi un'impostazione apparentemente innocua durante un test può diventare costosa durante le attività pianificate.

Dopo essere tornato al logging normale, riavvia una volta se la configurazione lo richiede ed esegui una normale riproduzione insieme a un'attività pianificata. Il tasso di crescita dei log dovrebbe tornare al valore di base; in caso contrario, riapri la configurazione e verifica che il file previsto sia effettivamente quello caricato da Jellyfin.

Aggiungi una condizione di arresto basata sullo spazio libero prima che il disco diventi critico

Imposta un semplice avviso sul filesystem che contiene i dati di Jellyfin, i log del runtime o il sistema operativo. La soglia dovrebbe lasciare spazio sufficiente per analizzare la causa e arrestare i servizi in sicurezza, invece di attendere che le scritture inizino a fallire sull'intero host.

Se lo spazio libero diminuisce inaspettatamente, arresta prima la sorgente di logging ad alto volume, conserva un piccolo campione diagnostico e rimuovi solo log o cache sicuramente eliminabili. Non iniziare eliminando database, configurazioni o contenuti sconosciuti dei volumi per recuperare spazio.

La prevenzione è completa quando la riproduzione normale, un'attività della libreria e un riavvio non producono più una crescita illimitata e l'avviso rimane comodamente al di sopra della soglia di attivazione. Se lo spazio continua a diminuire anche con il logging limitato, passa a un controllo più ampio dell'utilizzo del disco, perché non è più dimostrato che la causa siano i log di Jellyfin.

Supporto e consigli

Altro da leggere

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.