Pengantar
Di beberapa distribusi Linux yang lebih baru, "init.d" atau "rsyslogd" telah digantikan oleh program yang disebut JournalCTL. Sebelumnya, log biasanya ditemukan di lokasi tertentu untuk setiap file log yang terpisah, daripada mudah ditemukan, dikelola, dan dimanipulasi. Systemd membuat file log ini lebih mudah diakses dengan memusatkannya, mencatat semua kernel dan proses pengguna dalam satu "jurnal." Journalctl adalah versi terbaru dari ini, yang membuatnya lebih mudah untuk mengelola file-file ini.
Dalam panduan ini, kami akan menjelaskan dasar-dasar journalctl serta ikhtisar singkat tentang penggunaan yang disarankan untuk program ini.
Prasyarat
Harus memiliki distribusi Linux dengan journalctl sebagai program manajemen log sistem, misalnya, CentOS 7. Jika Anda tidak memiliki server, pertimbangkan server pribadi virtual SSD super cepat dari Atlantic.Net.
Cara Mengelola Log Sistem dengan Journalctl
Mengatur Waktu Sistem
Sebelum memulai dengan hal lain, sangat disarankan untuk mengatur waktu sistem. Karena systemd mencatat sebagai jurnal biner, Anda dapat mencatat catatan Anda dalam waktu UTC atau lokal (server). Secara default, systemd akan menampilkan hasil dalam waktu setempat. Untuk menghindari kebingungan di kemudian hari, kami akan memeriksa untuk memastikan bahwa waktu diatur dengan benar. Systemd memiliki program bawaan yang disebut "timedatectl" untuk tujuan ini.
Pertama, periksa untuk memastikan zona waktu Anda tersedia di opsi zona:
timedatectl list-timezones
Ini menunjukkan semua zona waktu yang tersedia di server Anda. Setelah menemukan yang cocok dengan lokasi Anda (atau lokasi server Anda), atur:
sudo timedatectl set-timezone (zone)
Kemudian kami akan memeriksa untuk memastikan ini diterapkan dengan benar:
timedatectl status
Baris pertama akan menampilkan waktu yang tepat.
Kontrol Akses
usermod -a -G adm username
Ganti "nama pengguna" dengan nama pengguna. Pengguna ini akan menerima akses journalctl yang sama dengan pengguna root. Namun, kontrol ini hanya berfungsi jika penyimpanan persisten diaktifkan.
Tampilan log dasar
Ada beberapa perintah yang dapat dikeluarkan pada saat ini. Perintah dasar akan menampilkan output dari semua entri umum, menampilkan entri terlama terlebih dahulu:
journalctl
Meskipun ini akan memberi Anda semua file log, ini akan memberi Anda semua file log. Ini berarti Anda akan memiliki ratusan atau ribuan, atau lebih, baris log yang ditampilkan jika diberi kesempatan. Ini mirip dengan apa yang akan Anda lihat jika Anda mencari di “/var/log/messages/” di versi sebelumnya.
Sesi booting saat ini
Kami juga memiliki perintah yang akan menampilkan log yang hanya terjadi pada boot saat ini.
journalctl -b
Ini berarti bahwa informasi apa pun dari sesi boot sebelumnya tidak akan ditampilkan.
Sesi boot sebelumnya
Jika Anda perlu meninjau log untuk sesi boot sebelumnya, ada opsi untuk itu juga. Beberapa versi mengaktifkan pencatatan sesi boot sebelumnya secara default. Untuk memastikan bahwa milik Anda diatur untuk mencatat ini, kami sarankan untuk mengaktifkan fitur ini. Ini dapat dilakukan dengan membuat direktori
sudo mkdir -p /var/log/journal
atau dengan mengedit file konfigurasi jurnal secara langsung
sudo nano /etc/systemd/journald.conf
Dalam file, di bawah [Journal], atur opsi "Storage=" ke "persistent" sehingga persisten logging diaktifkan. Simpan dan keluar dari file ini dan pengaturan akan berlaku di masa mendatang.
Setelah ini disimpan, untuk melihat opsi yang tersedia bagi file boot untuk ditinjau,
journalctl --list-boots
Anda akan melihat baris untuk setiap sesi boot yang tersedia. ID offset adalah kolom pertama sedangkan ID boot adalah kolom kedua. Anda dapat menggunakan ID offset atau ID boot untuk mengeluarkan perintah:
journalctl -b (offset/boot ID)
Kerangka waktu tertentu
Sebagai gantinya, Anda mungkin ingin meninjau file log dengan kerangka waktu tertentu, yang mungkin mencakup beberapa sesi boot atau membatasinya ke jendela waktu tertentu dalam satu sesi boot. Batasan –sejak dan –sampai dapat ditempatkan yang hanya akan menampilkan peristiwa setelah dan sebelum log tertentu.
Untuk semua nilai waktu, format berikut harus digunakan:
YYYY-MM-DD HH:MM:SS
Jika Anda ingin melihat peristiwa yang telah terjadi sejak pukul 10:00 pada tanggal 5 Juli 2015, kita dapat melakukannya dengan perintah berikut:
journalctl --since “2015-07-05 10:00:00”
Harap diingat bahwa ini akan didasarkan pada waktu server atau UTC, tergantung pada apa yang Anda tetapkan dalam preferensi Anda sebelumnya dalam tutorial ini.
Jika tanggal dihilangkan, jurnal akan mengasumsikan tanggal hari ini. Jika waktu dihilangkan, tengah malam (00:00:00) akan diasumsikan. Anda juga tidak harus menyertakan bidang detik, dalam hal ini akan diasumsikan “00” detik.
Ada juga perintah ramah, seperti
journalctl --since yesterday
dan
journalctl --since 02:00 --until “3 hours ago”
Opsi Pemfilteran
Menurut Satuan
Fungsi paling berguna yang tersedia adalah pemfilteran unit. Pemfilteran -u memberikan opsi untuk hanya melihat "unit" tertentu yang memungkinkan Anda melihat hal-hal yang terjadi hanya dengan mengacu pada program atau sistem tertentu. Seperti biasa, Anda dapat menambahkan filter untuk kerangka waktu dengan ini.
journalctl -u nginx.service
atau
journalctl -u nginx.service --since yesterday
Berdasarkan Proses, Pengguna, atau ID Grup
Jika Anda telah meninjau informasi yang cukup untuk mengambil PID dari proses yang Anda cari, Anda dapat memfilternya sebagai gantinya. Ini dijalankan dengan _PID
journalctl _PID=4345
Menurut Lokasi
Pemfilteran berdasarkan lokasi jalur juga tersedia. Jika Anda memilih jalur yang dapat dieksekusi, journalctl akan menampilkan semua entri yang terkait dengan yang dapat dieksekusi itu. Jika, misalnya, Anda mencari log yang melibatkan bash,
journalctl /usr/bin/bash
Metode ini biasanya mencakup informasi yang lebih rinci tentang proses dan proses anak, jika tersedia. Namun, terkadang ini bukan pilihan.
Pesan Kernel
Pesan kernel biasanya terletak di keluaran dmesg, namun kita dapat menggunakan journalctl untuk mengambilnya juga. Ini akan dilakukan dengan filter -k atau -dmesg.
journalctl -k
Ini akan menampilkan pesan kernel yang telah terjadi selama sesi boot saat ini. Sekali lagi, ini selalu dapat dimodifikasi dengan opsi yang disebutkan sebelumnya. Jika Anda ingin meninjau pesan kernel dari sesi boot sebelumnya,
journalctl -k -b -1
Prioritas
Prioritas sering kali merupakan metode yang disukai untuk meninjau log. Journalctl dapat digunakan untuk menampilkan pesan hanya di atas tingkat prioritas tertentu. Berikut ini adalah tingkat prioritas:
0:muncul
1:waspada
2:kritik
3:salah
4:peringatan
5:pemberitahuan
6:info
7:debug
Anda dapat menggunakan nama tingkat prioritas atau nomor yang sesuai. Jika Anda hanya ingin melihat log prioritas peringatan atau lebih tinggi, Anda dapat mengeluarkan perintah
journalctl -p warning -b
atau
journalctl -p 4 -b
Bidang yang Ditentukan
Untuk melihat daftar jurnal yang muncul dalam bidang tertentu, gunakan pengubah -F
journal -F fieldname
di mana "nama bidang" diganti dengan bidang yang Anda cari. Anda juga memiliki opsi untuk hanya menampilkan entri log yang sesuai dengan kondisi tertentu
journalctl fieldname=value
Memotong atau Memperluas keluaran
Journalctl dapat dimodifikasi untuk mengecilkan atau memperluas tampilan data keluaran. Secara default, journalctl akan menampilkan seluruh entri, mengharuskan Anda untuk menggulir ke kanan dengan tombol panah. Kita dapat memotong output ini sebagai gantinya, yang akan menampilkan elipsis untuk informasi yang dihapus dengan opsi –tidak lengkap.
journalctl --no-full
Atau Anda dapat memberi tahu journalctl untuk menampilkan semua informasi, terlepas dari itu mengingat karakter tidak dapat dicetak. Ini dilakukan dengan pengubah -a.
journalctl -a
Ubah ke Output Standar
journalctl --no-pager
Format Keluaran
Jika Anda menggunakan editor teks pada entri jurnal, seperti yang telah kita bahas di atas, jurnal dapat dilihat dalam format lain sesuai kebutuhan. Ini dapat dilakukan dengan pengubah -o dan penentu format.
Misalnya, Anda dapat membaca jurnal di JSON dengan mengetik
journalctl -b -u nginx -o json
Anda dapat menggunakan yang berikut ini untuk opsi tampilan:
kucing — Menampilkan bidang pesan itu sendiri
ekspor — Format biner untuk mentransfer atau mencadangkan
json — JSON standar, satu entri per baris
json-cantik — Format JSON tetapi lebih mudah dibaca
json-sso — Format JSON dibungkus untuk membuat acara tambahan yang dikirim server kompatibel
pendek — Keluaran syslog default
short-iso — Output default yang menunjukkan cap waktu jam dinding ISO 8601
pendek-monoton — Output default dengan stempel waktu monoton
tepat pendek — Output default dengan stempel waktu mikrodetik
verbose — Menampilkan semua bidang jurnal untuk entri itu, termasuk yang disembunyikan
Pemantauan Proses Aktif
Journalctl meniru administrator mana yang menggunakan ekor untuk pemantauan. Ini dibangun ke journalctl yang memungkinkan akses ke fitur-fitur ini tanpa harus menyalurkan alat tambahan.
Menampilkan Log Terbaru
Opsi -n dapat digunakan untuk menampilkan sejumlah catatan tertentu. Tidak menyertakan nomor modifikasi akan menampilkan sepuluh (10) hasil, secara default.
journalctl -n
Sebagai gantinya, Anda dapat menentukan berapa banyak entri yang ingin Anda lihat
journalctl -n 20
Mengikuti Log
Pengubah -f dapat digunakan untuk mengikuti log yang sedang ditulis.
journalctl -f
Pemeliharaan Jurnal
Ada beberapa perintah yang dapat digunakan untuk membersihkan beberapa log lama demi ruang hard drive Anda.
Pertama, Anda dapat mengetahui seberapa banyak ruang yang digunakan oleh jurnal dengan menggunakan pengubah –disk-usage.
journalctl --disk-usage
Ada dua cara berbeda untuk membersihkannya. Yang pertama adalah mengecilkan jurnal berdasarkan ukurannya. Tindakan ini akan menghapus entri dari yang terlama ke yang terbaru hingga ruang disk yang diinginkan tercapai.
sudo journalctl --vacuum-size-2G
Cara alternatif untuk mengecilkan jurnal adalah ke tanggal tertentu. Opsi –vacuum-time menghapus entri apa pun hingga tanggal tertentu.
Untuk menyimpan entri hanya dari tahun lalu, Anda dapat mengetik
sudo journalctl --vacuum-time-1years
Membatasi Ukuran Jurnal
Anda memiliki kemampuan untuk membatasi jumlah ruang yang dapat digunakan jurnal.
nano /etc/systemd/journald.conf
Perubahan ini dapat dilakukan dengan salah satu modifikasi bidang berikut
SystemMaxUse= Ruang disk maksimum
SystemKeepFree= Jumlah ruang yang harus tetap tersedia
SystemMaxFileSize= Seberapa besar file jurnal individu sebelum dirotasi
RuntimeMaxUse= Ruang disk maksimum yang dapat digunakan dalam penyimpanan volatil (/run filesystem)
RuntimeKeepFree= Jumlah ruang yang harus tetap tersedia untuk orang lain dalam penyimpanan volatil (/run filesystem)
RuntimeMaxFilesize= Seberapa besar ukuran file jurnal individu dalam penyimpanan volatil (di dalam /run filesystem) sebelum dirotasi
Terima kasih telah mengikuti cara ini. Harap periksa kembali di sini untuk pembaruan lebih lanjut, dan untuk mempertimbangkan server hosting VPS yang memimpin pasar dari Atlantic.Net.