Cara Melihat dan Membaca Log Sistem di Linux: 6 Perintah journalctl, dmesg, dan tail untuk Pemula
Ketika aplikasi tiba-tiba menutup sendiri atau layanan web tidak bisa diakses, banyak pemula langsung mencoba instal ulang atau restart berkali-kali, padahal Linux sebenarnya sudah mencatat apa yang terjadi. Catatan itu bernama log sistem, dan membacanya akan menghemat banyak waktu Anda.
Bayangkan log sebagai buku harian komputer: setiap kali layanan gagal atau perangkat bermasalah, sistem menulis baris baru lengkap dengan waktu dan keterangan singkatnya. Tugas Anda bukan membaca seluruh buku itu, melainkan tahu cara melompat ke bagian yang relevan.
Artikel ini membahas enam perintah yang paling sering dipakai pemula: journalctl untuk catatan layanan, dmesg untuk pesan kernel dan perangkat keras, serta tail dan grep untuk berkas log di folder /var/log. Contoh di sini memakai Ubuntu, tetapi perintahnya berlaku di sebagian besar distro modern berbasis systemd, seperti Debian dan Fedora.
1. journalctl -u: Melacak Service yang Gagal Start
Ketika sebuah service gagal berjalan, bertanyalah langsung kepada service itu lewat journalctl -u nama-service, yang menampilkan catatan dari satu service saja sehingga Anda tidak tenggelam dalam ribuan baris log lainnya.
Misalnya situs toko online Anda mendadak tidak bisa dibuka. Setelah systemctl status nginx menunjukkan keterangan gagal, telusuri penyebabnya seperti ini:
journalctl -u nginx -n 50
Tambahan -n 50 membatasi tampilan pada lima puluh baris terakhir. Bacalah dari bawah ke atas, karena baris paling akhir biasanya berisi pesan kesalahan yang paling dekat dengan kegagalan, seperti failed atau permission denied.
Contoh konkretnya: jika log menunjukkan service gagal karena port sudah dipakai program lain, Anda tidak perlu menginstal ulang apa pun. Cukup cari program pemakai port itu, hentikan, lalu jalankan kembali service-nya. Jika log menyebut berkas konfigurasi tidak ditemukan, Anda tahu masalahnya ada pada jalur berkas, bukan aplikasinya.
Gunakan nama service yang tepat, misalnya ssh atau mysql. Tambahkan -f bila ingin memantau log langsung sambil menjalankan ulang service-nya, tekan q untuk keluar, dan Ctrl+C untuk menghentikan mode pantau.
2. journalctl -p err dan –since: Menyaring Error Berdasarkan Waktu
Log sistem bisa sangat ramai: di server yang sibuk, ribuan baris baru muncul setiap jam, dan sebagian besar hanya informasi biasa. Karena itu, saringlah: tampilkan hanya pesan penting, dan hanya dari rentang waktu saat masalah terjadi.
Perintah journalctl -p err hanya menampilkan pesan dengan tingkat kesalahan atau yang lebih parah. Pesan informasi biasa disembunyikan, sehingga Anda bisa fokus pada hal yang mungkin merusak. Sementara itu, opsi --since membatasi hasil berdasarkan waktu, misalnya satu jam terakhir:
journalctl -p err --since "1 hour ago"
Kombinasi ini sangat membantu bila Anda tahu jam kejadiannya. Misalkan aplikasi kasir mogok sekitar pukul sepuluh pagi: cukup minta catatan error sejak pukul sembilan, lalu cari nama aplikasi itu di hasilnya.
Anda juga bisa menggabungkan filter waktu dengan nama service, misalnya journalctl -u mysql -p err --since today untuk error MySQL hari ini saja. Semakin spesifik filternya, semakin cepat akar masalah terlihat.
3. journalctl -b: Menyelidiki Masalah Booting dan Crash
Masalah yang lebih membingungkan adalah komputer restart sendiri, atau sesuatu tidak lagi berfungsi setelah dinyalakan ulang. Dalam situasi ini log sesi saat ini saja belum cukup, karena kejadian penting mungkin terjadi pada sesi sebelumnya. Di sinilah opsi -b berperan.
Perintah journalctl -b menampilkan log sejak komputer dinyalakan pada sesi saat ini. Untuk melihat sesi sebelumnya, tambahkan angka minus satu:
journalctl -b -1 -p err
Perintah di atas menampilkan error dari proses menyala sebelumnya. Jika komputer Anda mati mendadak lalu menyala lagi, baris-baris terakhir dari sesi lama itu sering kali menyimpan petunjuk terakhir sebelum kejadian, misalnya service yang gagal dimuat atau perangkat yang tidak dikenali saat booting.
Untuk melihat daftar sesi yang tersimpan, jalankan journalctl --list-boots, lalu pilih sesi tertentu dengan angkanya. Cara ini juga berguna setelah pembaruan sistem: bandingkan log sebelum dan sesudah update untuk menemukan service yang mulai gagal.
4. dmesg: Membaca Pesan Kernel dan Perangkat Keras
Jika masalahnya berkaitan dengan perangkat keras, seperti WiFi yang hilang atau USB yang tidak terbaca, journalctl saja kadang belum cukup. Kernel, inti sistem operasi yang berbicara langsung dengan perangkat keras, menyimpan pesannya sendiri, dan perintah untuk membacanya adalah dmesg.
Secara bawaan, dmesg menampilkan pesan dengan stempel waktu dalam detik sejak komputer menyala, yang sulit dibaca manusia. Tambahkan opsi -T agar waktunya tampil dalam format tanggal dan jam biasa:
dmesg -T | tail -50
Perintah ini menampilkan lima puluh pesan kernel terbaru. Cari baris yang menyebut perangkat Anda, misalnya wlan untuk WiFi, usb untuk perangkat USB, atau sd dan nvme untuk penyimpanan.
Contoh nyatanya: flashdisk tidak muncul di file manager. Colokkan kembali, lalu jalankan dmesg -T | tail -20. Jika kernel mencatat perangkat terdeteksi tetapi gagal dipasang, masalahnya mungkin pada format atau izinnya. Jika tidak ada catatan sama sekali, barulah port USB atau flashdisk itu patut dicurigai.
5. tail -f: Memantau Log Secara Langsung Saat Masalah Terjadi
Terkadang cara terbaik memahami masalah adalah menyaksikannya saat terjadi. Perintah tail -f mengintip ujung berkas log dan menampilkan baris baru secara langsung; huruf f berarti follow, alias mengikuti.
Berkas log tradisional di Ubuntu tersimpan di folder /var/log, dan salah satu yang paling umum adalah /var/log/syslog, yang menampung pesan umum sistem. Untuk memantaunya, jalankan:
tail -f /var/log/syslog
Terminal akan diam menunggu sampai ada kejadian baru. Pada momen inilah Anda memicu masalahnya: buka aplikasi yang sering crash atau jalankan ulang service yang bermasalah. Baris baru yang muncul saat itu juga adalah jejak langsung dari kejadian tersebut.
Teknik ini berguna bagi pemilik usaha yang mengelola server web sendiri. Saat situs dilaporkan tidak bisa diakses, buka tail -f /var/log/nginx/error.log di satu terminal, lalu minta rekan membuka situs itu dan lihat pesan error yang muncul pada saat yang sama.
6. grep dan Berkas di /var/log: Mencari Kata Kunci di Tumpukan Log
Perintah terakhir berguna saat Anda sudah tahu kata yang dicari, tetapi tidak tahu di baris mana kata itu bersembunyi. Perintah grep memindai berkas log dan hanya menampilkan baris yang mengandung kata kunci itu.
Misalkan Anda curiga ada yang mencoba masuk ke server melalui SSH tanpa izin. Berkas /var/log/auth.log mencatat semua upaya login, dan perintah berikut menampilkan upaya yang gagal:
grep "Failed password" /var/log/auth.log
Anda juga bisa mencari kata yang lebih umum, misalnya error di log sistem, atau menggabungkan grep dengan tail agar hanya seratus baris terakhir yang dipindai: tail -n 100 /var/log/syslog | grep -i error. Opsi -i membuat pencarian tidak peduli huruf besar atau kecil, sehingga Error dan error sama-sama tertangkap.
Untuk mengenali isi folder log, jalankan ls /var/log. Berkas penting yang patut dikenal adalah syslog untuk pesan umum, auth.log untuk login dan sudo, kern.log untuk pesan kernel, dan dpkg.log untuk riwayat instalasi paket. Sebagian berkas hanya bisa dibaca dengan sudo, jadi tambahkan sudo bila Anda mendapat pesan akses ditolak.
Kesimpulan: Membaca log sistem di Linux tidak serumit kesannya. Mulailah dari journalctl -u saat sebuah service bermasalah, saring dengan tingkat error dan rentang waktu, periksa sesi booting sebelumnya bila komputer sempat crash, gunakan dmesg untuk urusan perangkat keras, pantau dengan tail -f saat masalah sedang terjadi, dan andalkan grep untuk mencari kata kunci di berkas /var/log. Enam langkah ini saja sudah cukup untuk menangani sebagian besar masalah sehari-hari tanpa menebak-nebak.
Jadikan memeriksa log sebagai kebiasaan pertama setiap kali ada yang tidak beres, sebelum mengubah pengaturan atau menginstal ulang. Catat jam kejadian, nama service, dan pesan error persisnya, karena tiga informasi itu sangat membantu bila Anda perlu bertanya di forum atau meminta bantuan teknisi.