Knowledgebase Semplici istruzioni per lavorare con il servizio Profitserver
Principale Knowledgebase Come leggere i log di Linux e dove trovarli

Come leggere i log di Linux e dove trovarli


Quando riscontri problemi con le prestazioni del tuo server, la prima cosa che vuoi fare è controlla i tuoi registri LinuxNel registro di sistema puoi trovare alcuni utili messaggi di diagnostica da diversi componenti del sistema operativo come il kernel o vari servizi, quindi molto probabilmente troverai lì la causa dell'errore.

Ogni messaggio nel registro viene generato in seguito a determinati eventi nel sistema operativo: dall'utente, dall'autorizzazione allo spegnimento del servizio o dal fallimento dell'applicazione. Questi eventi hanno priorità diverse a seconda di quanto siano critici. Ci sono i seguenti tipi di eventi in Linux:

  1. emerg - fallimento, massima priorità;
  2. alert - avviso urgente;
  3. crit - evento critico;
  4. err - errore ordinario;
  5. warn - avviso ordinario;
  6. notice - notifica;
  7. info - messaggio informativo;
  8. debug - informazioni di debug;

Al momento, i principali servizi di raccolta dei log in Linux sono rsyslog e systemd-journalSono compatibili con la maggior parte dei pacchetti di distribuzione moderni e funzionano in modo indipendente.

rsyslog

I registri di questo servizio si trovano in “/ var / log /" cartella sotto forma di normali file di testo. I messaggi di log vengono inseriti in file diversi a seconda del tipo di evento. Ad esempio, "/var/log/auth.log" contiene informazioni sull'autorizzazione degli utenti nel sistema e "/var/log/kern.log” contiene messaggi del kernel. I nomi dei file possono variare a seconda dei pacchetti di distribuzione, quindi diamo un'occhiata al file di configurazione per farci un'idea di dove si trova “/etc/rsyslog.d/50-default.conf".

Сбор логов Linux utilità rsyslog

Queste regole mostrano quale file contiene ogni tipo di messaggio di log. La parte sinistra mostra il tipo di messaggio nel seguente formato "[Fonte].[Priorità]" e la parte destra visualizza il nome del file di registro. Durante la scrittura del tipo di messaggio "*" può essere aggiunto il carattere. Significa valore vuoto o "nessuna” che lo rimuove dall'elenco. Diamo un'occhiata più da vicino alle prime due regole.

“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”

La prima regola significa che tutti i messaggi ricevuti dal meccanismo di autorizzazione verranno registrati in "/var/log/auth.log”. Tutti i tentativi di autorizzazione (sia quelli riusciti che quelli falliti) saranno registrati in questo file. La seconda regola indica che tutti i messaggi, eccetto quelli connessi all'autorizzazione, saranno registrati in "/ Var / log / syslog" file. Questi due file sono solitamente i più popolari. Le seguenti regole definiscono il percorso per memorizzare i log del kernel "nocciolo.*" e registri del servizio di posta "posta.*"

I file di registro possono essere aperti con l'aiuto di qualsiasi editor di testo, come meno, gatto, coda. Apriamo il “/var/log/auth.log" file

less /var/log/auth.log
Scrivi nel file di log di Linux su un'autorizzazione remota SSH

Ogni riga del file è un messaggio separato ricevuto dall'applicazione o dal servizio. Tutti i messaggi, indipendentemente dalla loro origine, hanno un formato e sono composti da 5 parti. Prendiamo come esempio il messaggio evidenziato nello screenshot.

  1. Timestamp del messaggio - “12 feb 06:18:33”
  2. Nome del computer che ha inviato il messaggio - “vds”
  3. Nome dell'applicazione o del servizio che ha inviato il messaggio - "sshd"
  4. ID processo - [653]
  5. Testo del messaggio - "Password accettata per mihail da 188.19.42.165 porta 2849 ssh2"

Questo è un esempio di connessione riuscita a SSH.

Ed ecco come appare un tentativo di accesso non riuscito:

Cita i nomi di Linux

Questo file registra anche i comandi con permessi avanzati

Come elaborare correttamente il registro Linux

Apriamo il / Var / log / syslog filetto

Il messaggio evidenziato nello screenshot è il messaggio relativo all'arresto dell'interfaccia di rete.

Utile logorotate

Per cercare informazioni attraverso file di testo lunghi utilizzare grep utilità. Puoi trovare tutti i messaggi ricevuti da pptpd servizio nel “/ Var / log / syslog" file.

grep 'pptpd' /var/log/syslog
file “/etc/logrotate.d/rsyslog”

Durante la diagnosi è possibile utilizzare coda utilità che può visualizzare diverse ultime righe di file. Comando “tail -f / var / log / syslog" ti consentirà di guardare i registri registrati in tempo reale.

