Di mana data "jurnalctl" disimpan?

43

Ketika saya mengeluarkan journalctlsaya mendapatkan log besar-besaran dari semua layanan sistem, tetapi di mana semua informasi ini disimpan?

php_nub_qq
sumber

Jawaban:

37

Dari man systemd-journald:

FILES
       /etc/systemd/journald.conf
           Configure systemd-journald behavior. See journald.conf(5).

       /run/log/journal/machine-id/*.journal,
       /run/log/journal/machine-id/*.journal~,
       /var/log/journal/machine-id/*.journal,
       /var/log/journal/machine-id/*.journal~
           systemd-journald writes entries to files in
           /run/log/journal/machine-id/ or /var/log/journal/machine-id/ with
           the ".journal" suffix. If the daemon is stopped uncleanly, or if
           the files are found to be corrupted, they are renamed using the
           ".journal~" suffix, and systemd-journald starts writing to a new
           file.  /run is used when /var/log/journal is not available, or when
           Storage=volatile is set in the journald.conf(5) configuration file.

Dan seperti yang man journalctldikatakan:

journalctl may be used to query the contents of the systemd(1) journal
as written by systemd-journald.service(8).

Log ini dikelola oleh systemd-journaldlayanan, jadi istilah yang lebih tepat adalah " journaldlog".

muru
sumber
Terima kasih atas koreksinya, tetapi anggaplah seorang noob seperti saya akan mencari juga, jadi saya kira lebih baik dibiarkan begitu saja. Pertanyaan tindak lanjut - apakah log ini aman untuk dihapus?
php_nub_qq
5
Log aman untuk dihapus kecuali Anda membutuhkan informasi darinya nanti.
muru
Perhatikan bahwa secara default, systemd akan menghapus log yang lebih lama saat mereka mendekati persentase ruang disk yang digunakan.
mattdm
17

Namun perlu dicatat bahwa Ubuntu tidak menggunakan file log journald persisten secara default. Hanya volatile /run/log/journal/<machine-id>/*.journal[~]yang disimpan hingga boot berikutnya. Semua hilang pada setiap reboot.

Anda mungkin melihat daftar boot yang disimpan di log dengan:

journalctl --list-boot

Log masih disimpan dalam file teks di bawah /var/logkecuali Anda telah mengaktifkan penggunaan jurnal journald persisten dengan membuat /var/log/journaldirektori.

titik balik matahari
sumber
5
Namun, jurnal journald bisa dibilang harus persisten secara default. [bug # 1618188] ( bugs.launchpad.net/ubuntu/+source/systemd/+bug/1618188 ) telah dibuka untuk melacak kemajuan perubahan ini. Periksa di sana untuk status terbaru.
Mark Stosberg
3

Jawaban singkat

Biasanya direktori penyimpanan adalah /var/log/journalatau /run/log/journal, tetapi tidak harus selalu ada di sistem Anda.

Jika Anda hanya ingin memeriksa jumlah ruang yang saat ini ditempati jurnal pada disk Anda, cukup ketik:

$ journalctl --disk-usage

Jawaban panjang

Direktori penyimpanan tergantung pada konfigurasi journald.

File konfigurasi adalah:

/etc/systemd/journald.conf
/etc/systemd/journald.conf.d/*.conf
/run/systemd/journald.conf.d/*.conf
/usr/lib/systemd/journald.conf.d/*.conf

Di sana opsi " Storage=" mengontrol apakah akan menyimpan data jurnal atau tidak, dan di mana. Nilai yang mungkin adalah " volatile", " persistent", " auto" dan " none". Default ke " auto".

Jika " volatile", data jurnal jurnal hanya akan disimpan dalam memori, yaitu di bawah hierarki / run / log / jurnal (yang dibuat jika diperlukan).

Jika " persistent", data akan disimpan lebih disukai di disk, yaitu di bawah hirarki / var / log / jurnal (yang dibuat jika diperlukan), dengan fallback ke / run / log / jurnal (yang dibuat jika diperlukan), selama awal boot dan jika disk tidak dapat ditulisi.

" auto" Mirip dengan " persistent" tapi direktori /var/log/journalyang tidak dibuat jika diperlukan, sehingga kontrol keberadaannya di mana log data berjalan.

" none" mematikan semua penyimpanan, semua data log yang diterima akan dihapus.

Demis Palma ツ
sumber
0

Selain jawaban Muru tentang di mana data disimpan, ada jawaban lain yang relevan.

Cara meningkatkan journalctluntuk menemukan log boot sebelumnya

$ sudo mkdir -p /var/log/journal
$ sudo systemd-tmpfiles --create --prefix /var/log/journal

Bagaimana menjaga journalctlukuran file tetap rendah

$ journalctl --vacuum-size=200M
Deleted archived journal /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/[email protected]~ (56.0M).
Deleted archived journal /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/[email protected]~ (8.0M).
Deleted archived journal /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/user-1000@1bbb77599cf14c65a18af51646751696-000000000000064f-00056444d58433e1.journal (112.0M).
Vacuuming done, freed 176.0M of archived journals on disk.
WinEunuuchs2Unix
sumber