systemd-journald とは?ログの確認方法や設定を解説

systemd-journald

systemd-journald (通称 journald) とは、ログの収集・保存サービスです。

https://man7.org/linux/man-pages/man8/systemd-journald.8.html
サービスユニットの詳細はこちら、ユニットの種類はこちら

systemctl start <ユニット名> で失敗した時に、エラーメッセージの確認でよく使います。

sudo journalctl -xeu nginx
関連記事:Linux の基本機能
学習ロードマップ
スポンサーリンク

journald の使い方

journal ログにアクセスするには、jounalctl コマンドを利用します。

journalctl
-- Logs begin at Thu 2013-08-01 15:42:12 CEST, end at Thu 2013-08-01 15:48:48 CEST. --
Aug 01 15:42:12 localhost systemd-journal[54]: Allowing runtime journal files to grow to 49.7M.
Aug 01 15:42:12 localhost kernel: Initializing cgroup subsys cpuset
Aug 01 15:42:12 localhost kernel: Initializing cgroup subsys cpu

次のログに進む場合は "スペース"キー、前のログに戻る場合は "b" キーを押します。

このままだと、全ての journal ログが表示されるので、オプションを利用します。

-e 末尾にジャンプ

journalctl -e

先頭に戻る (古い情報を辿る) 場合は、"b" キーを入力します。

-r 出力を反転 (最新から)

journalctl -r

先に進む (古い情報を辿る) 場合は、"space" キーを入力します。

新しい情報から見るという観点では -e と同じなので、操作しやすい好きな方をどうぞ

-x 追加の情報

詳細なログを確認できます。

journalctl -xe

-u ユニット (サービス) を指定

nginx のログだけを見たい場合は、オプション -u を使います。

journalctl -u nginx

-k カーネルログ

カーネルログだけを見たい場合は、オプション -k を使います。

journalctl -k

-S -U 開始、終了時刻を指定

オプション -S で開始時刻、-U で終了時刻を指定します。

journalctl -S "2024-11-21 00:00:00" -U "2024-11-22 00:00:00"

-p プライオリティ

プライオリティで絞る場合はオプション -p を使います。

journalctl -p 3

プライオリティとレベルの対応は以下のとおりです。

レベルプライオリティ
0emerg
1alert
2cirt
3err
4warning
5notice
6info
7debug

-o verbose ログの全情報

journalctl -o verbose

_UID 指定したユーザーID

journalctl _UID=1000
スポンサーリンク

logger 任意のログを生成

journal ログを検証する場合、任意のログを生成したくなります。

そんな時は logger コマンドを利用します。

logger "test log"
journalctl -e
 5月 21 14:33:39 xxxx user[xxxx]: test log
スポンサーリンク

jounald の設定

jounald の設定ファイルは /etc/systemd/journald.conf です。

特によく利用する設定は以下です。

Storage ログの保存先

cat /etc/systemd/journald.conf|grep Storage
#Storage=auto
Storage の値説明
persistentディスク上 /var/log/journal に保存
volatileメモリ上 /run/log/journal に保存
(再起動で失われる)
auto/var/log/journal ディレクトリの有無で決定
・ある:persistent
・ない:volatile
/run/log/journal ディレクトリは揮発性なので、再起動すると消える

SystemMaxUse ログのサイズ上限

journal ログがストレージから溢れないように、上限を設定します。

cat /etc/systemd/journald.conf|grep SystemMaxUse
#SystemMaxUse=

SystemMaxUse= and RuntimeMaxUse= control how much disk space the journal may use up at most.

The first pair defaults to 10% (中略) of the size of the respective file system, but each value is capped to 4G.

https://www.freedesktop.org/software/systemd/man/journald.conf.html

ForwardToSyslog rsyslog に転送

そもそも rsyslog とは、昔のログ管理ユーティリティです。

互換性のために、rsyslog にログを転送するか否かを設定します。

Journal は systemd のコンポーネントで、ログファイルの表示および管理を担います。rsyslogd などの従来の syslog デーモンとの並列もしくはその代わりとして使用できます

dhttps://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/system_administrators_guide/s1-using_the_journal
cat /etc/systemd/journald.conf|grep ForwardToSyslog
#ForwardToSyslog=no

journald.conf の設定を反映 (再起動)

sudo systemctl restart systemd-journald

関連情報

関連記事

学習ロードマップ
関連記事:Linux の基本機能
Linux カーネルの機能
ネットワークのコマンド
関連記事:サーバー

参考サイト

23.10. Journal の使用 Red Hat Enterprise Linux 7 | Red Hat Customer Portal
Access Red Hat’s knowledge, guidance, and support through your subscription.