Hai semuanya, apa kabar? Pada tulisan sebelumnya (https://zaidan.web.id/2025/10/03/mengelola-service-di-linux-dengan-systemd-dan-systemctl/ ) kita sudah tahu cara untuk start, stop, enable service menggunakan systemctl
. Tapi saat service berjalan, bagaimana kita bisa tahu kondisi dari service tersebut? Apakah service tersebut berjalan dengan lancar atau mengalami kendala?
Pada dasarnya, file log pada sistem Linux disimpan pada direktori /var/log
. Namun untuk mencari pesan eror pada direktori tersebut bisa jadi merepotkan karena bisa saja hal yang kita ingin cari “tercampur” dengan file log dari berbagai service.
Salah satu solusi yang dapat dilakukan untuk membantu mengatasi hal ini adalah menggunakan Journal
yang disediakan oleh systemd
. Journal
merupakan tool penting yang ada di RHEL (maupun distribusi Linux lainnya) yang dapat digunakan untuk membaca dan memfilter log sistem & service.
systemd Journal
systemd Journal
adalah suatu loggins system atau sistem pencatat log terppusat yang menyimpan semua log dari kernel, proses booting, dan semua systemd services.
Kelebihan Journal
:
- Terpusat. Semua service logs ada di satu tempat.
- Terstruktur. Kita bisa melakukan log filtering berdasarkan service unit, waktu, prioritas, dan juga PID.
- Cepat. Karena daftar log-nya terindeks. Mencari error spesifik bisa jadi lebih cepat.
Contoh Perintah journalctl
$ journalctl
Okt 07 23:35:57 localhost kernel: Linux version 6.12.0-55.37.1.el10_0.x86_64 (mockbuild@146818a4576740e793b31bf57d3523>
Okt 07 23:35:57 localhost kernel: Command line: BOOT_IMAGE=(hd0,gpt2)/vmlinuz-6.12.0-55.37.1.el10_0.x86_64 root=/dev/m>
Okt 07 23:35:57 localhost kernel: BIOS-provided physical RAM map:
Okt 07 23:35:57 localhost kernel: BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
Okt 07 23:35:57 localhost kernel: BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
Okt 07 23:35:57 localhost kernel: BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
Memantau Service Tertentu
Misalnya kita ingin melihat log dari aplikasi/service Apache.
$ journalctl -u httpd.service
Okt 07 23:36:19 localhost.localdomain systemd[1]: Starting httpd.service - The Apache HTTP Server...
Okt 07 23:36:19 localhost.localdomain (httpd)[1040]: httpd.service: Referenced but unset environment variable evaluate>
Okt 07 23:36:20 localhost.localdomain httpd[1040]: AH00558: httpd: Could not reliably determine the server's fully qua>
Okt 07 23:36:21 localhost.localdomain systemd[1]: Started httpd.service - The Apache HTTP Server.
Okt 07 23:36:21 localhost.localdomain httpd[1040]: Server configured, listening on: port 80
lines 1-5/5 (END)
Pemantauan Real Time
Fungsinya mirip dengan tail -f
, yang akan menampilkan log baru saat masuk ke sistem. Perintah ini berguna apabila kita ingin mencoba start service atau melakukan reload konfigurasi.
journalctl -u httpd.service -f
Melihat Log Sejak Boot Terakhir
Kita bisa gunakan perintah ini:
journalctl -b
Perintah ini bisa dibilang cukup krusial untuk mendiagnosis masalah yang terjadi saat server baru booting.
Filtering Berdasarkan Waktu
Untuk membatasi log hanya pada rentang waktu tertentu, kita bisa gunakan perintah berikut:
journalctl --since "1 hour ago"
journalctl --since today
journalctl --sinde "2025-10-06 14:00"
Testing
Kita akan coba gunakan Apache (httpd.service
) untuk mencari tahu mengapa service kita gagal di waktu tertentu.
Membuat Log Service Terbary
Kita akan coba untuk restart Apache agar log baru secara otomatis dibuat.
$ sudo systemctl restart httpd
Lihat Log Terbaru
Gunakan flag -u
untuk service dan -e
(end) untuk lompat ke akhir log.
journalctl -u httpd.service -e
...
Okt 07 23:36:21 localhost.localdomain systemd[1]: Started httpd.service - The Apache HTTP Server.
Okt 07 23:36:21 localhost.localdomain httpd[1040]: Server configured, listening on: port 80
Okt 07 23:51:15 localhost.localdomain systemd[1]: Stopping httpd.service - The Apache HTTP Server...
Okt 07 23:51:16 localhost.localdomain systemd[1]: httpd.service: Deactivated successfully.
Okt 07 23:51:16 localhost.localdomain systemd[1]: Stopped httpd.service - The Apache HTTP Server.
Okt 07 23:51:16 localhost.localdomain systemd[1]: Starting httpd.service - The Apache HTTP Server...
Okt 07 23:51:16 localhost.localdomain (httpd)[2409]: httpd.service: Referenced but unset environment variable evaluate>
Okt 07 23:51:16 localhost.localdomain httpd[2409]: AH00558: httpd: Could not reliably determine the server's fully qua>
Okt 07 23:51:16 localhost.localdomain httpd[2409]: Server configured, listening on: port 80
Okt 07 23:51:16 localhost.localdomain systemd[1]: Started httpd.service - The Apache HTTP Server.
lines 1-13/13 (END)
Kita bisa langsung menuju ke akhir log tanpa perlu scroll secara manual.
Filtering Menggunakan Prioritas
Log seringkali memiliki ribuan baris. Apabila kita hanya ingin melihat pesan error atau critical, kita bisa gunakan flag -p
(priority):
emerg
: Sistem tidak dapat digunakan (worst case).err
: Pesan galat.warning
: Pesan peringatan.info
: Informasi reguler.
Misalnya kita ingin melihat semua pesan error, kita bisa gunakan perintah:
journalctl -u httpd.service -p err
Apabila sistem normal dan tidak ada pesan error, tampilannya seperti berikut:
$ journalctl -u httpd.service -p err
-- No entries --
Penutup
journalctl
merupakan salah satu tool yang powerful yang ada pada RHEL ataupun distro Linux lainnya. Dengan tool ini, kita tidak hanya dapat melihat log, namun kita bisa menganalisis keadaan sistem dan service dengan lebih cepat dan terstruktur.
Untuk tulisan kali ini sampai di sini dulu ya. Sampai jumpa. Bye.