🗺️

Systemdのlogを見るのに便利なコマンド(journalctl)

に公開

journalctl

一番オーソドックス. Systemdで管理されたアプリのログを見るためのコマンド.

本気で知りたいならman journalctl とか journalctl -hで見てもらえると助かるパスカル(ジョイマン).

よく使うオプション

-r, --reverse

逆順で表示する. つまり, 最新のものが一番上にくる. 最新のログが見たいときは結構便利

# 最新のものから表示
$ journalctl -r

-n, --lines

最後のn行を表示する. tail コマンドに近い.

# 最後の100行を表示する
$ journalctl -n 100

-f, --follow

リアルタイム表示. screen とかでこれを見る専用のターミナルを作ると便利かも

# リアルタイムに表示
$ journalctl -f

-S, --since

時間で指定.

# 今日のログだけ
$ journalctl --since "today"

# 昨日のログだけ
$ journalctl --since "yesterday" --until "today"

# 1時間前から今までのログ
$ journalctl --since "1 hour ago"

# 具体的な日時を指定
$ journalctl --since "2023-10-27 10:00:00"

-U, --until

--sinceと同じ働きなので割愛

-u, --unit

特定のサービスを見る. 複数指定可能

# sshdサービスのログだけを表示
$ journalctl -u sshd.service

# nginxのログをリアルタイムで監視
$ journalctl -f -u nginx

# 複数のサービスのログを同時に見る
$ journalctl -u nginx -u php-fpm

-p, -priority

エラーや警告などのログレベルで絞り込む.RFC5424によると,以下のような数値が決まっている.よく使うのは3(err),4(warn),5(notice),6(info),7(debug)あたりだろう.

数値 内容
0 Emergency: system is unusable
1 Alert: action must be taken immediately
2 Critical: critical conditions
3 Error: error conditions
4 Warning: warning conditions
5 Notice: normal but significant condition
6 Informational: informational messages
7 Debug: debug-level messages

参照: https://datatracker.ietf.org/doc/html/rfc5424#section-6.2.1

# 値で指定(err)
$ journalctl -p 3

# 略称で指定
$ journalctl -p crit

# 範囲指定
$ journalctl -p 0..2

-b, -boot

起動してからのログを表示できる. 過去の起動セッションを表示することも可能

# 起動してからのログ
$ journalctl -b

# 2つ前の起動セッションのログ
$ journalctl -b -2

# 起動セッションの一覧を表示
$ journalctl --list-boots

-g, --grep

正規表現でgrepできる.

$ journalctl -g POST
$ journalctl --grep=POST

参考

man journalctl
journalctl -h
https://datatracker.ietf.org/doc/html/rfc5424#section-6.2.1

Discussion