systemd のログを確認する journalctl

更新 2020/04/18

この記事の内容
  1. ヘルプの表示
  2. バージョンの確認
  3. ページ機能なし
  4. 出力を plain text にする
  5. 出力を完全表示
  6. ログの最新(末尾)を表示し状態を更新し続ける
  7. ログの最新(末尾) 1000 件を表示する
  8. ログの最新(末尾)から指定した件数を表示する
  9. 全ログの出力
  10. 出力を反転させる
  11. 出力フォーマットを変える
  12. メッセージのカタログを表示する
  13. root ではない時にアクセス出来ない警告を表示しない(未検証)
  14. リモートを含む全てのログを合わせる(未検証)
  15. ブートログを表示する
  16. ユニットを指定してログを表示する

SSD に優しい設定ってなんだろう? をFedora 19 にもやってみようと思って設定していた。

そうすると /var/log に journal というディレクトリがあり、800MB 近いログが溜まっている。journal と見て、一瞬ファイルシステムのモノかとギョッとしたけど調べたら systemd のログということがわかった。

サーバーとして使った事ないから systemd はよく判らなかった。 とりあえず分かる範囲で調べる。

先ずは journal を more で見てみる... バイナリでしたw journal のログを確認するためのコマンドは journalctl というらしい。

ヘルプの表示

$ sudo journalctl -h # or journalctl --help

バージョンの確認

試しに打ってみるとこんな感じだったので、204 ってことなのかな。

$ sudo journalctl --version
systemd 204
+PAM +LIBWRAP +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ

ページ機能なし

デフォルトでは | less でページングしている形になるが、このオプションをつけると全部表示される。 特定の単語を探して grep する時とかに有効そう。

$ sudo journalctl --no-pager

出力を plain text にする

出力が plain text で表示される。 デフォルトのコンソール表示ではエスケープシーケンスが入っていて、文字に装飾がついている。

$ sudo journalctl --full

出力を完全表示

ログを省略せず表示させ、コンソールで見た時用に文字の装飾が入っている。

$ sudo journalctl -a  # or journalctl --all

ログの最新(末尾)を表示し状態を更新し続ける

昔の tail -f /var/log/message みたいなもんかな。

$ sudo journalctl -f  # or journalctl --follow

ログの最新(末尾) 1000 件を表示する

昔の tail -n 1000 /var/log/message | less みたいなもんかな。

$ sudo journalctl -e  # or journalctl --pager-end

ログの最新(末尾)から指定した件数を表示する

昔の tail -n 件数 /var/log/message | less みたいなもんかな。 デフォルトでは 10 件表示。

$ sudo journalctl -n  # or journalctl --lines

末尾から 20 件表示する例。

$ sudo journalctl -n 20  # or journalctl --lines=20

全ログの出力

Show all stored output lines, even in follow mode. Undoes the effect of --lines=.

ってヘルプに書いてあるけど、手元の環境で違いがでない。 恐らく、全てのログを出力するのではないかな。 ちなみに --lines は無効化するっぽい。

$ sudo journalctl --no-tail

出力を反転させる

デフォルトでは古い順でログが出力されるが、新しい順に表示させる。

$ sudo journalctl -r  # or journalctl --reverse

出力フォーマットを変える

  • short: デフォルトの出力形式
  • short-monotonic: タイムスタンプが経過時間になり、表示が簡素化される
  • verbose: 全ての行に対して詳細なログを表示する
  • export: journal を plain-text (Journal Export Format 形式) で出力する
  • json: 1データ 1行づつ JSON 形式で出力する
  • json-pretty: JSON 形式だが、人に見やすい形(複数行)に成形されている
  • json-sse: Server-Sent Events に向いた JSON

JSON 形式での出力するコマンド例

$ sudo journalctl -o json# or journalctl --output=json
  • short での出力例
-- Logs begin at 水 2014-03-12 19:30:12 JST, end at 木 2014-03-13 02:35:59 JST. --
 3月 12 19:30:12 localhost.localdomain systemd-journal[66]: Allowing runtime journal files to grow to 245.7M.
 3月 12 19:30:12 localhost.localdomain kernel: Initializing cgroup subsys cpuset
 3月 12 19:30:12 localhost.localdomain kernel: Initializing cgroup subsys cpu
 3月 12 19:30:12 localhost.localdomain kernel: Initializing cgroup subsys cpuacct
  • short-monotonic での出力例
