Urus Mesej Log di bawah Systemd menggunakan JournalCtl [Panduan Komprehensif]
- 4970
- 464
- Dale Harris II
Sistemd adalah sistem canggih dan pengurus perkhidmatan untuk sistem linux: penggantian daemon init bertujuan untuk memulakan proses selari di boot sistem. Ia kini disokong dalam beberapa pengedaran arus perdana semasa termasuk Fedora, Debian, Ubuntu, OpenSuse, Arch, Rhel, Centos, dll.
Terdahulu, kami menjelaskan cerita di sebalik 'init' dan 'systemd'; Di mana kita membincangkan apa yang kedua -dua daemon itu, mengapa 'di dalamnya'secara teknikal diperlukan untuk digantikan dengan'sistemd'Serta ciri utama Systemd.
Salah satu kelebihan utama sistem atas sistem init yang biasa adalah, sokongan untuk pengurusan terpusat sistem dan proses pembalakan menggunakan jurnal. Dalam artikel ini, kita akan belajar bagaimana untuk mengurus dan melihat mesej log di bawah sistem yang menggunakan Journalctl Perintah di Linux.
Penting: Sebelum bergerak lebih jauh dalam panduan ini, anda mungkin ingin belajar bagaimana menguruskan perkhidmatan dan unit 'Systemd' menggunakan perintah 'SystemCtl', dan juga membuat dan menjalankan unit perkhidmatan baru dalam SystemD menggunakan skrip shell di Linux. Namun, jika anda baik -baik saja dengan semua perkara di atas, teruskan membaca.
Mengkonfigurasi jurnal untuk mengumpul mesej log di bawah sistemd
jurnal adalah daemon yang mengumpulkan dan menulis entri jurnal dari seluruh sistem; Ini pada dasarnya adalah mesej boot, mesej dari kernel dan dari syslog atau pelbagai aplikasi dan ia menyimpan semua mesej di lokasi pusat - fail jurnal.
Anda boleh mengawal tingkah laku jurnal melalui fail konfigurasi lalai: /etc/systemd/jurnal.Conf yang dihasilkan pada masa penyusunan. Fail ini mengandungi pilihan yang nilai -nilainya mungkin berubah menjadi keperluan persekitaran tempatan anda.
Berikut adalah contoh seperti yang kelihatan seperti fail, dilihat menggunakan perintah kucing.
$ kucing/etc/systemd/jurnal.ConfFail konfigurasi jurnal
# Lihat Journald.Conf (5) Untuk maklumat lanjut. [Jurnal] #penyimpanan = auto #compress = ya #meterai = ya #splitmode = uid #syncIntervalsec = 5m #ratelimitinterval = 30s #ratelimitburst = 1000 #SystemMaxuse = #SystemKeepFree = #SystemMaxFileSize = #SystemMaxFiles = 100 #Runtimaxuse = 100 #RuntimemaxFileSize = #runtimemaxFiles = 100 #maxRetentionsec = #maxFilesec = 1month #forwardTosySlog = yes #forwardTokmsg = no #forwardToConsole = no #forwardToWall = yes #ttypath =/dev/console #maxLevels = debug #maks. MaxLevelConsole = info #maxLevelWall = muncul
Perhatikan bahawa pelbagai pakej memasang dan menggunakan ekstrak konfigurasi di /usr/lib/systemd/*.Conf.d/ dan menjalankan konfigurasi masa boleh didapati di /Run/Systemd/Journald.Conf.d/*.Conf yang tidak semestinya anda gunakan.
Dayakan penyimpanan data jurnal pada cakera
Sebilangan pengagihan Linux termasuk Ubuntu dan derivatif seperti Linux Mint tidak membolehkan penyimpanan mesej boot yang berterusan pada cakera secara lalai.
Adalah mungkin untuk membolehkan ini dengan menetapkan "Penyimpanan"Pilihan untuk"berterusan" seperti yang ditunjukkan di bawah. Ini akan mencipta /var/log/jurnal direktori dan semua fail jurnal akan disimpan di bawahnya.
$ sudo vi/etc/systemd/jurnal.conf atau $ sudo nano/etc/systemd/jurnal.Conf
[Jurnal] Penyimpanan = berterusan
Untuk tetapan tambahan, cari makna semua pilihan yang sepatutnya dikonfigurasikan di bawah "[Jurnal]" seksyen dengan menaip.
$ man Journald.Conf
Menetapkan masa sistem yang betul menggunakan arahan timedatectl
Untuk pengurusan log yang boleh dipercayai di bawah Systemd menggunakan perkhidmatan jurnal, pastikan tetapan masa termasuk zon waktu betul pada sistem.
Untuk melihat tetapan tarikh dan masa semasa pada sistem anda, taipkan.
$ timedatectl atau $ timedatectl Status Tempoh Masa Tempatan: Thu 2017-06-15 13:29:09 Makan Waktu Universal: Thu 2017-06-15 10:29:09 UTC RTC Masa: Thu 2017-06-15 10:29:09 Zon Waktu: Afrika/Kampala (EAT, +0300) Masa Rangkaian di: Ya NTP Disegerakkan: Ya RTC di TZ Tempatan: Tidak
Untuk menetapkan zon waktu yang betul dan mungkin masa sistem, gunakan arahan di bawah.
$ sudo timedatectl set-timezone africa/kampala $ sudo timedatectl set-time "13:50:00"
Melihat Mesej Log Menggunakan Perintah JournalCtl
Journalctl adalah utiliti yang digunakan untuk melihat kandungan Jurnal Systemd (yang ditulis oleh Journald Service).
Untuk menunjukkan semua balak yang dikumpulkan tanpa penapisan, taipkan.
$ JournalctlLihat mesej log
-- Log bermula pada Rabu 2017-06-14 21:56:43 Makan, berakhir di Thu 2017-06-15 12:28:19 Makan 14 Jun 21:56:43 Tecmint Systemd-Journald [336]: Jurnal Runtime (/Run /log/jurnal Jun 14 21:56:43 TECMINT Kernel: Inisialisasi cgroup subsys cpuset Jun 14 21:56:43 tecmint kernel: inisialisasi cgroup subsys cpu Jun 14 21:56:43 tecmint kernel: inisiasi cgroup subsy cpuacct cpuacct cpuacct cpuacct cpuacct 56:43 Tecmint Kernel: Linux Versi 4.4.0-21-GENERIC ([E-mel dilindungi]) 14 Jun 21:56:43 TECMINT kernel: baris arahan: boot_image =/boot/vmlinuz-4.4.0-21- 14 Jun 21:56:43 Tecmint Kernel: Kernel disokong CPU: 14 Jun 21:56:43 TECMINT Kernel: Intel Genuineintel 14 Jun Kernel: Centaur Centaurhauls 14 Jun 21:56:43 TECMINT Kernel: x86/FPU: xstate_offset [2]: 576, xstate_sizes [2] Jun 14 21:56:43 Tecmint kernel: x86/ Flo Jun 14 21:56:43 Tecmint Kernel: x86/FPU: Menyokong Ciri XSAVE 0x02: 'SSE Reg Jun 14 21:56:43 Tecmint Kernel: X86/FPU: Menyokong Ciri XSAVE 0x04:' AVX Reg Jun 14 21:56 : 43 tecmint kernel: x86/fpu: enabled xstate ciri -ciri 0x7, konteks Si Jun 14 21:56:43 tecmint kernel: x86/fpu: menggunakan suis konteks 'bersemangat'. 14 Jun 21:56:43 TECMINT Kernel: E820: Peta Ram Fizikal yang disediakan Bios: 14 Jun 21:56:43 Tecmint Kernel: Bios-E820: [Mem 0x000000000000000000-0x0000000000 E820: [Mem 0x000000000000090000-0x000000000000 Jun 14 21:56:43 Tecmint Kernel: Bios-E820: [Mem 0x000000000000100000-0x00000000001ff 14 Jun 14 21:56:43 : 43 TECMINT Kernel: BIOS-E820: [MEM 0x0000000020200000-0x0000000000400
Lihat mesej log berdasarkan but
Anda boleh memaparkan senarai nombor boot (berbanding dengan boot semasa), ID mereka, dan cap waktu mesej pertama dan terakhir yang sepadan dengan boot dengan --Senarai-boot
pilihan.
$ Journalctl-list-boots -1 9FB590B48E1242F58C2579DEFDBBDDC9 THU 2017-06-15 16:43:36 EAT-THU 2017-06-15 1 0 464AE35C6E264A0879999996-THRE0- EAT0- EAST- EAT0- EAST- EAT0- EAST- EAST- EAT0- EAST- EAT0- EAST- EAT0- EAST- EAT0- EAST- EAT0- EAST- EAT0- EAST- EAT0- EAST- EAT0- EAT01464799999999999996 15 1
Untuk melihat penyertaan jurnal dari boot semasa (nombor 0), gunakan -b
Tukar seperti ini (sama dengan output sampel di atas).
$ Journalctl -B
Dan untuk melihat jurnal dari boot sebelumnya, gunakan -1
penunjuk relatif dengan -b
Pilihan seperti di bawah.
$ Journalctl -b -1
Sebagai alternatif, gunakan ID boot seperti ini.
$ Journalctl -B 9FB590B48E1242F58C2579DEFDBBDDC9
Penapisan mesej log berdasarkan masa
Untuk menggunakan masa dalam format Universal Time (UTC) yang diselaraskan, tambahkan --UTC
Pilihan seperti berikut.
$ Journalctl --Utc
Untuk melihat semua penyertaan sejak tarikh dan masa tertentu, e.g. 15 Jun, 2017 jam 8:15 pagi, taipkan arahan ini.
$ Journalctl--Since "2017-06-15 08:15:00" $ Journalctl-Since Today $ Journalctl --Enty semalam
Melihat mesej log terkini
Untuk melihat mesej log terkini (10 secara lalai), gunakan -n
Bendera seperti yang ditunjukkan di bawah.
$ Journalctl -n $ Journalctl -n 20
Melihat mesej log yang dihasilkan oleh kernel
Untuk melihat hanya mesej kernel, serupa dengan output arahan DMESG, anda boleh menggunakan -k
bendera.
$ Journalctl -K $ Journalctl -K -B $ Journalctl -K -B 9FB590B48E1242F58C2579Defdbdddc9
Melihat mesej log yang dihasilkan oleh unit
Untuk dapat melihat semua entri jurnal untuk unit tertentu, gunakan -u
Tukar seperti berikut.
$ Journalctl -u Apache2.perkhidmatan
Hingga sifar ke boot semasa, taipkan arahan ini.
$ Journalctl -b -u Apache2.perkhidmatan
Untuk menunjukkan log dari boot sebelumnya, gunakan ini.
$ Journalctl -B -1 -U Apache2.perkhidmatan
Berikut adalah beberapa arahan berguna lain:
$ Journalctl -u Apache2.Perkhidmatan $ Journalctl -u Apache2.Perkhidmatan -jadi hari ini $ Journalctl -u Apache2.Perkhidmatan -u Nagios.Perkhidmatan -semalam semalam
Melihat mesej log yang dihasilkan oleh proses
Untuk melihat balak yang dihasilkan oleh proses tertentu, tentukan PID seperti ini.
$ Journalctl _pid = 19487 $ Journalctl _pid = 19487 -Since Today $ Journalctl _PID = 19487 - -SELAMAT SEMUA
Melihat mesej log yang dihasilkan oleh pengguna atau id kumpulan
Untuk melihat log yang dihasilkan oleh pengguna atau kumpulan tertentu, tentukan pengguna atau id kumpulan seperti ini.
$ Journalctl _uid = 1000 $ Journalctl _uid = 1000 --End Today $ Journalctl _uid = 1000 -b -1 --di hari ini
Melihat log yang dihasilkan oleh fail
Untuk menunjukkan semua balak yang dihasilkan oleh fail (mungkin boleh dilaksanakan), seperti D-Bus Executable atau Bash Executable, hanya taipkan.
$ Journalctl/usr/bin/dbus-daemon $ Journalctl/usr/bin/bash
Melihat mesej log dengan keutamaan
Anda juga boleh menapis output berdasarkan keutamaan mesej atau julat keutamaan menggunakan -p
bendera. Nilai yang mungkin adalah: 0 - muncul, 1 - Alert, 2 - Crit, 3 - Err, 4 - Amaran, 5 - Notis, 6 - Info, 7 - Debug):
$ jurnalctl -p err
Untuk menentukan julat, gunakan format di bawah (muncul untuk memberi amaran).
$ Journalctl -p 1 ... 4 atau $ Journalctl -p muncul ... Amaran
Lihat mesej log dalam masa nyata
Anda boleh praktikal menonton balak kerana mereka ditulis dengan -f
pilihan (serupa dengan ekor -f fungsi).
$ Journalctl -f
Mengendalikan pemformatan paparan jurnal
Sekiranya anda ingin mengawal pemformatan output penyertaan jurnal, tambahkan -o
Bendera dan gunakan pilihan ini: Cat, Eksport, JSON, JSON-PRETTY, JSON-SSE, Pendek, Pendek-ISO, pendek monotonik, pendek dan verbose (periksa makna pilihan dalam halaman lelaki:
The kucing Pilihan menunjukkan mesej sebenar setiap entri jurnal tanpa sebarang metadata (timestamp dan sebagainya).
$ Journalctl -b -u Apache2.Perkhidmatan -O kucing
Menguruskan jurnal pada sistem
Untuk memeriksa fail jurnal untuk konsistensi dalaman, gunakan --Sahkan
pilihan. Sekiranya semuanya baik, output harus menunjukkan lulus.
$ JournalCtl --Verify Pass:/Run/Log/Journal/2a5d5f96ef9147c0b35535562b32d0ff/System.Jurnal 491F68: Data yang tidak digunakan (entry_offset == 0) Lulus:/lari/log/jurnal/2A5D5F96EF9147C0B35535562B32D0FF/[E -mel dilindungi] 9866C3D4D.Jurnal Pas:/lari/log/jurnal/2A5D5F96EF9147C0B35535562B32D0FF/[E -mel dilindungi] 5D8945A9E.Jurnal Pas:/lari/log/jurnal/2a5d5f96ef9147c0b35535562b32d0ff/[dilindungi e -mel] 1becab02f.Jurnal Pas:/lari/log/jurnal/2A5D5F96EF9147C0B35535562B32D0FF/[E -mel dilindungi] 01CFCEDFF.jurnal
Memadam fail jurnal lama
Anda juga boleh memaparkan penggunaan cakera semasa semua fail jurnal dengan --penggunaan cakera
pilihan. Ia menunjukkan jumlah penggunaan cakera semua fail jurnal yang diarkibkan dan aktif:
$ Journalctl-Disk-usage
Untuk memadam fail jurnal lama (diarkibkan) menjalankan arahan di bawah:
$ sudo jurnalctl-vacuum-size = 50m #delete files sehingga ruang cakera yang mereka gunakan jatuh di bawah saiz yang ditentukan $ sudo jurnalctl --vacuum-time = 1years #delete files supaya semua fail jurnal tidak mengandungi data yang lebih tua daripada timespan yang ditentukan $ sudo Journalctl-vacuum-files = 4 #delete files sehingga tidak lebih daripada bilangan fail jurnal berasingan yang ditentukan tetap di lokasi penyimpanan
Fail jurnal berputar
Terakhir tetapi tidak kurang, anda boleh mengarahkan jurnal untuk memutar fail jurnal dengan --berputar
pilihan. Perhatikan bahawa arahan ini tidak kembali sehingga operasi putaran selesai:
$ sudo Journalctl -Rotate
Untuk panduan dan pilihan penggunaan yang mendalam, lihat halaman JournalCtl Man seperti berikut.
$ man Journalctl
Periksa beberapa artikel berguna.
- Menguruskan Proses dan Perkhidmatan Permulaan Sistem (SYSVINIT, SYSTEMD dan UPSTART)
- Petiti - Alat analisis log sumber terbuka untuk linux sysadmins
- Cara Menyiapkan dan Mengurus Putaran Log Menggunakan Logrotat di Linux
- LNAV - menonton dan menganalisis log Apache dari terminal Linux
Itu sahaja buat masa ini. Gunakan maklum balas dari bawah untuk mengemukakan sebarang pertanyaan atau tambahkan pemikiran anda mengenai topik ini.
- « Cara Memasang Samba di Ubuntu untuk Perkongsian Fail pada Windows
- Cara Memperluas/Mengurangkan LVM (Pengurusan Jilid Logik) di Linux - Bahagian II »