journalctlコマンド
ログの確認という話になると、よく出てくるコマンドです。オプションを使うと日付を指定することもできます。本記事ではデフォルトでは保存されないログの保管から、過去のログの呼び出しまでを詳しく検証しています。
書式
journalctl [オプション]
オプション
オプション | 説明 |
-a (–all) | 画面に表示できない文字も含めて表示する。 |
-b (–boot) | システムの起動時のログを見る。正の場合は最古から数え、負の場合は最新から数える。 ※以下の例と、検証で確認。 -b 1-> 最古のログ -b 2 -> 1より1つ新しいログ(以降3,4,….) -b -1 -> 前回起動時のログ -b -2 -> 前々回起動時のログ(以降-3,-4…) |
-D (–directory) | 指定したディレクトリのログを表示する。 |
-e (–pager-end) | 末尾を表示する。 |
-f (–follow) | 出力されたログを表示する(tailコマンドの-fと似ています) |
-k (–dmesg) | カーネルからのメッセージを表示する。 |
-l (–full) | 全てのログを表示する。 |
-n (–lines) | 出力する行数を指定する(headを用いなくても良くなります) |
–no-pager | lessコマンドで出力されず、catコマンドのように全てを表示します。ぜひとも-nオプションを併用しましょう(ログが多いので) |
-o (–output) | ログの出力形式を指定する。詳細表示(verbose)や、jsonなどが指定できる。short-monotonicを指定すると、起動してからの経過時間で表示される。 |
-r (–reverse) | 最新のログから表示します(sortコマンドと同じように、順番を逆にするイメージです) |
–since | 指定した日付以降のログを表示します。 |
–until | 指定した日付より前のログを表示します。 |
-u (–unit) | 指定したunitのログを表示します。 |
–vacuum-sice=サイズ | アーカイブのジャーナルが指定したサイズを下回るまで、古いジャーナルを削除します。 |
–vacuum-time=時間 | 指定した期間より古いアーカイブジャーナルを削除します。 |
-x | 説明文付きで表示します。 |
–list–boot | bootした履歴を表示する。 |
検証
検証1 –no-ppager
デフォルトではlessコマンドが使用されるので、–no-pagerを使用し、さらに表示する行数を3行に指定します。lessコマンドで表示されるのが嫌いな人向け。
1 2 3 4 5 |
~ # journalctl --no-pager -n 3 -- Logs begin at Wed 2021-01-20 16:46:27 JST, end at Fri 2021-01-22 17:04:46 JST. -- 1月 22 17:04:43 test01 systemd[1]: Started Network Manager Script Dispatcher Service. 1月 22 17:04:46 test01 systemd[3341]: Starting Mark boot as successful... 1月 22 17:04:46 test01 systemd[3341]: Started Mark boot as successful. |
検証2 ログの保管設定
ブート時のログを見ます。デフォルトの設定では、再起動をすると、起動時のログは削除されます。以下はログ保管に関する設定を行っていない場合の出力です。「ないよ!」ということで、怒られます。
1 2 |
~ # journalctl -b 1 n -3 Specifying boot ID or boot offset has no effect, no persistent journal was found. |
ログを保管し、journalctlで見られるようにするためには、「/etc/systemd/journald.conf」を編集します。編集前のデフォルトの状態は以下の状態になっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
[root@localhost ~]# cat /etc/systemd/journald.conf [Journal] #Storage=auto #Compress=yes #Seal=yes #SplitMode=uid #SyncIntervalSec=5m #RateLimitInterval=30s #RateLimitBurst=1000 #SystemMaxUse= #SystemKeepFree= #SystemMaxFileSize= #RuntimeMaxUse= #RuntimeKeepFree= #RuntimeMaxFileSize= #MaxRetentionSec= #MaxFileSec=1month #ForwardToSyslog=yes #ForwardToKMsg=no #ForwardToConsole=no #ForwardToWall=yes #TTYPath=/dev/console #MaxLevelStore=debug #MaxLevelSyslog=debug #MaxLevelKMsg=notice #MaxLevelConsole=info #MaxLevelWall=emerg #LineMax=48K |
ログの保存を有効化するには、「#Storage」のコメントアウトを削除し、パラメータを「persistent」にします。また、格納されるジャーナルファイルの大きさを制限するために、「RuntimeUse」のパラメータも「5G」に設定しておきます。(このあたりの容量は任意)