-- Logs begin at 水 2014-03-12 19:30:12 JST, end at 木 2014-03-13 02:36:23 JST. --
[    2.177326] localhost.localdomain systemd-journal[66]: Allowing runtime journal files to grow to 245.7M.
[    0.000000] localhost.localdomain kernel: Initializing cgroup subsys cpuset
[    0.000000] localhost.localdomain kernel: Initializing cgroup subsys cpu
[    0.000000] localhost.localdomain kernel: Initializing cgroup subsys cpuacct
  • verbose での出力例
-- Logs begin at 水 2014-03-12 19:30:12 JST, end at 木 2014-03-13 02:37:00 JST. --
水 2014-03-12 19:30:12 JST [s=7cf0970b1bb44465b08531345d8fa9f3;i=1;b=de10f6f7c322406eb35df53b2218ed1b;m=21392e;t=4f46652629b05;x=79feb053e18e37af]
        PRIORITY=6
        _TRANSPORT=driver
        MESSAGE=Allowing runtime journal files to grow to 245.7M.
        _PID=66
        _UID=0
        _GID=0
        _COMM=systemd-journal
        _EXE=/usr/lib/systemd/systemd-journald
        _CMDLINE=/usr/lib/systemd/systemd-journald
        _SYSTEMD_CGROUP=/system/systemd-journald.service
        _SYSTEMD_UNIT=systemd-journald.service
        _SELINUX_CONTEXT=kernel
        _BOOT_ID=de10f6f7c322406eb35df53b2218ed1b
        _MACHINE_ID=7725dfc225d14958a625ddaaaea5962b
        _HOSTNAME=localhost.localdomain
水 2014-03-12 19:30:12 JST [s=7cf0970b1bb44465b08531345d8fa9f3;i=2;b=de10f6f7c322406eb35df53b2218ed1b;m=2139b0;t=4f46652629b87;x=5512d805b7c27a94]
        PRIORITY=6
        _BOOT_ID=de10f6f7c322406eb35df53b2218ed1b
        _MACHINE_ID=7725dfc225d14958a625ddaaaea5962b
        _HOSTNAME=localhost.localdomain
        _SOURCE_MONOTONIC_TIMESTAMP=0
        _TRANSPORT=kernel
        SYSLOG_IDENTIFIER=kernel
        MESSAGE=Initializing cgroup subsys cpuset
  • export での出力例
__CURSOR=s=7cf0970b1bb44465b08531345d8fa9f3;i=1;b=de10f6f7c322406eb35df53b2218ed1b;m=21392e;t=4f46652629b05;x=79feb053e18e37af
__REALTIME_TIMESTAMP=1394620212878085
__MONOTONIC_TIMESTAMP=2177326
_BOOT_ID=de10f6f7c322406eb35df53b2218ed1b
PRIORITY=6
_TRANSPORT=driver
MESSAGE=Allowing runtime journal files to grow to 245.7M.
_PID=66
_UID=0
_GID=0
_COMM=systemd-journal
_EXE=/usr/lib/systemd/systemd-journald
_CMDLINE=/usr/lib/systemd/systemd-journald
_SYSTEMD_CGROUP=/system/systemd-journald.service
_SYSTEMD_UNIT=systemd-journald.service
_SELINUX_CONTEXT=kernel
_MACHINE_ID=7725dfc225d14958a625ddaaaea5962b
_HOSTNAME=localhost.localdomain

__CURSOR=s=7cf0970b1bb44465b08531345d8fa9f3;i=2;b=de10f6f7c322406eb35df53b2218ed1b;m=2139b0;t=4f46652629b87;x=5512d805b7c27a94
__REALTIME_TIMESTAMP=1394620212878215
__MONOTONIC_TIMESTAMP=2177456
_BOOT_ID=de10f6f7c322406eb35df53b2218ed1b
PRIORITY=6
_MACHINE_ID=7725dfc225d14958a625ddaaaea5962b
_HOSTNAME=localhost.localdomain
_SOURCE_MONOTONIC_TIMESTAMP=0
_TRANSPORT=kernel
SYSLOG_IDENTIFIER=kernel
MESSAGE=Initializing cgroup subsys cpuset
  • json での出力例

