Chapter-8 : Mengelola Journal dan Log Sistem di Proxmox VE – Panduan Lengkap journalctl

Pendahuluan
Setiap kejadian di server Proxmox VE Anda—mulai dari booting kernel, layanan yang mulai berjalan, hingga error pada mesin virtual—semuanya tercatat dalam sebuah sistem pencatatan terpadu yang disebut systemd-journald. Journal ini adalah sumber kebenaran pertama yang harus Anda periksa ketika terjadi masalah. Tidak seperti file log teks tradisional yang tersebar di /var/log/, journal menyimpan semua log dalam format biner yang terstruktur, memungkinkan pencarian dan penyaringan yang sangat cepat dan presisi.

Artikel ini akan memandu Anda menguasai alat journalctl, dari perintah dasar hingga teknik penyaringan tingkat lanjut yang spesifik untuk lingkungan Proxmox VE. Dengan menguasai journal, Anda dapat mendiagnosis masalah jaringan, kegagalan layanan, atau perilaku aneh pada kluster dengan jauh lebih efisien.

Memahami Systemd Journal

Systemd-journald adalah layanan yang mengumpulkan log dari berbagai sumber: kernel (melalui dmesg), output standar dan error dari layanan systemd, pesan syslog, dan bahkan log boot awal. Semua data ini disimpan dalam file biner di /var/log/journal/.

Keunggulan Journal dibandingkan File Log Teks Tradisional:

  1. Terindeks dan Terstruktur: Setiap entri log memiliki metadata seperti timestamp, hostname, PID, UID, dan prioritas. Anda bisa mencari log berdasarkan field-field ini secara instan.
  2. Satu Titik Akses: Anda tidak perlu mencari di /var/log/syslog/var/log/messages, atau /var/log/kern.log. Semua ada di journal.
  3. Tahan terhadap Kerusakan: Format biner journal dirancang agar tetap bisa dibaca meskipun terjadi crash sistem.
  4. Rotasi Otomatis: Journal dikelola secara otomatis berdasarkan ukuran atau waktu, tanpa perlu konfigurasi logrotate yang rumit.

Perintah Dasar journalctl

journalctl adalah alat CLI untuk mengakses dan memanipulasi journal. Berikut adalah perintah-perintah fundamental yang wajib Anda kuasai.

1. Melihat Semua Log
journalctl

Ini akan menampilkan semua log dari yang terlama hingga terbaru. Anda bisa menggulir dengan tombol panah, Page Up/Down, dan keluar dengan q. Sangat banyak, jadi jarang digunakan tanpa filter.

2. Melihat Log Boot Terkini
journalctl -b

Hanya menampilkan log sejak booting saat ini. Ini sangat berguna untuk memeriksa apa yang terjadi sejak server terakhir dinyalakan.

3. Melihat Log Boot Sebelumnya
journalctl -b -1

Berguna jika server crash dan reboot, Anda ingin melihat log sebelum crash. Gunakan -b -2 untuk boot sebelumnya lagi.

4. Mengikuti Log Secara Real-time (Seperti tail -f)
journalctl -f

Menampilkan log terbaru dan terus mengikuti penambahan log baru secara langsung. Tekan Ctrl+C untuk berhenti.

5. Melihat Log Kernel (Setara dmesg)
journalctl -k

Atau dengan opsi:

journalctl --dmesg

Menampilkan pesan dari kernel Linux, sangat berguna untuk debugging hardware atau driver.

Teknik Penyaringan (Filtering) Tingkat Lanjut

Kekuatan sejati journalctl terletak pada kemampuannya menyaring log berdasarkan berbagai kriteria.

1. Berdasarkan Prioritas (Severity)

Log memiliki level prioritas: emerg (0, paling darurat), alert (1), crit (2), err (3), warning (4), notice (5), info (6), debug (7).
Untuk melihat hanya error dan yang lebih parah:

journalctl -p err

Atau range prioritas, misal dari warning hingga emerg:

journalctl -p warning..emerg
2. Berdasarkan Unit Layanan (Systemd Unit)

