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