このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Linux】ログデータベースへアクセスする:jounalctlコマンド

journalctlコマンドの概要

 journalctlコマンドは、systemd-journaldが収集したログデータベースにアクセスし、ログを表示するためのツールです。システム全体や特定のサービスに関連するログを簡単に確認することができます。

【構文】
jounalctl [オプション]

主なオプションと説明

オプション説明
-eログファイルの最後に移動して表示します。journalctl -e
-fリアルタイムでログを表示し続けます(フォローします)。journalctl -f
-x詳細な説明を表示します。journalctl -x
-u Unit名指定したサービスユニットのログを表示します。journalctl -u vboxadd.service
主なオプションと説明

journalctlコマンドの出力画面の操作方法

journalctlコマンドの出力画面の操作方法はmanコマンドと同じです。以下は基本的な操作方法です。

操作キー説明
j1行下にスクロール
k1行上にスクロール
G最後の行に移動
g最初の行に移動
/検索
q終了
journalctlコマンドの出力画面の操作方法

コマンドの使用例と解説

1.journalctlコマンドでログを確認する。

・「journalctl」コマンドを実行します。

デフォルトで全てのログを時系列で表示します。

user01@ubuntu-vm:~$ journalctl
 5月 12 23:25:43 ubuntu-vm systemd-timesyncd[436]: Initial synchronization >
 5月 12 23:25:43 ubuntu-vm systemd-resolved[333]: Clock change detected. Fl>
 5月 12 23:25:45 ubuntu-vm vboxadd[1731]: VirtualBox Guest Additions: kerne>
 5月 12 23:25:45 ubuntu-vm vboxadd[582]: VirtualBox Guest Additions: kernel>
 5月 12 23:25:45 ubuntu-vm vboxadd[582]: The log file /var/log/vboxadd-setu>
(省略)

・「q」キーを押して終了させます。

2.vboxaddサービスのログを確認する。

 ここでは、VirtualBox内でUbuntuを起動しているため、vboxaddサービスを指定しています。稼働しているその他のサービスを指定して下さい。

・「journalctl -u vboxadd」コマンドを実行します。

※「journalctl -u vboxadd.service」コマンドと同じ。

 vboxadd.serviceに関連するログのみを表示します。ログは膨大な量があるため、目的の部分を探し出すのは困難です。このような場合、-uオプションを使用して特定のサービスに絞り込むと便利です。

user01@ubuntu-vm:~$ journalctl -u vboxadd
 5月 12 23:25:45 ubuntu-vm vboxadd[1731]: VirtualBox Guest Additions: kerne>
 5月 12 23:25:45 ubuntu-vm vboxadd[582]: VirtualBox Guest Additions: kernel>
 5月 12 23:25:45 ubuntu-vm vboxadd[582]: The log file /var/log/vboxadd-setu>
 5月 12 23:25:45 ubuntu-vm systemd[1]: vboxadd.service: Main process exited>
 5月 12 23:25:45 ubuntu-vm systemd[1]: vboxadd.service: Failed with result >
(省略)

・「q」キーを押して終了させます。

3.リアルタイムでログをフォローする。

・「journalctl -f」コマンドを実行します。

リアルタイムでログを表示し続けます。新しいログが追加されると、自動的に更新されます。

user01@ubuntu-vm:~$ journalctl -f
12月 31 23:59:59 ubuntu-vm systemd[1]: e2scrub_all.service: Deactivated successfully.
12月 31 23:59:59 ubuntu-vm systemd[1]: Finished Online ext4 Metadata Check for All Filesystems.
12月 31 23:59:59 ubuntu-vm systemd[1]: motd-news.service: Deactivated successfully.
12月 31 23:59:59 ubuntu-vm systemd[1]: Finished Message of the Day.
12月 31 23:59:59 ubuntu-vm systemd[1]: dpkg-db-backup.service: Deactivated successfully.
12月 31 23:59:59 ubuntu-vm systemd[1]: Finished Daily dpkg database backup service.
12月 31 23:59:59 ubuntu-vm systemd[1]: logrotate.service: Deactivated successfully.
12月 31 23:59:59 ubuntu-vm systemd[1]: Finished Rotate log files.
 6月 22 12:58:51 ubuntu-vm systemd-resolved[359]: Clock change detected. Flushing caches.
 6月 22 12:58:54 ubuntu-vm sudo[3938]:   user01 : TTY=pts/0 ; PWD=/home/user01 ; USER=root ; COMMAND=/usr/bin/date -s '2024-12-31 23:59:59'
(省略)

・「Ctrl」+「C」キーを押して終了させます。

4.最後のログに移動する。

・「journalctl -e」コマンドを実行します。

ログファイルの最後に移動して表示します。

user01@ubuntu-vm:~$ journalctl -e
 7月 17 01:58:12 ubuntu-vm dbus-daemon[2381]: [session uid=1000 pid=2381] A>
 7月 17 01:58:12 ubuntu-vm systemd[2355]: Starting GNOME Terminal Server...
 7月 17 01:58:12 ubuntu-vm dbus-daemon[2381]: [session uid=1000 pid=2381] S>
 7月 17 01:58:12 ubuntu-vm systemd[2355]: Started GNOME Terminal Server.
 7月 17 01:58:12 ubuntu-vm systemd[2355]: Started VTE child process 4540 la>
 7月 17 02:02:14 ubuntu-vm kernel: 16:57:37.430419 SHCLX11   Shared Clipboa>
 7月 17 02:04:28 ubuntu-vm pulseaudio[2365]: ALSA woke us up to write new d>
 7月 17 02:04:28 ubuntu-vm pulseaudio[2365]: Most likely this is a bug in t>
 7月 17 02:04:28 ubuntu-vm pulseaudio[2365]: We were woken up with POLLOUT >
 7月 17 02:04:38 ubuntu-vm dbus-daemon[469]: [system] Activating via system>
(省略)

・「q」キーを押して終了させます。

まとめ

 journalctlコマンドは、systemd-journaldが収集したログにアクセスし、表示するための強力なツールです。オプションを使用することで、特定のサービスのログを確認したり、リアルタイムでログをフォローしたりすることができます。ログは膨大な量があるため、適切なオプションを使用して効率的に目的の情報を探し出すことが重要です。