{ "__CURSOR" : "s=7cf0970b1bb44465b08531345d8fa9f3;i=1;b=de10f6f7c322406eb35df53b2218ed1b;m=21392e;t=4f46652629b05;x=79feb053e18e37af", "__REALTIME_TIMESTAMP" : "1394620212878085", "__MONOTONIC_TIMESTAMP" : "2177326", "_BOOT_ID" : "de10f6f7c322406eb35df53b2218ed1b", "PRIORITY" : "6", "_TRANSPORT" : "driver", "MESSAGE" : "Allowing runtime journal files to grow to 245.7M.", "_PID" : "66", "_UID" : "0", "_GID" : "0", "_COMM" : "systemd-journal", "_EXE" : "/usr/lib/systemd/systemd-journald", "_CMDLINE" : "/usr/lib/systemd/systemd-journald", "_SYSTEMD_CGROUP" : "/system/systemd-journald.service", "_SYSTEMD_UNIT" : "systemd-journald.service", "_SELINUX_CONTEXT" : "kernel", "_MACHINE_ID" : "7725dfc225d14958a625ddaaaea5962b", "_HOSTNAME" : "localhost.localdomain" }
{ "__CURSOR" : "s=7cf0970b1bb44465b08531345d8fa9f3;i=2;b=de10f6f7c322406eb35df53b2218ed1b;m=2139b0;t=4f46652629b87;x=5512d805b7c27a94", "__REALTIME_TIMESTAMP" : "1394620212878215", "__MONOTONIC_TIMESTAMP" : "2177456", "_BOOT_ID" : "de10f6f7c322406eb35df53b2218ed1b", "PRIORITY" : "6", "_MACHINE_ID" : "7725dfc225d14958a625ddaaaea5962b", "_HOSTNAME" : "localhost.localdomain", "_SOURCE_MONOTONIC_TIMESTAMP" : "0", "_TRANSPORT" : "kernel", "SYSLOG_IDENTIFIER" : "kernel", "MESSAGE" : "Initializing cgroup subsys cpuset" }
{ "__CURSOR" : "s=7cf0970b1bb44465b08531345d8fa9f3;i=3;b=de10f6f7c322406eb35df53b2218ed1b;m=2139c8;t=4f46652629b9e;x=8db8687f57d40c13", "__REALTIME_TIMESTAMP" : "1394620212878238", "__MONOTONIC_TIMESTAMP" : "2177480", "_BOOT_ID" : "de10f6f7c322406eb35df53b2218ed1b", "PRIORITY" : "6", "_MACHINE_ID" : "7725dfc225d14958a625ddaaaea5962b", "_HOSTNAME" : "localhost.localdomain", "_SOURCE_MONOTONIC_TIMESTAMP" : "0", "_TRANSPORT" : "kernel", "SYSLOG_IDENTIFIER" : "kernel", "MESSAGE" : "Initializing cgroup subsys cpu" }
{ "__CURSOR" : "s=7cf0970b1bb44465b08531345d8fa9f3;i=4;b=de10f6f7c322406eb35df53b2218ed1b;m=2139dd;t=4f46652629bb3;x=afad3e41687089bf", "__REALTIME_TIMESTAMP" : "1394620212878259", "__MONOTONIC_TIMESTAMP" : "2177501", "_BOOT_ID" : "de10f6f7c322406eb35df53b2218ed1b", "PRIORITY" : "6", "_MACHINE_ID" : "7725dfc225d14958a625ddaaaea5962b", "_HOSTNAME" : "localhost.localdomain", "_SOURCE_MONOTONIC_TIMESTAMP" : "0", "_TRANSPORT" : "kernel", "SYSLOG_IDENTIFIER" : "kernel", "MESSAGE" : "Initializing cgroup subsys cpuacct" }
{ "__CURSOR" : "s=7cf0970b1bb44465b08531345d8fa9f3;i=5;b=de10f6f7c322406eb35df53b2218ed1b;m=2139ee;t=4f46652629bc4;x=78eecee17b32a43a", "__REALTIME_TIMESTAMP" : "1394620212878276", "__MONOTONIC_TIMESTAMP" : "2177518", "_BOOT_ID" : "de10f6f7c322406eb35df53b2218ed1b", "_MACHINE_ID" : "7725dfc225d14958a625ddaaaea5962b", "_HOSTNAME" : "localhost.localdomain", "_SOURCE_MONOTONIC_TIMESTAMP" : "0", "_TRANSPORT" : "kernel", "SYSLOG_IDENTIFIER" : "kernel", "PRIORITY" : "5", "MESSAGE" : "Linux version 3.13.5-103.fc19.x86_64 ([email protected]) (gcc version 4.8.2 20131212 (Red Hat 4.8.2-7) (GCC) ) #1 SMP Mon Mar 3 18:46:36 UTC 2014" }
  • json-pretty での出力例
{
        "__CURSOR" : "s=7cf0970b1bb44465b08531345d8fa9f3;i=1;b=de10f6f7c322406eb35df53b2218ed1b;m=21392e;t=4f46652629b05;x=79feb053e18e37af",
        "__REALTIME_TIMESTAMP" : "1394620212878085",
        "__MONOTONIC_TIMESTAMP" : "2177326",
        "_BOOT_ID" : "de10f6f7c322406eb35df53b2218ed1b",
        "PRIORITY" : "6",
        "_TRANSPORT" : "driver",
        "MESSAGE" : "Allowing runtime journal files to grow to 245.7M.",
        "_PID" : "66",
        "_UID" : "0",
        "_GID" : "0",
        "_COMM" : "systemd-journal",
        "_EXE" : "/usr/lib/systemd/systemd-journald",
        "_CMDLINE" : "/usr/lib/systemd/systemd-journald",
        "_SYSTEMD_CGROUP" : "/system/systemd-journald.service",
        "_SYSTEMD_UNIT" : "systemd-journald.service",
        "_SELINUX_CONTEXT" : "kernel",
        "_MACHINE_ID" : "7725dfc225d14958a625ddaaaea5962b",
        "_HOSTNAME" : "localhost.localdomain"
}
{
        "__CURSOR" : "s=7cf0970b1bb44465b08531345d8fa9f3;i=2;b=de10f6f7c322406eb35df53b2218ed1b;m=2139b0;t=4f46652629b87;x=5512d805b7c27a94",
        "__REALTIME_TIMESTAMP" : "1394620212878215",
        "__MONOTONIC_TIMESTAMP" : "2177456",
        "_BOOT_ID" : "de10f6f7c322406eb35df53b2218ed1b",
        "PRIORITY" : "6",
        "_MACHINE_ID" : "7725dfc225d14958a625ddaaaea5962b",
        "_HOSTNAME" : "localhost.localdomain",
        "_SOURCE_MONOTONIC_TIMESTAMP" : "0",
        "_TRANSPORT" : "kernel",
        "SYSLOG_IDENTIFIER" : "kernel",
        "MESSAGE" : "Initializing cgroup subsys cpuset"
}
  • json-sse での出力例