Il servizio rsyslog è molto flessibile e potente. Può essere utilizzato per raccogliere log nei sistemi locali e anche a livello aziendale. Puoi trovare la documentazione completa sul sito Web ufficiale https://www.rsyslog.com/

Rotazione dei log in Linux

La registrazione dei log avviene ininterrottamente, quindi la dimensione dei file aumenta costantemente. Il meccanismo di rotazione assicura l'archiviazione automatica dei vecchi log e la creazione di nuovi file. A seconda delle regole, può avvenire quotidianamente, settimanalmente, mensilmente o in base al limite di dimensione. Man mano che vengono creati nuovi log, quelli vecchi possono essere semplicemente eliminati o inviati tramite e-mail. La rotazione dei log viene eseguita da raggiunto utilità. Puoi trovare la configurazione principale in “/etc/logrotate.conf” file. Il contenuto dei file viene elaborato anche in “/etc/logrotate.d/" cartella

Le nuove regole possono essere registrate nel file di configurazione principale. Tuttavia, è meglio creare un file separato in "/etc/logrotate.d/”. Per impostazione predefinita, ci sono alcuni file in questa directory

Installa loghi rotanti su Linux

Diamo un'occhiata al file "/etc/logrotate.d/rsyslog" che contiene le regole di rotazione per i registri del rsyslog servizio.

Esempio di visualizzazione di tutto il programma pptpd nel file di registro

Innanzitutto, la regola dovrebbe contenere il percorso al file di registro e poi tutte le linee guida tra parentesi curve.

  • ruotare 7 - numero di file da conservare - 7
  • alle lezioni - creare un nuovo file ogni giorno
  • comprimere - comprimere e archiviare i vecchi file
Come leggere i log di Linux

Puoi vedere nello screenshot che nella sezione "/ var / log /"cartella in cui si trova il registro principale"syslog" e 7 archivi, che corrispondono alle regole nel file di configurazione.

Una descrizione più dettagliata di logrotate la puoi trovare nel manuale, eseguendo il comando “uomo logrotate"Comando

Raccolta dei log di Linux - journald

Servizio di raccolta tronchi systemd-journal è una parte del sistema di inizializzazione systemdI file di registro di Linux sono archiviati in "/var/log/giornale/" in un formato speciale e può essere aperto con l'aiuto di journalctl utilità. Il formato dei record è esattamente lo stesso di rsyslog.

Comando journalctl senza attributi mostra tutti i record ma non è adatto per log più grandi. Diamo un'occhiata ad alcune opzioni di questa utility.

  • journalctl -b - mostra tutti i record dall'ultimo avvio
  • journalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10" - mostra il record entro un certo periodo di tempo
  • journalctl -u pptpd - mostra i record di un determinato servizio
  • journalctl -k - mostra i messaggi del kernel
  • journalctl -p err - mostra i messaggi di una certa priorità, in questo caso messaggi di priorità più alta (crit, alert, emerg)
  • journalctl -f - mostra i messaggi in tempo reale

Per una maggiore flessibilità puoi combinare queste opzioni. Mostriamo tutti gli errori del pptpd INSTALLAZIONE

journalctl -u pptpd -p err
ultimo utilizzo

Se specifichi il percorso del file eseguibile come attributo, l'utilità mostrerà tutti i messaggi inviati da questo file. Mostriamo tutti i messaggi inviati dal file “/usr/bin/sudo" dalle 04:15 del 18 febbraio 2020. Infatti, mostrerà tutti i comandi eseguiti con permessi più elevati.

journalctl -S "2020-02-18 04:15" /usr/bin/sudo
comunanza lastb

Per scoprire quanto spazio su disco occupano i file di registro, eseguire il seguente comando

journalctl --disk-usage

Per limitare il file di registro a 1 GB eseguire il seguente comando

journalctl --vacuum-size=1G

Apertura di file binari

Ora diamo un'occhiata ad alcuni file speciali nella cartella "/ var / log /" cartella in cui sono archiviati tutti i tentativi di accesso. Questi file sono binari e possono essere aperti solo con programmi speciali.

/var/log/wtmp contiene informazioni sui tentativi di accesso riusciti. Usa l'ultima utility per aprirlo.

estrazione lastlog

/var/log/btmp - contiene tutti i tentativi di accesso falliti. Può essere aperto con lastb con permessi avanzati. Attributo -n definisce il numero di righe visualizzate dalla fine del file.

/ var / log / lastlog - contiene l'ora dell'ultima azione di accesso per ogni record di account. Può essere aperto con ultimo log

❮ Articolo precedente Come configurare le interfacce di rete in CentOS
Articolo successivo ❯ Editor di testo Linux

Chiedici informazioni su VPS

Siamo sempre pronti a rispondere alle vostre domande a qualsiasi ora del giorno e della notte.