Attenzione! Questa è una Pagina di prova. Le informazioni riportate potrebbero essere incomplete, errate e potenzialmente pericolose. Per contribuire alla realizzazione di questa pagina consultare la discussione di riferimento. |
Guida verificata con Ubuntu: 20.04 22.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Uno degli aspetti fondamentali dei sistemi GNU/Linux è il logging, ovvero la registrazione di tutto ciò che accade nel sistema.
Queste informazioni hanno un valore inestimabile per utilizzare il sistema in modo cosciente. Inoltre rientrano fra le le prime risorse che è bene controllare per la risoluzione di eventuali problemi e per la ricerca delle relative soluzioni. Infatti i file di log memorizzano tutte le informazioni riguardanti lo stato del sistema e delle applicazioni, compresi eventuali errori.
Ubuntu fornisce informazioni essenziali su eventi, operazioni e altre funzionalità attraverso la registrazione di diverse tipologie file di log.
Tranne alcune eccezioni, tali file:
sono semplici file di testo in formato ASCII standard.
vengono generalmente memorizzati in /var/log, la sottodirectory di sistema appositamente dedicata.
possono essere generati dal demone di sistema rsyslogd oppure creati e gestiti direttamente dalle applicazioni.
Questa guida descrive, fra le varie cose:
- i principali log di sistema e delle applicazioni, nonché il loro contenuto.
con l'aiuto di esempi pratici, alcuni modi per consultare tali log e registri tramite riga di comando, al fine di estrarre informazioni utili.
alcuni usi principali del demone di registrazione del sistema rsyslogd, di dmesg e di journal.
Esaminare i file di registro
I file di log possono contenere un numero tale di righe che potrebbero risultare scomodi da consultare tramite il comando cat o con i principali Ufficio/EditorDiTesto|editor di testo]]. Quindi è possibile utilizzare alcuni comandi di base, fra cui alcuni più specifici come head e tail. Alcuni file necessitano dei privilegi di amministrazione per essere letti.
Per visualizzare il contenuto di un file con il comando Il file /var/log/auth.log verrà stampato a schermo. Per consultarlo usare i seguenti tasti: La ricerca all'interno dei file di log può risultare lunga e difficoltosa a causa delle loro dimensioni. Tale operazione può essere però semplificata attraverso l'uso combinato dei comandi
I comandi Ad esempio, per consultare gli eventi meno recenti registrati nel log di autorizzazione, digitare nel terminale il comando: Viceversa, per consultare i più recenti il comando sarà: Tuttavia è anche possibile consultare un numero diverso di righe aggiungendo l'opzione Per consultare invece le ultime venticinque righe dello stesso file digitare:
Aggiungendo l'opzione
Questa sezione della guida si occupa dei cosiddetti log di sistema, ovvero dei file di registro nei quali vengono memorizzati tutti gli eventi che riguardano il funzionamento del sistema, quindi non necessariamente con le altre applicazioni. Esempi di questo tipo sono quelli relativi ai meccanismi di autorizzazione, ai sevizi di sistema, ai messaggi e ai log di sistema veri e propri, detti anche
Il log di autorizzazione traccia l'uso dei sistemi di autorizzazione, cioè tutti i quei meccanismi di Ubuntu che permettono di autorizzare gli utenti attraverso l'inserimento della propria password: il sistema
Il log di debug fornisce i dettagli dei messaggi di debug provenienti dal sistema e dalle applicazioni che si appoggiano al demone
Il registro di attività del kernel fornisce informazioni dettagliate sullo stato del kernel di Ubuntu. Questi messaggi possono risultare utili, ad esempio, per la risoluzione dei problemi durante l'installazione di un nuovo kernel.
Il kernel ring buffer non è un vero e proprio file di log. È piuttosto da considerarsi un'area del kernel in uso che può essere interrogata in modo da ottenere informazioni riguardanti i messaggi di avvio del kernel stesso. A tale scopo è utile usare il comando Come per altri comandi, è possibile usarlo insieme al comando All'avvio del sistema, per impostazione predefinita, lo script /etc/init.d/bootmisc.sh lancia il comando dmesg e ne memorizza i risultati all'interno di /var/log/dmesg. Tale file può essere consultato come un qualsiasi altro file di registro.
Questo log contiene i messaggi di informazioni delle applicazioni e degli strumenti di sistema. Questo registro è utile per esaminare messaggi di output provenienti dalle applicazioni e dagli strumenti di sistema che sfruttano il servizio
Il registro di sistema contiene la stragrande maggioranze delle delle informazioni relative alla configurazione del proprio sistema Ubuntu. È localizzato in /var/log/syslog e contiene tutte le altre informazioni non gestite dagli altri registri. Può essere utile consultare questo file di registro quando le informazioni desiderate non sono presenti negli altri log citati in precedenza.
Il gestore di servizi In Ubuntu i log di Per visualizzare il log di systemd digitare nel terminale: Può essere utilizzato con numerose opzioni. Per maggiori informazioni digitare il comando:
Oltre ai tantissimi log specifici del sistema, è possibile accedere anche ai diversi altri log usati da determinate applicazioni. Elencando il contenuto della sottodirectory /var/log è possibile notare dei file contenenti i nomi di alcune applicazioni installate (/var/log/apache2 come log del server
I file di registro di
Anche
Il comando
Il server log.nmbd: annota tutti i messaggi relativi al NETBIOS Samba sopra la funzionalità dell'IP; log.smbd: annota tutti i messaggi relativi alle funzionalità del SMB/CIFS Samba; log.[IP_ADDRESS]: annota i messaggi relativi alle richieste per i servizi dall'indirizzo IP presente nel nome del file, per esempio log.192.168.1.1.
Il server grafico
Tra i vari file presenti in /var/log ve ne sono alcuni destinati ad essere letti da particolari applicazioni, non necessariamente da esseri umani. Quelli che seguono sono degli esempi di questi particolari tipi di registro.
È possibile visualizzare il log degli accessi falliti al sistema tramite il comando
È possibile esaminare il registro degli ultimi accessi effettuati tramite il comando
È possibile esaminare il registro in questione in modo da conoscere gli utenti attualmente loggati nel sistema attraverso il comando
Il file /etc/rsyslog.conf contiene la configurazione del servizio
Una delle funzionalità del comando Il seguente esempio mostra un ipotetico utente mario che inserisce un messaggio in /var/log/syslog dopo una modifica effettuata ad un file di configurazione del sistema: Nel file /var/log/syslog comparirà una riga simile alla seguente: È possibile usare il comando logger all'interno di script, i cui risultati saranno visibili sia come output nel terminale sia all'interno del file /var/log/syslog.
A intervalli di tempo predefiniti, i file di log vengono prima ruotati, ovvero automaticamente rinominati e sostituiti da nuovi file, dunque compressi con Il comando
Documento originale del wiki internazionale (non aggiornato) Rsyslog (Wiki Debian internazionale) Viewing and Managing Log Files (Documentazione Red Hat) journalctl (pagina man) Lettura dei log con i comandi di base
less /var/log/auth.log
le freccie direzionali per scorrere il file riga per riga; grep gnome-keyring /var/log/auth.log | less
Esaminare i log con i comandi head e tail
Come impostazione di predefinita mostrano le prime dieci righe o le ultime dieci di un qualsiasi file di testo. head /var/log/auth.log
tail /var/log/auth.log
head -n 25 /var/log/kern.log
tail -n 25 /var/log/kern.log
Esaminare log in tempo reale
tail -f /var/log/apache2/access.log
Registri di sistema
Log di autorizzazione
Posizione: /var/log/auth.log grep ssh /var/log/auth.log | less
Log di debug
Posizione: /var/log/debug grep ACPI /var/log/debug | less
Log del kernel
Posizione: /var/log/kern.log grep CPU /var/log/kern.log | less
Kernel ring buffer
dmesg | less
dmesg | grep pnp | less
Log dei messaggi
Posizione: /var/log/messages grep gconfd /var/log/messages | less
Registro di sistema
systemd (Journal)
journalctl
man journalctl
Registri delle applicazioni
Registro di Apache
Posizione: /var/log/apache2/ grep "82.211.81.166" /var/log/apache2/access.log | less
grep "Mac OS X" /var/log/apache2/access.log | less
grep "shutting down" /var/log/apache2/error.log | less
Registro del sistema di stampa CUPS
Posizione: /var/log/cups/error_log grep reload /var/log/cups/error_log | less
Log di Rootkit Hunter
Posizione: /var/log/rkhunter.log grep WARNING /var/log/rkhunter.log | less
Registro di Samba
Posizione: /var/log/samba grep "master browser" /var/log/samba/log.nmbd | less
less /var/log/samba/log.nmbd
grep started /var/log/samba/log.smbd | less
less /var/log/samba/log.192.168.99.99
Registro di X
Posizione: /var/log/Xorg.0.log grep freetype /var/log/Xorg.0.log | less
Log non umanamente intellegibili
Registro degli accessi falliti
Posizione: /var/log/faillog faillog
Registro degli ultimi accessi
Posizione: /var/log/lastlog lastlog | less
Registro degli accessi
Posizione: /var/log/wtmp who
System Logging Daemon
rsyslogd è un servizio di sistema che ha il compito di gestire, ricevere, reindirizzare (in locale o attraverso la rete) e memorizzare i messaggi di log proveniente dagli altri sottosistemi (servizi, applicazioni ecc.).
In Ubuntu ha da tempo sostituito syslogd, un servizio equivalente precedentemente utilizzato nei sistemi unix-like, con cui è in gran parte retrocompatibile (ad esempio possono essere facilmente esportate le regole di syslogd in rsyslogd). Configurazione
man /etc/rsyslog.conf
Inviare messaggi al registro di sistema
logger Ho modificato il file /etc/fstab
Jan 12 23:17:02 localhost mario: Ho modificato il file /etc/fstab
Rotazione dei log
Ulteriori risorse