data: { "__CURSOR" : "s=7cf0970b1bb44465b08531345d8fa9f3;i=1;b=de10f6f7c322406eb35df53b2218ed1b;m=21392e;t=4f46652629b05;x=79feb053e18e37af", "__REALTIME_TIMESTAMP" : "1394620212878085", "__MONOTONIC_TIMESTAMP" : "2177326", "_BOOT_ID" : "de10f6f7c322406eb35df53b2218ed1b", "PRIORITY" : "6", "_TRANSPORT" : "driver", "MESSAGE" : "Allowing runtime journal files to grow to 245.7M.", "_PID" : "66", "_UID" : "0", "_GID" : "0", "_COMM" : "systemd-journal", "_EXE" : "/usr/lib/systemd/systemd-journald", "_CMDLINE" : "/usr/lib/systemd/systemd-journald", "_SYSTEMD_CGROUP" : "/system/systemd-journald.service", "_SYSTEMD_UNIT" : "systemd-journald.service", "_SELINUX_CONTEXT" : "kernel", "_MACHINE_ID" : "7725dfc225d14958a625ddaaaea5962b", "_HOSTNAME" : "localhost.localdomain"}

data: { "__CURSOR" : "s=7cf0970b1bb44465b08531345d8fa9f3;i=2;b=de10f6f7c322406eb35df53b2218ed1b;m=2139b0;t=4f46652629b87;x=5512d805b7c27a94", "__REALTIME_TIMESTAMP" : "1394620212878215", "__MONOTONIC_TIMESTAMP" : "2177456", "_BOOT_ID" : "de10f6f7c322406eb35df53b2218ed1b", "PRIORITY" : "6", "_MACHINE_ID" : "7725dfc225d14958a625ddaaaea5962b", "_HOSTNAME" : "localhost.localdomain", "_SOURCE_MONOTONIC_TIMESTAMP" : "0", "_TRANSPORT" : "kernel", "SYSLOG_IDENTIFIER" : "kernel", "MESSAGE" : "Initializing cgroup subsys cpuset"}

