GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare journalctl per analizzare i registri in Linux

Systemd è il gestore di sistema predefinito in tutti i principali sistemi operativi basati su Linux. Fornisce un demone journald che gestisce tutti i messaggi prodotti dal kernel e dai servizi di sistema. Il demone journald raccoglie i dati da tutte le fonti disponibili e li archivia in un formato binario per una manipolazione facile e dinamica. Systemd fornisce uno strumento da riga di comando chiamato journalctl che può essere utilizzato per leggere e analizzare i registri del journal. journalctl ti permette di analizzare e monitorare i log in tempo reale.

In questa guida, ti mostreremo come utilizzare journalctl per analizzare i log in Linux.

Prerequisiti

  • Un nuovo server Ubuntu 20.04 sulla piattaforma Atlantic.Net Cloud
  • Una password di root configurata sul tuo server

Crea server cloud Atlantic.Net

Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo Ubuntu 20.04 come sistema operativo con almeno 2GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.

Dopo aver effettuato l'accesso al tuo server Ubuntu 20.04, esegui il comando seguente per aggiornare il tuo sistema di base con gli ultimi pacchetti disponibili.

apt-get update -y

Configura diario

Innanzitutto, crea una directory in cui archiviare il registro del diario:

mkdir /var/log/journal

Quindi, imposta la proprietà corretta con il seguente comando:

chown -R root:systemd-journal /var/log/journal

Quindi, modifica il file di configurazione predefinito di journald /etc/systemd/journald.conf e definisci la tua nuova directory:

nano /etc/systemd/journald.conf

Modifica la seguente riga:

Storage=persistent

Salva e chiudi il file, quindi riavvia il servizio systemd-journald per applicare le modifiche:

systemctl restart systemd-journald

Ora puoi controllare la directory /var/log/journal:

ls -l /var/log/journal

Dovresti vedere il seguente output:

drwxr-xr-x 2 root systemd-journal 4096 Apr 21 11:35 97bcb1f0d9aa4b339adefc87f1332d04

Usa journalctl per analizzare il registro

Per stampare tutti i registri raccolti da journald daemon, esegui il comando journalctl:

journalctl

Uscita:

-- Logs begin at Wed 2021-04-21 07:00:15 UTC, end at Wed 2021-04-21 11:40:12 UTC. --
Apr 21 07:00:15 ubuntu2004 kernel: Linux version 4.19.0-9-amd64 ([email protected]) (gcc version 8.3.0 (Debian 8.3.0-6)) #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07)
Apr 21 07:00:15 ubuntu2004 kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-4.19.0-9-amd64 root=UUID=d4f8c3a8-164f-4e15-a198-6124ce8719b5 ro
Apr 21 07:00:15 ubuntu2004 kernel: x86/fpu: x87 FPU will use FXSAVE
Apr 21 07:00:15 ubuntu2004 kernel: BIOS-provided physical RAM map:
Apr 21 07:00:15 ubuntu2004 kernel: BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
Apr 21 07:00:15 ubuntu2004 kernel: BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
Apr 21 07:00:15 ubuntu2004 kernel: BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
Apr 21 07:00:15 ubuntu2004 kernel: BIOS-e820: [mem 0x0000000000100000-0x000000007ffdbfff] usable
Apr 21 07:00:15 ubuntu2004 kernel: BIOS-e820: [mem 0x000000007ffdc000-0x000000007fffffff] reserved
Apr 21 07:00:15 ubuntu2004 kernel: BIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff] reserved
Apr 21 07:00:15 ubuntu2004 kernel: BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved
Apr 21 07:00:15 ubuntu2004 kernel: NX (Execute Disable) protection: active

Se hai bisogno di un output più dettagliato, esegui il seguente comando:

journalctl -o verbose

Uscita:

