Kelola Pesan Log di bawah SystemD Menggunakan JournalCTL [Panduan Komprehensif]
- 753
- 102
- Dr. Travis Bahringer
Systemd adalah sistem mutakhir dan manajer layanan untuk sistem Linux: Penggantian daemon init yang dimaksudkan untuk memulai proses secara paralel pada boot sistem. Sekarang didukung dalam sejumlah distribusi arus utama saat ini termasuk Fedora, Debian, Ubuntu, OpenSUSE, Arch, RHEL, Centos, dll.
Sebelumnya, kami menjelaskan kisah di balik 'init' dan 'systemd'; Di mana kami membahas apa dua daemon itu, mengapa 'init'Secara teknis perlu diganti dengan'Systemd'serta fitur utama SystemD.
Salah satu keuntungan utama SystemD dibandingkan sistem init umum lainnya adalah, dukungan untuk manajemen sistem dan proses pencatatan yang terpusat menggunakan jurnal. Di artikel ini, kami akan belajar cara mengelola dan melihat pesan log di bawah SystemD menggunakan Journalctl Perintah di Linux.
Penting: Sebelum bergerak lebih jauh dalam panduan ini, Anda mungkin ingin mempelajari cara mengelola layanan dan unit 'SystemD' menggunakan perintah 'Systemctl', dan juga membuat dan menjalankan unit layanan baru di SystemD menggunakan skrip shell di Linux. Namun, jika Anda baik -baik saja dengan semua hal di atas, lanjutkan membaca.
Mengkonfigurasi Journald untuk mengumpulkan pesan log di bawah SystemD
Journald adalah daemon yang mengumpulkan dan menulis entri jurnal dari seluruh sistem; Ini pada dasarnya adalah pesan boot, pesan dari kernel dan dari syslog atau berbagai aplikasi dan menyimpan semua pesan di lokasi pusat - file jurnal.
Anda dapat mengontrol perilaku Journald melalui file konfigurasi default: /etc/systemd/jurnald.conf yang dihasilkan pada waktu kompilasi. File ini berisi opsi yang nilainya Anda dapat Anda ubah untuk memenuhi persyaratan lingkungan setempat Anda.
Di bawah ini adalah sampel dari seperti apa file itu, dilihat menggunakan perintah CAT.
$ cat/etc/systemd/jurnald.confFile Konfigurasi Jurnal
# Lihat Journald.conf (5) untuk detailnya. [Journal] #Storage = Auto #Compress = Ya #Seal = Ya #SplitMode = UID #SyncInterValSec = 5m #RateLimItInterVal = 30S #RATeLIMITBURST = 1000 #SystemMaxuse = #SystemKeepFree = #SystemMaxFileSize = #SystemMaxFiles = 100 #runtimeMaxuse = #runtime = #RuntimeMaxFileSize = #runTimeMaxFiles = 100 #maxRetentionsec = #maxFilesec = 1Month #forwardToSyslog = Ya #ForwardTokmsg = Tidak #ForwardToconsole = Tidak #ForwardToWall = Ya #ttypath =/dev/konsol #MAXLEVELSOLE = DEBUG #MAXLEVERS = TTYPATH =/DEV/CONSOLE #MAXLEVELSOLE = DEBLVEUG #MAXLEVERSYSY Maxlevelconsole = info #maxlevelwall = emerg
Perhatikan bahwa berbagai paket menginstal dan menggunakan ekstrak konfigurasi di /usr/lib/systemd/*.conf.D/ dan jalankan konfigurasi waktu dapat ditemukan di /run/systemd/jurnald.conf.D/*.conf yang mungkin belum tentu Anda gunakan.
Aktifkan penyimpanan data jurnal di disk
Sejumlah distribusi Linux termasuk Ubuntu dan turunannya seperti Linux Mint tidak mengaktifkan penyimpanan pesan boot yang persisten di disk secara default.
Dimungkinkan untuk mengaktifkan ini dengan mengatur “Penyimpanan"Opsi untuk"gigih“Seperti yang ditunjukkan di bawah ini. Ini akan membuat /var/log/jurnal direktori dan semua file jurnal akan disimpan di bawahnya.
$ sudo vi/etc/systemd/jurnald.conf atau $ sudo nano/etc/systemd/jurnald.conf
[Jurnal] penyimpanan = persisten
Untuk pengaturan tambahan, temukan arti semua opsi yang seharusnya dikonfigurasi di bawah "[Jurnal]" bagian dengan mengetik.
$ man Journald.conf
Mengatur waktu sistem yang benar menggunakan perintah timedatectl
Untuk manajemen log yang andal di bawah SystemD menggunakan layanan Journald, pastikan bahwa pengaturan waktu termasuk zona waktu benar pada sistem.
Untuk melihat pengaturan tanggal dan waktu saat ini di sistem Anda, ketik.
$ timeDatectl atau $ timedatectl status waktu setempat: Kamis 2017-06-15 13:29:09 MAKAN Waktu Universal: Kamis 2017-06-15 10:29:09 Waktu RTC UTC: Kamis 2017-06-15 10:29:09 Zona Waktu: Afrika/Kampala (Eat, +0300) Waktu Jaringan Pada: Ya NTP Sinkronisasi: Ya RTC di TZ Lokal: Tidak
Untuk mengatur zona waktu yang benar dan mungkin waktu sistem, gunakan perintah di bawah ini.
$ sudo timedatectl set-timezone africa/Kampala $ sudo timedatectl set-time "13:50:00"
Melihat pesan log menggunakan perintah jurnalctl
Journalctl adalah utilitas yang digunakan untuk melihat konten SystemD Journal (yang ditulis oleh Journald Service).
Untuk menampilkan semua log yang dikumpulkan tanpa penyaringan, ketik.
$ jurnalctlLihat pesan log
-- Log dimulai pada Rabu 2017-06-14 21:56:43 Makan, berakhir di THU 2017-06-15 12:28:19 Makan 14 Juni 21:56:43 Tecmint Systemd-Journald [336]: Jurnal Runtime (/Run /Log/Jurnal 14 Jun 21:56:43 Tecmint Kernel: Menginisialisasi CGroup Subsys CPUSET 14 Juni 21:56:43 Tecmint Kernel: Menginisialisasi CGroup Subsys CPU 14 Jun 21:56:43 Tecmint Kernel: Inisialisasi CGROUP Subsys CPUACCT 14 Juni 21: 56:43 Kernel Tecmint: Linux Versi 4.4.0-21-Generic ([Email Dilindungi]) 14 Jun 21:56:43 Tecmint Kernel: Command Line: Boot_Image =/Boot/VMlinuz-4.4.0-21- 14 Jun 21:56:43 Tecmint Kernel: Kernel Didukung CPU: 14 Jun 21:56:43 Tecmint Kernel: Intel Asli Intel 14 Jun 21:56:43 Tecmint Kernel: AMD Authenticamd 14 Jun 21:56:43 Tecmint Kernel: Centaur Centaurhauls 14 Jun 21:56:43 Tecmint Kernel: x86/fpu: xstate_offset [2]: 576, xstate_sizes [2] 14 Jun 21:56:43 TecMint Kernel: x86/fpu: fitur XSave pendukung 0x01: 'x87: x86/fpu: fitur XSave Support 0x01:' x87: x86/fpu: fitur XSave 0x01: 'x86:' x86/fpu: xsave pendukung 0x01: ' Flo 14 Jun 21:56:43 Tecmint Kernel: X86/FPU: Fitur XSAVE Mendukung 0x02: 'SSE Reg Jun 14 21:56:43 Tecmint Kernel: X86/FPU: Fitur XSAVE Mendukung 0x04:' AVX Reg Jun 14 21:56 : 43 tecmint kernel: x86/fpu: diaktifkan fitur xstate 0x7, konteks Si 14 Jun 21:56:43 Tecmint Kernel: x86/fpu: menggunakan sakelar konteks fpu 'eager' FPU. 14 Jun 21:56:43 Tecmint Kernel: E820: BIOS-Dipadatkan Ram Fisik: 14 Jun 21:56:43 Tecmint Kernel: BIOS-E820: [MEM 0x0000000000000000-0x000000.000 Jun 21:56:43 Tecmint Kernel: Bios-- E820: [MEM 0x0000000000090000-0x00000000000 14 Jun 21:56:43 Kernel Tecmint: BIOS-E820: [MEM 0x00000000100000-0x0000001FF 14 JUNI 21:56:43 TECMINT Kernel: BIOS-E8201201:100000-HET2002222 : 43 Tecmint Kernel: BIOS-E820: [MEM 0x0000000020200000-0x00000000400
Lihat pesan log berdasarkan sepatu bot
Anda dapat menampilkan daftar nomor boot (relatif terhadap boot saat ini), ID mereka, dan cap waktu dari pesan pertama dan terakhir yang sesuai dengan boot dengan --Daftar-Boots
pilihan.
$ Journalctl--list-Boots -1 9FB590B48E1242F58C2579DEFDBBDDC9 THU 2017-06-15 16:43:36 EAT-THU 2017-06-15 16343434343434343622 15 1
Untuk melihat entri jurnal dari boot saat ini (nomor 0), gunakan -B
Beralih seperti ini (sama seperti output sampel di atas).
$ journalctl -b
dan untuk melihat jurnal dari boot sebelumnya, gunakan -1
penunjuk relatif dengan -B
opsi seperti di bawah ini.
$ journalctl -b -1
Atau, gunakan ID boot seperti ini.
$ jurnalctl -b 9fb590b48e1242f58c2579defdbbddc9
Memfilter pesan log berdasarkan waktu
Untuk menggunakan waktu dalam format waktu universal terkoordinasi (UTC), tambahkan --UTC
opsi sebagai berikut.
$ Journalctl --UTC
Untuk melihat semua entri sejak tanggal dan waktu tertentu, e.G. 15 Juni 2017 jam 8:15 pagi, ketik perintah ini.
$ Journalctl --Since "2017-06-15 08:15:00" $ Journalctl --Since Today $ Journalctl-Sedang kemarin
Melihat pesan log terbaru
Untuk melihat pesan log terbaru (10 secara default), gunakan -N
Bendera seperti yang ditunjukkan di bawah ini.
$ journalctl -n $ journalctl -n 20
Melihat pesan log yang dihasilkan oleh kernel
Untuk melihat hanya pesan kernel, mirip dengan output perintah DMESG, Anda dapat menggunakan -k
bendera.
$ jurnalctl -k $ journalctl -k -b $ journalctl -k -b 9fb590b48e1242f58c2579defdbbddc9
Melihat pesan log yang dihasilkan oleh unit
Untuk dapat melihat semua entri jurnal untuk unit tertentu, gunakan -u
beralih sebagai berikut.
$ journalctl -u apache2.melayani
Untuk nol ke boot saat ini, ketik perintah ini.
$ journalctl -b -u apache2.melayani
Untuk menampilkan log dari boot sebelumnya, gunakan ini.
$ journalctl -b -1 -u Apache2.melayani
Di bawah ini adalah beberapa perintah berguna lainnya:
$ journalctl -u apache2.Layanan $ journalctl -u Apache2.Layanan --SeCe Today $ journalctl -u Apache2.Layanan -U Nagios.Layanan --SECE Yesterday
Melihat pesan log yang dihasilkan oleh proses
Untuk melihat log yang dihasilkan oleh proses tertentu, tentukan PID seperti ini.
$ journalctl _pid = 19487 $ journalctl _pid = 19487 --SeCe Today $ journalctl _pid = 19487 -STINGHER YINTANG
Melihat pesan log yang dihasilkan oleh ID pengguna atau grup
Untuk melihat log yang dihasilkan oleh pengguna atau grup tertentu, tentukan ID pengguna atau grup seperti ini.
$ journalctl _uid = 1000 $ journalctl _uid = 1000 --SeCe Today $ journalctl _uid = 1000 -B -1 --Since hari ini
Melihat log yang dihasilkan oleh file
Untuk menampilkan semua log yang dihasilkan oleh file (mungkin yang dapat dieksekusi), seperti D-Bus Executable atau Bash Executable, cukup ketik.
$ journalctl/usr/bin/dbus-daemon $ journalctl/usr/bin/bash
Melihat pesan log berdasarkan prioritas
Anda juga dapat memfilter output berdasarkan prioritas pesan atau rentang prioritas menggunakan -P
bendera. Nilai -nilai yang mungkin adalah: 0 - Emerg, 1 - Peringatan, 2 - Crit, 3 - Err, 4 - Peringatan, 5 - Pemberitahuan, 6 - Info, 7 - Debug):
$ journalctl -p err
Untuk menentukan rentang, gunakan format di bawah ini (muncul untuk peringatan).
$ journalctl -p 1… 4 atau $ journalctl -p muncul… peringatan
Lihat pesan log secara real-time
Anda dapat menonton log saat ditulis dengan -F
opsi (mirip dengan ekor -f Kegunaan).
$ journalctl -f
Menangani format tampilan jurnal
Jika Anda ingin mengontrol pemformatan output entri jurnal, tambahkan -Hai
Bendera dan gunakan opsi-opsi ini: CAT, Ekspor, JSON, JSON-PRILTY, JSON-SSE, SINGKAT, SINGKAT, SHORT-MONOTONIC, SHORT-PRECISE DAN VERBOSE (Periksa Makna Opsi di Halaman Man:
Itu kucing Opsi menunjukkan pesan aktual dari setiap entri jurnal tanpa metadata (cap waktu dan sebagainya).
$ journalctl -b -u apache2.layanan -o kucing
Mengelola jurnal pada suatu sistem
Untuk memeriksa file jurnal untuk konsistensi internal, gunakan --memeriksa
pilihan. Jika semuanya baik -baik saja, output harus menunjukkan umpan.
$ journalctl --verify pass:/run/log/journal/2a5d5f96ef9147c0b35535562b32d0ff/sistem.Jurnal 491F68: Data yang Tidak Digunakan (entri_offset == 0) Pass:/Run/Log/Journal/2A5D5F96EF9147C0B35535562B32D0FF/[Email Dilindungi] 9866C3D4D.Jurnal Pass:/Run/Log/Journal/2A5D5F96EF9147C0B35535562B32D0FF/[Email Dilindungi] 5D8945A9E.Jurnal Pass:/Run/Log/Journal/2A5D5F96EF9147C0B35535562B32D0FF/[Email Dilindungi] 1BECAB02F.Jurnal Pass:/Run/Log/Journal/2A5D5F96EF9147C0B35535562B32D0FF/[Email Dilindungi] 01cfcedff.jurnal
Menghapus file jurnal lama
Anda juga dapat menampilkan penggunaan disk saat ini dari semua file jurnal dengan --Disk-Penggunaan
pilihan. Ini menunjukkan jumlah penggunaan disk dari semua file jurnal yang diarsipkan dan aktif:
$ journalctl--disk-penggunaan
Untuk menghapus file jurnal lama (diarsipkan) menjalankan perintah di bawah ini:
$ sudo journalctl --vacuum-size = 50m file #delete sampai ruang disk yang mereka gunakan jatuh di bawah ukuran yang ditentukan $ sudo journalctl --vacuum-time = 1 tahun file #delet $ sudo journalctl --vacuum-files = 4 file #delete sehingga tidak lebih dari jumlah file jurnal terpisah yang ditentukan tetap di lokasi penyimpanan
File jurnal berputar
Terakhir, Anda dapat menginstruksikan Journald untuk memutar file jurnal dengan --memutar
pilihan. Perhatikan bahwa arahan ini tidak kembali sampai operasi rotasi selesai:
$ sudo journalctl -rotate
Untuk panduan dan opsi penggunaan mendalam, lihat halaman Journalctl Man sebagai berikut.
$ man journalctl
Lihatlah beberapa artikel yang berguna.
- Mengelola Proses dan Layanan Startup Sistem (Sysvinit, SystemD dan Upstart)
- Petiti - Alat Analisis Log Sumber Terbuka untuk Sysadmin Linux
- Cara Mengatur dan Mengelola Rotasi Log Menggunakan Logrotate Di Linux
- LNAV - Tonton dan analisis log Apache dari terminal Linux
Itu saja untuk saat ini. Gunakan umpan balik dari bawah untuk mengajukan pertanyaan atau menambahkan pemikiran tentang topik ini.
- « Cara Menginstal Samba di Ubuntu untuk berbagi file di Windows
- Cara memperluas/mengurangi LVM (manajemen volume logis) di Linux - Bagian II »