/
/

Comprendere i log di Linux: Panoramica con esempi

di Makenzie Buenning, IT Editorial Expert   |  
translated by Sergio Oricci
Log di Linux

I log e l’output dei programmi sono parte integrante dell’intera struttura del sistema Linux. Nel territorio di Linux, i log sono una fonte vitale di informazioni sugli incidenti di sicurezza, sulle attività delle applicazioni e sugli eventi di sistema. La gestione efficace dei log di Linux è fondamentale per la risoluzione dei problemi e per garantire la conformità. Questo articolo esplora l’importanza della registrazione e i principali tipi di log di Linux prima di trattare alcuni utili strumenti da riga di comando e altri suggerimenti per aiutarti a gestire i log di Linux.

L’importanza dei log di Linux

I log forniscono una panoramica di alto livello delle applicazioni e dei processi che il sistema esegue automaticamente in background. Questi log forniscono una traccia di verifica per scoprire ciò che un sistema sta facendo o no, e i successi e gli errori generati durante tali attività. Molte applicazioni dell’ecosistema Linux producono output il quale è leggibile dall’uomo e, se tale output viene reindirizzato ad un file di log, è analizzato automaticamente dagli strumenti inclusi in un sistema Linux. Il recupero delle informazioni storiche senza che esse siano presenti in un log sarebbe difficile, se non impossibile, anche se non è necessario entrare nel log per farlo. 

È importante evidenziare uno dei vantaggi notevoli che ne ricava l’ambiente di lavoro. Integrando perfettamente l’interfaccia utente con l’architettura del sistema sottostante, il ciclo di feedback si riduce durante la fase di sviluppo e oltre. Genera quindi un output prezioso che può essere trasformato in informazioni utili per l’intero ciclo di vita dell’applicazione.

Tipi di log di Linux

  • Log di Linux di sistema: catturano informazioni sul sistema operativo, come messaggi di avvio, eventi hardware e attività del kernel. 
  • Log di Linux delle applicazioni: registrano eventi specifici relativi al software, come messaggi di manutenzione, errori, avvisi e attività dell’utente.
  • Log di Linux di sicurezza: tengono traccia degli eventi relativi alla sicurezza, compresi gli accessi non autorizzati, gli accessi regolari e le attività del firewall. 

Ognuno di questi può quindi servire come inserimento o attivazione per applicazioni o script, compresa l’integrazione con la maggior parte dei software di monitoraggio aziendali.

Formati Syslog e journald log

I file di log di Linux possono essere archiviati in diversi formati, tra cui i più comuni sono i log di sistema centralizzati con il journaling e i log di testo normale. 

In generale, il formato syslog è memorizzato in log in testo normale, facilmente leggibili e analizzabili. Tale formato ha vantaggi e svantaggi, così come journald, che memorizza i log in un formato binario leggibile dal comando journalctl

La maggior parte delle moderne distribuzioni Linux tende a utilizzare i log journald di systemd almeno per le applicazioni di sistema principali. I log journal di systemd offrono vantaggi quali le strutture di registrazione centralizzate, il monitoraggio in tempo reale dei dati di log strutturati e indicizzati e la crittografia automatica dei log. In confronto, la natura meno restrittiva dei tradizionali log di testo normale di Linux potrebbe sembrare più rischiosa a prima vista. Non lasciarti ingannare però: i log di testo normale hanno ancora molti usi.

La maggior parte o tutte le funzioni integrate in systemd, come i sistemi di log remoti, il monitoraggio centralizzato, la rotazione dei log e i backup, sono offerte anche da altri pacchetti Linux standard. Uno svantaggio di journald è la sua natura monolitica relativamente “pesante” rispetto agli strumenti a riga di comando Linux più versatili, utilizzati per interagire con i file syslog, come grep, awk o tail. In confronto, quando si usa journald, tutte le sue caratteristiche sono installate e funzionanti: archiviazione, crittografia, registrazione centralizzata, rotazione dei log e altro ancora, indipendentemente dal fatto che tu ne abbia bisogno o meno.

Confronto di funzionalità: registrazione syslog vs journald

