web-dev-qa-db-ja.com

「journalctl」データはどこに保存されますか?

journalctlを発行すると、すべてのシステムサービスの大量のログが取得されますが、この情報はすべてどこに保存されますか?

42
php_nub_qq

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.

そして man journalctl のように:

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

これらのログはsystemd-journaldサービスによって管理されるため、より適切な用語は「journald logs」です。

37
muru

ただし、Ubuntuはデフォルトで永続的なjournaldログファイルを使用していないことに注意してください。揮発性/run/log/journal/<machine-id>/*.journal[~]のみが次のブートまで保持されます。再起動するたびにすべてが失われます。

ログに保持されているブートのリストが表示される場合があります。

journalctl --list-boot

ログは、/var/logディレクトリを作成して永続的なジャーナルログの使用を有効にしていない限り、/var/log/journalの下のテキストファイルに保持されます。

17
solsTiCe

簡潔な答え

通常、ストレージディレクトリは/var/log/journalまたは/run/log/journalですが、必ずしもシステムに存在する必要はありません。

ジャーナルが現在ディスク上で占有しているスペースの量を確認したいだけの場合は、次のように入力します。

$ journalctl --disk-usage

長い答え

ストレージディレクトリは、journald設定に依存します。

構成ファイルは次のとおりです。

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

そこで、「Storage=」オプションは、ジャーナルデータを保存するかどうか、および保存する場所を制御します。可能な値は、「volatile」、「persistent」、「auto」、および「none」です。デフォルトは「auto」です。

volatile」の場合、ジャーナルログデータはメモリにのみ、つまり/ run/log/journal階層の下に保存されます(必要に応じて作成されます)。

persistent」の場合、データはディスク上、つまり/ var/log/journal階層(必要に応じて作成される)の下に保存され、/ run/log/journal(次の場合に作成される)必要)、初期ブート中、およびディスクが書き込み可能でない場合。

auto」は「persistent」と似ていますが、必要に応じてディレクトリ/var/log/journalnotに作成されるため、その存在によりログデータの送信先が制御されます。

none」はすべてのストレージをオフにし、受信したすべてのログデータはドロップされます。

3
Demis Palma ツ

データの保存場所に関するMuruの回答に加えて、他の関連する回答があります。

以前のブートログを見つけるためにjournalctlを増やす方法

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

journalctlファイルサイズを小さくする方法

$ 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.
0