systemd のログを確認する journalctl
Contents
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 (mockbuild@bkernel01.phx2.fedoraproject.org) (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 だけ取得する例
少しづつ確かめて書き足して行こうっと
ディスカッション
ピンバック & トラックバック一覧
[…] ※参考 systemd のログを確認する journalctl […]
[…] systemd のログを確認する journalctl […]