data: { "__CURSOR" : "s=7cf0970b1bb44465b08531345d8fa9f3;i=3;b=de10f6f7c322406eb35df53b2218ed1b;m=2139c8;t=4f46652629b9e;x=8db8687f57d40c13", "__REALTIME_TIMESTAMP" : "1394620212878238", "__MONOTONIC_TIMESTAMP" : "2177480", "_BOOT_ID" : "de10f6f7c322406eb35df53b2218ed1b", "PRIORITY" : "6", "_MACHINE_ID" : "7725dfc225d14958a625ddaaaea5962b", "_HOSTNAME" : "localhost.localdomain", "_SOURCE_MONOTONIC_TIMESTAMP" : "0", "_TRANSPORT" : "kernel", "SYSLOG_IDENTIFIER" : "kernel", "MESSAGE" : "Initializing cgroup subsys cpu"}

メッセージのカタログを表示する

メッセージにカタログに沿ったログを出力する。 ログの形式はメール(RFC822)に類似している。

$ sudo journalctl -x  # or journalctl --catalog
  • Journal Message Catalogs の出力例
3月 13 12:05:29 localhost.localdomain systemd-journal[66]: Journal started
-- Subject: The Journal has been started
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- The system journal process has been starting up, opened the journal
-- files for writing and is now ready to process requests.
 3月 13 12:05:29 localhost.localdomain systemd[1]: Started Setup Virtual Console.
-- Subject: Unit systemd-vconsole-setup.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit systemd-vconsole-setup.service has finished starting up.
--
-- The start-up result is done.

root ではない時にアクセス出来ない警告を表示しない(未検証)

試して見てるんだけど再現しない。 複数ユーザーで使っていたら判るんだろうけど。

$ journalctl -q  # or journalctl --quiet

リモートを含む全てのログを合わせる(未検証)

手元に環境が無いから試せてないけどそういう意味じゃないかな?

$ journalctl -m  # or journalctl --merge

ブートログを表示する

ブートログを表示する。デフォルトでは直近のブートログ。

$ journalctl -b  # or journalctl --this-boot

相対値での取得も可能。

$ journalctl -b 2 # 2回前のブートログの時

絶対値での取得も可能な模様(未確認)

$ journalctl -b _BOOT_ID=xxxxx  # ブートIDで絶対値取得できるらしい

ユニットを指定してログを表示する

指定したユニットのログを表示します。

$ journalctl -u ユニット名  # or journalctl --unit=ユニット名

firewall のログを取得する例

$ journalctl -u firewalld.service  # or journalctl --unit=firewalld.service

ちなみに、ユニットのリストは systemctl で取得可能。 全ての情報を取得する例。

$ systemctl -a # systemctl --all

$ systemctl -t service # systemctl --type=service # service だけ取得する例

少しづつ確かめて書き足して行こうっと

コメント・トラックバック

  1. […] systemd のログを確認する journalctl […]

  2. […] ※参考 systemd のログを確認する journalctl […]

ページの先頭へ ↑