-- Logs begin at Wed 2021-04-21 07:00:15 UTC, end at Wed 2021-04-21 11:40:29 UTC. --
Wed 2021-04-21 07:00:15.461318 UTC [s=1baac74dce14445f9a6670f231104955;i=1;b=41c491f449fa44c288474cf9f14386c0;m=1ee776;t=5c0761d6627c6;x=4c88a9
    _SOURCE_MONOTONIC_TIMESTAMP=0
    _TRANSPORT=kernel
    PRIORITY=5
    SYSLOG_FACILITY=0
    SYSLOG_IDENTIFIER=kernel
    MESSAGE=Linux version 4.19.0-9-amd64 ([email protected]) (gcc version 8.3.0 (Debian 8.3.0-6)) #1 SMP Debian 4.19.118-2+deb10u1
    _BOOT_ID=41c491f449fa44c288474cf9f14386c0
    _MACHINE_ID=97bcb1f0d9aa4b339adefc87f1332d04
    _HOSTNAME=ubuntu2004
Wed 2021-04-21 07:00:15.461357 UTC [s=1baac74dce14445f9a6670f231104955;i=2;b=41c491f449fa44c288474cf9f14386c0;m=1ee79e;t=5c0761d6627ed;x=eaf7df
    _SOURCE_MONOTONIC_TIMESTAMP=0
    _TRANSPORT=kernel
    SYSLOG_FACILITY=0
    SYSLOG_IDENTIFIER=kernel
    _BOOT_ID=41c491f449fa44c288474cf9f14386c0
    _MACHINE_ID=97bcb1f0d9aa4b339adefc87f1332d04
    _HOSTNAME=ubuntu2004
    PRIORITY=6
    MESSAGE=Command line: BOOT_IMAGE=/boot/vmlinuz-4.19.0-9-amd64 root=UUID=d4f8c3a8-164f-4e15-a198-6124ce8719b5 ro

Per elencare tutti i log di avvio disponibili, esegui il comando seguente:

journalctl --list-boots

Uscita:

 0 41c491f449fa44c288474cf9f14386c0 Wed 2021-04-21 07:00:15 UTC—Wed 2021-04-21 11:41:44 UTC

Per visualizzare tutti i registri dall'ultimo riavvio, esegui il comando seguente:

journalctl -b

Per visualizzare le voci di registro più recenti, esegui il comando seguente:

journalctl --lines 5

Uscita:

-- Logs begin at Wed 2021-04-21 07:00:15 UTC, end at Wed 2021-04-21 11:45:13 UTC. --
Apr 21 11:45:06 ubuntu2004 sshd[12088]: Failed password for invalid user telecomadmin from 103.42.205.111 port 64471 ssh2
Apr 21 11:45:08 ubuntu2004 sshd[12088]: Connection closed by invalid user telecomadmin 103.42.205.111 port 64471 [preauth]
Apr 21 11:45:13 ubuntu2004 sshd[12092]: Invalid user admin from 81.70.161.162 port 60614
Apr 21 11:45:13 ubuntu2004 sshd[12092]: pam_unix(sshd:auth): check pass; user unknown
Apr 21 11:45:13 ubuntu2004 sshd[12092]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=81.70.161.162

Per stampare il registro continuamente, esegui il seguente comando:

journalctl --follow

Uscita:

-- Logs begin at Wed 2021-04-21 07:00:15 UTC. --
Apr 21 11:45:36 ubuntu2004 sshd[12106]: Disconnected from invalid user babi 104.131.102.169 port 54872 [preauth]
Apr 21 11:45:40 ubuntu2004 sshd[12108]: Invalid user telecomadmin from 103.108.241.111 port 60842
Apr 21 11:45:40 ubuntu2004 sshd[12108]: pam_unix(sshd:auth): check pass; user unknown
Apr 21 11:45:40 ubuntu2004 sshd[12108]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=103.108.241.111
Apr 21 11:45:41 ubuntu2004 sshd[12110]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=101.32.11.137  user=root
Apr 21 11:45:42 ubuntu2004 sshd[12108]: Failed password for invalid user telecomadmin from 103.108.241.111 port 60842 ssh2
Apr 21 11:45:43 ubuntu2004 sshd[12108]: Connection closed by invalid user telecomadmin 103.108.241.111 port 60842 [preauth]
Apr 21 11:45:43 ubuntu2004 sshd[12110]: Failed password for root from 101.32.11.137 port 43086 ssh2
Apr 21 11:45:45 ubuntu2004 sshd[12110]: Received disconnect from 101.32.11.137 port 43086:11: Bye Bye [preauth]
Apr 21 11:45:45 ubuntu2004 sshd[12110]: Disconnected from authenticating user root 101.32.11.137 port 43086 [preauth]

Per visualizzare log specifici relativi ai servizi come SSH e Nginx, esegui il comando seguente:

journalctl -u ssh.service
journalctl -u nginx.service

Per visualizzare solo i log relativi al kernel, esegui il comando seguente;

journalctl -k

Per visualizzare i log che contengono errori o critici, esegui il comando seguente:

journalctl -p err -b

Uscita:

-- Logs begin at Wed 2021-04-21 07:00:15 UTC, end at Wed 2021-04-21 11:49:21 UTC. --
Apr 21 07:00:16 ubuntu2004 ntpd[337]: leapsecond file ('/usr/share/zoneinfo/leap-seconds.list'): expired less than 115 days ago
Apr 21 07:00:16 ubuntu2004 ntpd[337]: bind(21) AF_INET6 fe80::200:2dff:fe3a:264e%2#123 flags 0x11 failed: Cannot assign requested address
Apr 21 07:00:16 ubuntu2004 ntpd[337]: unable to create socket on ens3 (5) for fe80::200:2dff:fe3a:264e%2#123

Per visualizzare tutti i log di ieri, esegui il seguente comando:

journalctl --since yesterday

Per visualizzare tutti i log a partire dalle 6:00 e continuando fino a un'ora fa, esegui il comando seguente:

journalctl --since 06:00 --until "1 hour ago"

Per visualizzare la quantità di spazio utilizzata dal diario, esegui il seguente comando:

journalctl --disk-usage

Uscita:

Archived and active journals take up 16.0M in the file system.

Se vuoi conservare tutti i dati dei log solo dell'ultimo anno, esegui il comando seguente:

journalctl --vacuum-time=1years

Per visualizzare solo gli ultimi log, esegui il comando seguente:

journalctl -xe

Conclusione

Nella guida sopra, hai imparato come usare journalctl per leggere e analizzare diversi log di sistema. Ora puoi identificare o risolvere problemi relativi al sistema o alle applicazioni sul tuo VPS da Atlantic.Net.


Linux
  1. Come usare BusyBox su Linux

  2. Come uso cron in Linux

  3. Come usare TROVA in Linux

  4. Come usare il comando Su in Linux

  5. Come cancellare Journalctl?

Come utilizzare lo schermo Linux

Come usare du Command in Linux

Come utilizzare il terminale Linux in Android

Come utilizzare il comando sysctl in Linux

Come utilizzare il comando di arresto di Linux

Come usare grep in Linux