Ini adalah filter paling berguna untuk debugging Proxmox VE. Setiap layanan Proxmox berjalan sebagai unit systemd.

  • Log layanan pvedaemon (backend yang menangani operasi VM/CT):
journalctl -u pvedaemon.service
  • Log layanan pveproxy (frontend antarmuka web):
journalctl -u pveproxy.service
  • Log layanan corosync (komunikasi kluster):
journalctl -u corosync.service
  • Log layanan pve-cluster (manajemen file sistem kluster):
3. Berdasarkan Waktu

Sangat membantu untuk melihat log di sekitar waktu kejadian.

  • Log sejak 1 jam terakhir:
journalctl --since "1 hour ago"
  • Log antara dua waktu tertentu:
journalctl --since "2025-01-15 10:00:00" --until "2025-01-15 11:00:00"
  • Log sejak kemarin:
journalctl --since yesterday
4. Kombinasi Filter

Anda bisa menggabungkan banyak filter sekaligus.
Contoh: melihat log error dari layanan pvedaemon sejak 30 menit terakhir.

journalctl -u pvedaemon.service -p err --since "30 min ago"

Log Spesifik Proxmox VE yang Penting

Selain unit systemd, Proxmox VE memiliki log tambahan yang bisa Anda pantau:

  • Log Tugas Kluster: Terletak di /var/log/pve/tasks/. Direktori ini berisi file log untuk setiap tugas yang dijalankan (migrasi, backup, clone). Setiap file diberi nama berdasarkan UPID (Unique Process Identifier). Anda bisa melihatnya dengan cat atau lewat GUI di panel Task History.
  • Log Sinkronisasi Kluster: /var/log/pve/sync.log mencatat proses sinkronisasi file konfigurasi antar node.
  • Log Firewall Proxmox: Jika Anda menggunakan firewall Proxmox, log-nya ada di journal dengan unit pve-firewall.service.

Manajemen Ukuran dan Retensi Journal

Secara default, journal disimpan di /var/log/journal/ dan ukurannya dibatasi agar tidak memenuhi disk.

Melihat Penggunaan Disk Journal:

journalctl --disk-usage

Mengatur Batas Ukuran Maksimum:
Edit file /etc/systemd/journald.conf. Cari dan atur variabel berikut:

SystemMaxUse=500M

Setelah itu, restart layanan journald:

systemctl restart systemd-journald

Membersihkan Log Lama Secara Manual:

  • Hapus semua log kecuali 2 hari terakhir:
journalctl --vacuum-time=2d
  • Hapus log hingga ukuran journal turun di bawah 200MB:
journalctl --vacuum-size=200M

Visual: Alur Pencarian Log untuk Troubleshooting

Diagram ini menunjukkan pendekatan sistematis saat mencari penyebab masalah menggunakan journalctl.

🔍 Strategi Troubleshooting dengan `journalctl`

MULAI
Temukan Masalah
VM tidak bisa start? Jaringan mati? GUI lambat? Tentukan gejalanya dan perkirakan layanan terkait.
⬇️
1
Tentukan Cakupan Waktu
Gunakan -b untuk boot ini, atau --since "30 min ago" untuk waktu spesifik.
⬇️
2
Filter Berdasarkan Layanan
Gunakan -u pvedaemon.service, -u pveproxy.service, dll.
⬇️
3
Tingkatkan Detail atau Saring Prioritas
Gunakan -p err untuk hanya error, atau -o verbose untuk detail penuh.
⬇️
4
Analisis dan Tindak Lanjut
Baca pesan error. Cari di dokumentasi atau forum Proxmox. Jika perlu, ekspor log untuk analisis lebih lanjut.

Contoh Perintah: journalctl -u pvedaemon.service -b -p err

Menampilkan error dari pvedaemon sejak boot terakhir.

Kesimpulan
journalctl adalah pisau Swiss Army untuk administrasi sistem Proxmox VE. Dengan membiasakan diri menggunakan filter berdasarkan unit layanan, waktu, dan prioritas, Anda dapat mempersempit penyebab masalah dalam hitungan detik. Jadikan journal sebagai teman pertama Anda setiap kali ada sesuatu yang tidak beres pada sistem.

Leave a Reply

Your email address will not be published. Required fields are marked *