Quando gestiamo i sistemi operativi Linux ci sono centinaia di processi che dobbiamo rivedere costantemente per mantenere i migliori livelli di servizio sui computer server o client. Negli ambienti Linux troviamo Systemd che è un sistema innovativo che ci permette di raccogliere informazioni sui processi paralleli durante l'avvio del sistema operativo.
Systemd è presente nella maggior parte delle distribuzioni Linux come Fedora, Debian, Ubuntu, OpenSuSE, Arch, RHEL, CentOS e altre. Con Systemd abbiamo la possibilità di gestire centralmente tutti i servizi ei processi del sistema. Per questa analisi utilizzeremo CentOS 7.
1. Configurazione di Journald per raccogliere i log di Systemd
Fondamentalmente journald è responsabile della raccolta e della scrittura degli input giornalieri del sistema operativo come messaggi di avvio, messaggi del kernel, messaggi syslog, registri delle applicazioni, tra gli altri. Tutte le informazioni in Journald sono ospitate nel percorso /etc/systemd/journald.conf e i valori registrati sono conformi ai requisiti di sistema locali.
Un modo semplice per visualizzare il contenuto di questo percorso consiste nell'eseguire la seguente riga con il parametro cat:
cat /etc/systemd/journald.conf
2. Abilita il diario sull'archiviazione su disco
La maggior parte delle distribuzioni Linux non consente l'archiviazione di messaggi persistenti all'interno del proprio sistema di avvio per raccogliere le informazioni di tale avvio.
Per abilitare questo log, sarà necessario accedere al percorso /var/log/journal e modificare lì la riga di archiviazione. Per accedervi utilizzeremo editor come nano o vi come segue:
sudo vi /etc/systemd/journald.conf sudo nano /etc/systemd/journald.confQuando si accede a questo file vedremo quanto segue:
Lì modificheremo la riga di archiviazione dal valore auto al valore persistente:
Salvare le modificheSalviamo le modifiche usando i tasti Ctrl + O ed usciamo dall'editor usando Ctrl + X.
Per ottenere informazioni dettagliate su ciascuno degli elementi Journal possiamo eseguire la seguente riga:
uomo journald.conf
3. Impostazione della data e dell'ora utilizzando Timedatectl
Questo aspetto è importante poiché avendo una corretta configurazione della data e dell'ora, i record saranno molto più affidabili e precisi.
Per visualizzare la data e l'ora correnti, eseguiremo una delle seguenti righe:
timedatectl timedatectl statoIl risultato sarà il seguente:
In caso di impostazione di un fuso orario diverso eseguiremo la seguente sintassi:
sudo timedatectl set-timezone (Città / Paese) sudo timedatectl set-time "HH: MM: SS"
4. Visualizza i messaggi dai log utilizzando Journalctl
Il comando journalctl è un'utilità inclusa in Linux che ci permette di vedere il contenuto di systemd. Per visualizzare tutti i record senza filtrare, eseguiremo la seguente riga:
journalctlIl risultato sarà il seguente:
Ora i seguenti sono i filtri che possiamo usare con Journalctl:
Filtri basati sull'avvioQuesto filtro ci consente di visualizzare i numeri di avvio, il loro ID, i loro timestamp, tra gli altri valori.
Per questo useremo il parametro --list-boots:
journalctl --list-boots
Se vogliamo vedere i record dall'avvio corrente utilizzeremo la seguente riga:
journalctl -bPer vedere i record precedenti utilizzeremo la seguente riga:
journalctl -b -1
Filtri basati sul tempoCon questo filtro possiamo utilizzare il formato UTC (Coordinated Universal Time - Coordinated Universal Time) utilizzando il parametro -utc:
journalctl -utc
Inoltre possiamo aggiungere filtri come segue:
journalctl --since "2017-07-02 08:30:00" (visualizza i risultati dalla data indicata) journalctl --since today (visualizza i risultati del giorno corrente) journalctl --since ieri (visualizza i risultati del giorno corrente precedente)
Visualizza gli ultimi eventiIl valore predefinito utilizzato da Journalctl è 10 record, ma se utilizziamo il parametro -n possiamo indicare una quantità maggiore o minore.
journalctl -n 5
Visualizza gli eventi generati dal kernelPer visualizzare i messaggi generati dal kernel utilizzeremo il parametro -k come segue:
journalctl -k
Allo stesso modo abbiamo le seguenti opzioni:
- Visualizza gli eventi per unità:
journalctl -u (servizio)
- Visualizza gli eventi per processi:
journalctl _PID = (# PID), journalctl _PID = (PID) --da oggi, journalctl _PID = (PID) --da ieri
- Visualizza gli eventi per ID utente o gruppo:
journalctl _UID = 1000
- Visualizza gli eventi generati da un particolare file:
journalctl / usr / bin / bash
- Vedi eventi per priorità: journalctl -p (Codice o termine), le opzioni disponibili sono:
0 - emerg, 1 - alert, 2 - crit, 3 - err, 4 - warning, 5 - notice, 6 - info, 7 - debug
In questo modo, Journalctl offre molteplici soluzioni pratiche per svolgere questo compito.