GNU/Linux >> Belajar Linux >  >> Linux

Cara Menggunakan journalctl untuk Menganalisis Log di Linux

Systemd adalah manajer sistem default di semua sistem operasi utama berbasis Linux. Ini menyediakan daemon journald yang menangani semua pesan yang dihasilkan oleh kernel dan layanan sistem. Daemon journald mengumpulkan data dari semua sumber yang tersedia dan menyimpannya dalam format biner untuk manipulasi yang mudah dan dinamis. Systemd menyediakan alat baris perintah yang disebut journalctl yang dapat digunakan untuk membaca dan menganalisis log jurnal. journalctl memungkinkan Anda menganalisis dan memantau log secara real-time.

Dalam panduan ini, kami akan menunjukkan cara menggunakan journalctl untuk menganalisis log di Linux.

Prasyarat

  • Server Ubuntu 20.04 baru di Atlantic.Net Cloud Platform
  • Kata sandi root yang dikonfigurasi di server Anda

Buat Server Cloud Atlantic.Net

Pertama, masuk ke Server Cloud Atlantic.Net Anda. Buat server baru, pilih Ubuntu 20.04 sebagai sistem operasi dengan setidaknya 2GB RAM. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.

Setelah Anda masuk ke server Ubuntu 20.04 Anda, jalankan perintah berikut untuk memperbarui sistem dasar Anda dengan paket terbaru yang tersedia.

apt-get update -y

Konfigurasikan Jurnal

Pertama, buat direktori untuk menyimpan log Jurnal:

mkdir /var/log/journal

Selanjutnya, atur kepemilikan yang tepat dengan perintah berikut:

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

Selanjutnya, edit file konfigurasi default journald /etc/systemd/journald.conf dan tentukan direktori baru Anda:

nano /etc/systemd/journald.conf

Ubah baris berikut:

Storage=persistent

Simpan dan tutup file, lalu mulai ulang layanan systemd-journald untuk menerapkan perubahan:

systemctl restart systemd-journald

Anda sekarang dapat memeriksa direktori /var/log/journal:

ls -l /var/log/journal

Anda akan melihat output berikut:

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

Gunakan journalctl untuk Menganalisis Log

Untuk mencetak semua log yang dikumpulkan oleh daemon journald, jalankan perintah journalctl:

journalctl

Keluaran:

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

Jika Anda membutuhkan lebih banyak keluaran verbose, jalankan perintah berikut:

journalctl -o verbose

Keluaran:

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

Untuk membuat daftar semua log boot yang tersedia, jalankan perintah berikut:

journalctl --list-boots

Keluaran:

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

Untuk menampilkan semua log sejak reboot terbaru, jalankan perintah berikut:

journalctl -b

Untuk menampilkan entri log terbaru, jalankan perintah berikut:

journalctl --lines 5

Keluaran:

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

Untuk mencetak log secara terus menerus, jalankan perintah berikut:

journalctl --follow

Keluaran:

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

Untuk menampilkan log terkait layanan tertentu seperti SSH dan Nginx, jalankan perintah berikut:

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

Untuk hanya menampilkan log terkait kernel, jalankan perintah berikut;

journalctl -k

Untuk menampilkan log yang berisi kesalahan atau kritis, jalankan perintah berikut:

journalctl -p err -b

Keluaran:

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

Untuk menampilkan semua log dari kemarin, jalankan perintah berikut:

journalctl --since yesterday

Untuk menampilkan semua log mulai dari pukul 06:00 dan berlanjut hingga satu jam yang lalu, jalankan perintah berikut:

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

Untuk menampilkan jumlah ruang yang digunakan oleh jurnal, jalankan perintah berikut:

journalctl --disk-usage

Keluaran:

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

Jika Anda ingin menyimpan semua data log hanya dari tahun lalu, jalankan perintah berikut:

journalctl --vacuum-time=1years

Untuk menampilkan hanya beberapa log terakhir, jalankan perintah berikut:

journalctl -xe

Kesimpulan

Dalam panduan di atas, Anda mempelajari cara menggunakan journalctl untuk membaca dan menganalisis log sistem yang berbeda. Sekarang Anda dapat mengidentifikasi atau memecahkan masalah terkait sistem atau aplikasi pada VPS Anda dari Atlantic.Net.


Linux
  1. Cara menggunakan BusyBox di Linux

  2. Bagaimana saya menggunakan cron di Linux

  3. Cara menggunakan FIND di Linux

  1. Cara Menggunakan Unzip di Linux

  2. Cara menggunakan Perintah Su di Linux

  3. Cara menggunakan Google Drive di Linux

  1. Bagaimana saya menggunakan pengaturan aksesibilitas Linux

  2. Cara menggunakan pkgsrc di Linux

  3. Bagaimana Cara Menghapus Journalctl?