Funzionalitàsyslogjournald
Formato di archiviazione                                                                                 File di testo normaleFormato binario con dati strutturati
CompatibilitàAmpiamente supportato da diversi strumenti di gestione dei logRichiede l’integrazione di systemd per la piena funzionalità
Rotazione dei logConfigurazione manuale della rotazione dei logRotazione e compressione automatica dei file di log
Gestione centralizzataSi affida a server e strumenti di log esterniSupporto integrato per la registrazione centralizzata
Filtraggio e analisiFunzionalità avanzate di filtraggio e analisi del testo dalla catena di strumenti standard di LinuxFiltraggio e interrogazione avanzati con journalctl
Efficienza di archiviazionePuò consumare più spazio su disco a causa del formato testo normaleArchiviazione più efficiente grazie al formato binario e indicizzato
Monitoraggio in tempo realeRichiede strumenti esterni o file di log di tailingMonitoraggio integrato dei log in tempo reale con journalctl
AffidabilitàVulnerabile alla corruzione o alla perdita dei file di log in caso di malfunzionamentiScritture atomiche e struttura resiliente del file journal
CrittografiaPotrebbero essere necessari meccanismi di crittografia esterniSupporta la crittografia dei dati di log

Filtrare e analizzare i dati dei log di Linux: esempi utili

Esempi di journald:

Esempio: journalctl -p err

Spiegazione: Filtra i log journal per visualizzare solo le voci con livello di gravità “err” , che rappresentano errori. In questo modo è possibile concentrarsi sui messaggi di errore e identificare rapidamente eventuali problemi critici nei log di sistema.

Esempio: journalctl _SYSTEMD_UNIT=nginx.service

Spiegazione: Filtra i log journal per visualizzare le voci relative a nginx.service. Aiuta a isolare i log specifici, ad esempio del server web Nginx, facilitando la risoluzione dei problemi o il monitoraggio delle sue attività.

Esempio: journalctl –since “2023-07-21” –until “2023-07-22”

Spiegazione: Filtra i log journal per visualizzare le voci tra le date specificate, in questo caso dal 21 luglio 2023 al 22 luglio 2023. Permette di concentrarsi sulle voci di registro in un intervallo di tempo specifico, aiutando a eseguire il debug o a indagare sugli eventi che si sono verificati in quel periodo.

Esempi di syslog:

Esempio: grep -i “warning” syslog.log | grep -v “deprecato”

Spiegazione: Esegue un processo di filtraggio in due fasi. Per prima cosa utilizza grep con l’opzione -i per cercare le righe che corrispondono alla stringa “warning” in syslog.log, quindi invia l’output a un altro comando grep con l’opzione -v, escludendo le righe che corrispondono alla stringa “deprecated”. Consente di filtrare i messaggi di avviso specificamente contrassegnati come deprecati.

Esempio: grep ‘string1|string2[|string3]’ logfile.log

Spiegazione: Effettivamente una ricerca OR utilizzando grep. L’uso di virgolette singole e del simbolo di pipe tra di esse consente di cercare più stringhe con un singolo comando grep.

Altri suggerimenti sugli strumenti di logging

Sebbene gli strumenti standard di Linux siano utilizzati a beneficio del sistema, è utile impiegarli anche altrove:

  • logrotate: Utile nella fase di sviluppo dell’applicazione per gestire i log di output di debug
  • tail -f: il comando “tail” stampa le ultime 10 righe di un file prima di uscire. L’opzione “-f” “segue” il file di log, osserva le nuove voci del file di log e si aggiorna quando vengono aggiunte nuove righe.
  • multitail: Visualizza più file di log in riquadri affiancati in tempo reale, in modo da poterli monitorare contemporaneamente.

In questo articolo abbiamo discusso vari aspetti dell’importanza del logging, confrontato diversi tipi di log di Linux e toccato casi d’uso meno consueti per accedere al tuo lavoro. Abbiamo anche esplorato una serie di esempi di comandi e altri strumenti che contribuiscono a un’efficace gestione dei log di Linux.  Utilizza i log di Linux per tenere traccia delle informazioni su sistemi operativi, applicazioni e sistemi Linux e per gestire meglio i tuoi endpoint Linux. Scopri qualcosa in più sul software di monitoraggio remoto ed endpoint management di NinjaOne e su come può aiutarti a gestire più facilmente i tuoi dispositivi Linux distribuiti.

You might also like

Pronto a semplificare le parti più complesse dell'IT?