Linuxコマンド辞典 journalctlコマンド(システム管理)

systemdジャーナルの内容を検索する「journalctl」コマンドの概要と使い方を記載しています。

RHEL Fedora CentOS

概要・使用方法

書式

$ journalctl [オプション] [検索文字列・・・]

systemd-journaldが収集しているログ、「/dev/log」から得たログコンテンツから内容を検索して出力します。RHEL7,CentOS7では動作しているログサーバーにrsyslogdが動いているため、journalctlはシステム起動時からjournaldが取得したデータからのみ検索できるようになっています。systemd-journaldがsyslogサービスに置き換わったディストリビューションでは保存されたすべてのログを検索できます。コマンドのみ実行すると、古いログから1ページがlessなどのページャを使って表示されます。

管理者権限で実行する必要がある。

オプション

-k
–dmesg
カーネルメッセージのみを出力する(dmesgのような動作)
-l
–full
すべての(表示可能な)フィールドを表示する
-a
–all
表示かどうか関わらず、すべてのフィールドを表示する
-f
–follow
journalに新たに書き込まれたエントリも継続的に表示する(「tail -f」と同じような動作)
–fullエスケープ文字を除いてプレーンテキストで表示する
-o 書式、
–output=書式
出力の書式を指定する(short/short-iso/verbose/json)
-n 行数
–lines=行数
表示する行数を指定する
–no-pagerページャを起動しない
-r
–reverse
表示にを判定する。新しいエントリを上に、古いエントリを下に表示する
-u ユニット名
–unit=ユニット名
特定のユニットのログのみ表示する
-p プライオリティ
–priority=プライオリティ
指定したプライオリティでフィルタする
–systemsystem servicesとカーネルメッセージを表示する
–userユーザのサービスメッセージのみを表示する
–disk-usagejournalファイルが使っているストレージ容量を表示する

dmesgと同じようにメッセージを確認する

$ journalctl -k
$ sudo journalctl -k

実行結果

[root@sunarin ~]# journalctl -k | head -n 10
-- Logs begin at Tue 2022-08-09 17:50:01 JST, end at Thu 2022-10-27 10:48:35 JST. --
 8月 09 23:29:13 localhost.localdomain kernel: hv_utils: TimeSync IC version 4.0
 8月 10 21:34:07 localhost.localdomain kernel: hv_utils: TimeSync IC version 4.0
 8月 11 22:44:13 localhost.localdomain kernel: hv_utils: TimeSync IC version 4.0
 8月 13 02:01:58 localhost.localdomain kernel: hv_utils: TimeSync IC version 4.0
10月 25 11:06:24 localhost.localdomain kernel: hv_utils: Heartbeat IC version 3.0
10月 25 11:06:24 localhost.localdomain kernel: hv_utils: KVP IC version 4.0
10月 25 11:06:24 localhost.localdomain kernel: hv_utils: Shutdown IC version 3.2
10月 25 11:06:24 localhost.localdomain kernel: hv_utils: TimeSync IC version 4.0
10月 25 11:06:24 localhost.localdomain kernel: hv_utils: VSS IC version 5.0

「tail -f」と同じように、新しく書き出されるログを表示する

$ journalctl -f

実行結果

[root@sunarin ~]# journalctl -f
-- Logs begin at Tue 2022-08-09 17:50:01 JST. --
10月 27 10:49:16 sunarin.example.com NetworkManager[1000]: <info>  [1666835356.9114] policy: set-hostname: current hostname was changed outside NetworkManager: 'sunarin.example.com'
10月 27 10:49:16 sunarin.example.com NetworkManager[1000]: <info>  [1666835356.9122] policy: set-hostname: current hostname was changed outside NetworkManager: 'sunarin.example.com'
10月 27 10:49:16 sunarin.example.com NetworkManager[1000]: <info>  [1666835356.9125] policy: set-hostname: current hostname was changed outside NetworkManager: 'sunarin.example.com'
10月 27 10:49:59 sunarin.example.com NetworkManager[1000]: <info>  [1666835399.9118] policy: set-hostname: current hostname was changed outside NetworkManager: 'sunarin.example.com'
10月 27 10:49:59 sunarin.example.com NetworkManager[1000]: <info>  [1666835399.9120] policy: set-hostname: current hostname was changed outside NetworkManager: 'sunarin.example.com'
10月 27 10:49:59 sunarin.example.com NetworkManager[1000]: <info>  [1666835399.9120] policy: set-hostname: current hostname was changed outside NetworkManager: 'sunarin.example.com'
10月 27 10:50:01 sunarin.example.com systemd[1]: Started Session 3747 of user sunarin.

特定のsystemdユニットのログのみを出力する

$ journalctl -u サービス名

実行結果

[root@sunarin ~]# journalctl -u httpd
-- Logs begin at Tue 2022-08-09 17:50:01 JST, end at Thu 2022-10-27 10:54:33 JST. --
10月 27 10:54:33 sunarin.example.com systemd[1]: Starting The Apache HTTP Server...
10月 27 10:54:33 sunarin.example.com systemd[1]: Started The Apache HTTP Server.
10月 27 10:54:33 sunarin.example.com httpd[331738]: Server configured, listening on: port 80
[root@sunarin ~]# 

journaldが専有しているストレージ容量を表示する

$ journalctl --disk-usage

実行結果

[root@sunarin ~]# journalctl --disk-usage
Archived and active journals take up 94.6M in the file system.
[root@sunarin ~]#