GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie journalctl zum Analysieren von Protokollen in Linux

Systemd ist der Standard-Systemmanager in allen wichtigen Linux-basierten Betriebssystemen. Es stellt einen Journald-Daemon bereit, der alle Meldungen verarbeitet, die vom Kernel und den Systemdiensten erzeugt werden. Der Journald-Daemon sammelt Daten aus allen verfügbaren Quellen und speichert sie zur einfachen und dynamischen Bearbeitung in einem Binärformat. Systemd stellt ein Befehlszeilentool namens journalctl bereit, mit dem Journalprotokolle gelesen und analysiert werden können. Mit journalctl können Sie die Protokolle in Echtzeit analysieren und überwachen.

In dieser Anleitung zeigen wir Ihnen, wie Sie mit journalctl Protokolle unter Linux analysieren.

Voraussetzungen

  • Ein frischer Ubuntu 20.04-Server auf der Atlantic.Net Cloud Platform
  • Ein auf Ihrem Server konfiguriertes Root-Passwort

Atlantic.Net Cloud-Server erstellen

Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie Ubuntu 20.04 als Betriebssystem mit mindestens 2 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.

Sobald Sie sich bei Ihrem Ubuntu 20.04-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.

apt-get update -y

Journal konfigurieren

Erstellen Sie zunächst ein Verzeichnis zum Speichern des Journalprotokolls:

mkdir /var/log/journal

Legen Sie als Nächstes den richtigen Besitz mit dem folgenden Befehl fest:

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

Bearbeiten Sie als Nächstes die Journald-Standardkonfigurationsdatei /etc/systemd/journald.conf und definieren Sie Ihr neues Verzeichnis:

nano /etc/systemd/journald.conf

Ändern Sie die folgende Zeile:

Storage=persistent

Speichern und schließen Sie die Datei und starten Sie dann den systemd-journald-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart systemd-journald

Sie können nun das Verzeichnis /var/log/journal überprüfen:

ls -l /var/log/journal

Sie sollten die folgende Ausgabe sehen:

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

Verwenden Sie journalctl, um das Protokoll zu analysieren

Um alle vom Journald-Daemon gesammelten Protokolle zu drucken, führen Sie den Befehl journalctl aus:

journalctl

Ausgabe:

-- 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

Wenn Sie eine ausführlichere Ausgabe benötigen, führen Sie den folgenden Befehl aus:

journalctl -o verbose

Ausgabe:

-- 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

Führen Sie den folgenden Befehl aus, um alle verfügbaren Startprotokolle aufzulisten:

journalctl --list-boots

Ausgabe:

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

Führen Sie den folgenden Befehl aus, um alle Protokolle seit dem letzten Neustart anzuzeigen:

journalctl -b

Führen Sie den folgenden Befehl aus, um die neuesten Protokolleinträge anzuzeigen:

journalctl --lines 5

Ausgabe:

-- 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

Um das Protokoll kontinuierlich zu drucken, führen Sie den folgenden Befehl aus:

journalctl --follow

Ausgabe:

-- 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]

Führen Sie den folgenden Befehl aus, um bestimmte dienstbezogene Protokolle wie SSH und Nginx anzuzeigen:

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

Führen Sie den folgenden Befehl aus, um nur Kernel-bezogene Protokolle anzuzeigen;

journalctl -k

Führen Sie den folgenden Befehl aus, um Protokolle anzuzeigen, die Fehler oder kritische Einträge enthalten:

journalctl -p err -b

Ausgabe:

-- 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

Führen Sie den folgenden Befehl aus, um alle Protokolle von gestern anzuzeigen:

journalctl --since yesterday

Führen Sie den folgenden Befehl aus, um alle Protokolle ab 6:00 Uhr bis vor einer Stunde anzuzeigen:

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

Führen Sie den folgenden Befehl aus, um den vom Journal belegten Speicherplatz anzuzeigen:

journalctl --disk-usage

Ausgabe:

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

Wenn Sie alle Protokolldaten nur aus dem letzten Jahr behalten möchten, führen Sie den folgenden Befehl aus:

journalctl --vacuum-time=1years

Führen Sie den folgenden Befehl aus, um nur die letzten Protokolle anzuzeigen:

journalctl -xe

Schlussfolgerung

In der obigen Anleitung haben Sie gelernt, wie Sie mit journalctl verschiedene Systemprotokolle lesen und analysieren. Sie können jetzt system- oder anwendungsbezogene Probleme auf Ihrem VPS von Atlantic.Net aus identifizieren oder beheben.


Linux
  1. So verwenden Sie BusyBox unter Linux

  2. Wie ich Cron unter Linux verwende

  3. So verwenden Sie FIND unter Linux

  4. So verwenden Sie den Su-Befehl unter Linux

  5. So verwenden Sie Google Drive unter Linux

So verwenden Sie den Linux-Bildschirm

So verwenden Sie du Command unter Linux

So verwenden Sie das Linux-Terminal in Android

So verwenden Sie den Befehl sysctl unter Linux

So verwenden Sie den Befehl zum Herunterfahren von Linux

So verwenden Sie grep unter Linux