Perintah journalctl Linux: saring log layanan dan boot
Perintah journalctl membaca dan menyaring log sistem serta layanan yang tersimpan dalam journal systemd. Gunakan unit, boot, prioritas, dan rentang waktu untuk mempersempit penyelidikan tanpa menghapus log.
Journal adalah kumpulan catatan terstruktur yang dikumpulkan systemd-journald. Tanpa argumen, journalctl menampilkan entri yang dapat diakses, mulai dari yang paling lama. Hasil kueri dibatasi data yang tersedia dan hak akses pengguna; hasil kosong bukan bukti bahwa kejadian tidak pernah terjadi.
Sintaks dan persiapan
journalctl [OPSI] [FILTER]
OPSI dan FILTER adalah penanda. Periksa journalctl --version, journalctl --help, dan man journalctl pada sistem tujuan. Panduan ini membahas journal systemd; log yang hanya disimpan aplikasi di berkas lain tidak otomatis tercakup.
Pengguna biasa dapat memiliki akses terbatas ke journal sistem atau pengguna lain. Jika muncul peringatan akses, periksa akun dan kebijakan administrasi yang berlaku. Jangan mengubah izin atau menambahkan kelompok pengguna secara sembarangan agar hasil contoh terlihat sama.
Lihat error pada boot saat ini
journalctl -b -p err
Opsi -b tanpa nilai tambahan memilih boot saat ini. Opsi -p err memilih tingkat err dan tingkat yang lebih penting, yaitu crit, alert, dan emerg. Warning tidak termasuk. Ini adalah prioritas terstruktur, bukan pencarian kata error dalam pesan.
Jika penyebab belum terlihat, baca konteks dengan prioritas yang lebih luas atau tanpa filter prioritas. Pesan awal yang menjelaskan penyebab dapat berada pada tingkat info atau warning. Filter boot dan prioritas pada contoh berlaku bersama-sama.
Baca entri terbaru untuk satu layanan
journalctl -u sshd.service -n 100
Ganti sshd.service dengan unit sebenarnya; distribusi Anda mungkin menggunakan nama berbeda. Periksa nama dan keadaan layanan melalui panduan systemctl sebelum menyimpulkan bahwa unit tidak menghasilkan log.
Opsi -n 100 membatasi hingga 100 entri terbaru yang cocok, bukan selalu tepat 100 baris tampilan. Satu pesan dapat memiliki beberapa baris. Tanpa -b pada contoh ini, kueri tidak dibatasi hanya boot saat ini; tambahkan -b bila memang itu cakupan yang diperlukan.
Pager membantu menelusuri hasil; gunakan tombol navigasi dan q untuk keluar. Opsi --no-pager menampilkan langsung tanpa pager, tetapi tidak mengubah filter sumber datanya.
Ikuti log layanan yang baru masuk
journalctl -u sshd.service -f
Mode -f menampilkan entri terbaru lalu terus menambahkan entri yang masuk. Secara bawaan, mode ini diawali bagian akhir log, bukan hanya kejadian setelah perintah dijalankan. Hentikan dengan Ctrl+C setelah pengamatan selesai.
Jika ingin hanya entri baru, gunakan bentuk journalctl -u sshd.service -n 0 -f pada versi yang mendukungnya. Gunakan nama layanan yang benar. Tidak munculnya pesan baru dapat berarti belum ada entri yang cocok, bukan otomatis aplikasi macet.
Baca satu baris dalam konteks
journalctl -u sshd.service -n 3 --no-pager
Contoh ini memilih hingga tiga entri terbaru layanan tanpa pager. Berikut ilustrasi format satu baris; tanggal, host, nomor proses, dan pesan bukan hasil pengukuran mesin Anda:
Sep 28 09:00:00 web01 sshd[1234]: Server listening on 0.0.0.0 port 22.
Sep 28 09:00:00 adalah tampilan waktu, web01 adalah nama host, sshd[1234] menunjukkan identitas proses yang ditampilkan, dan bagian sesudah titik dua adalah pesan. Pesan ilustrasi menyatakan server mulai mendengarkan; itu sendiri belum membuktikan koneksi dari klien berhasil atau seluruh konfigurasi autentikasi benar.
Jangan mengharapkan tahun dan zona terlihat pada setiap format bawaan. Untuk laporan yang memerlukan konteks waktu lebih jelas, periksa journalctl -u sshd.service -n 3 -o short-full --no-pager. Pertahankan konteks boot dan zona ketika membandingkan mesin.
Batasi waktu dan periksa boot sebelumnya
Gunakan --since dan --until untuk rentang waktu. Misalnya, journalctl -u sshd.service --since '2026-09-28 09:00' --until '2026-09-28 09:10' memilih entri pada atau sesudah batas awal dan pada atau sebelum batas akhir. Tanggal tersebut hanya contoh dan harus diganti sesuai kejadian.
Bungkus nilai waktu yang memuat spasi dengan kutipan agar menjadi satu argumen shell. Perhatikan zona waktu dan koreksi jam; baca pesan sebelum serta sesudah kejadian untuk membedakan penyebab dari kesalahan lanjutan. Rincian filter serta format tersedia dalam manual resmi journalctl.
Untuk boot sebelumnya, periksa journalctl --list-boots dahulu, lalu gunakan journalctl -b -1 untuk boot sebelumnya yang tersimpan pada journal lokal. Jika mencari pesan kernel, tambahkan -k. Pemilihan boot tidak membuat kembali catatan yang sudah hilang.
Opsi penting
| Opsi | Kegunaan |
|---|---|
-u UNIT |
Memilih log unit yang ditentukan. |
-b |
Memilih boot saat ini tanpa nilai tambahan. |
-n N |
Membatasi entri terbaru yang cocok hingga N. |
-f |
Menampilkan bagian akhir lalu mengikuti entri baru. |
-p LEVEL |
Memilih tingkat yang ditentukan dan tingkat yang lebih penting. |
--since |
Memilih entri pada atau sesudah waktu yang diberikan sebagai argumen. |
Penyimpanan, hasil kosong, dan berbagi log
Journal dapat disimpan secara sementara di /run/log/journal atau secara persisten di /var/log/journal, bergantung konfigurasi dan lingkungan. Data sementara biasanya tidak bertahan setelah reboot. Pengaturan Storage dan batas penyimpanan dijelaskan dalam manual konfigurasi systemd-journald.
Jika boot lama tidak muncul, penyebabnya dapat berupa penyimpanan sementara, retensi, penghapusan, atau data yang tidak dapat diakses. Rotasi berkas saja tidak selalu berarti semua log lama telah dihapus: periksa data arsip yang masih tersedia. Jangan menjanjikan pemulihan bila catatan memang tidak tersimpan.
Saat hasil kosong, periksa nama unit, boot, rentang waktu, prioritas, hak akses, dan apakah aplikasi mengirim log ke journal. Longgarkan filter satu per satu agar terlihat pembatas yang menghilangkan hasil. Untuk perbedaan dengan ring buffer kernel, lihat panduan dmesg.
Log dapat memuat nama pengguna, path, alamat, atau token. Periksa dan samarkan nilai sensitif sebelum membagikannya tanpa menghilangkan konteks diagnosis. Jangan memakai --vacuum-* untuk kueri biasa karena opsi itu dapat menghapus log arsip; pemeriksaan di atas tidak memerlukannya.
FAQ
Mengapa log boot sebelumnya tidak terlihat?
Boot itu mungkin tidak disimpan secara persisten, sudah terkena retensi atau penghapusan, atau tidak dapat diakses. Mulailah dari --list-boots dan cakupan akses yang benar.
Apakah -n 100 selalu menghasilkan 100 baris?
Tidak. Batas itu berlaku pada entri yang cocok dan tersedia. Satu entri dapat memuat beberapa baris, sedangkan hasil dapat lebih sedikit karena filter atau data yang terbatas.




