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:
emerg- fallimento, massima priorità;alert- avviso urgente;crit- evento critico;err- errore ordinario;warn- avviso ordinario;notice- notifica;info- messaggio informativo;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".
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
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.
- Timestamp del messaggio - “12 feb 06:18:33”
- Nome del computer che ha inviato il messaggio - “vds”
- Nome dell'applicazione o del servizio che ha inviato il messaggio - "sshd"
- ID processo - [653]
- 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:
Questo file registra anche i comandi con permessi avanzati
Apriamo il / Var / log / syslog filetto
Il messaggio evidenziato nello screenshot è il messaggio relativo all'arresto dell'interfaccia di rete.
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
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
Diamo un'occhiata al file "/etc/logrotate.d/rsyslog" che contiene le regole di rotazione per i registri del rsyslog servizio.
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
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 avviojournalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- mostra il record entro un certo periodo di tempojournalctl -u pptpd- mostra i record di un determinato serviziojournalctl -k- mostra i messaggi del kerneljournalctl -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
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
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.
/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