LoginSignup
1

More than 5 years have passed since last update.

systemd-nspawnのログ連携

Posted at

systemd-nspawn Advent Calendar 2017 9日目の記事です。

systemd-nspawnでは--link-journal=オプションによってjournaldの制御が可能です

これによって、ホスト側からコンテナをジャーナルログを見れたりします。
以下のうちどれかを指定します

  • "no" => journalはリンクしない
  • "host" => ホスト側にjournalログを置く
  • "guest" => ゲスト側にjournalログを置く
  • "try-host" => hostと同じだけどログディレクトリ(/var/log/journal)が無くても失敗しない
  • "try-guest" => guestと同じだけどログディレクトリ(/var/log/journal)が無くても失敗しない
  • "auto" => /var/log/journalの中にコンテナIDに対応するディレクトリがあれば使う

ちょっと分かりにくいかと思いますので以下にまとめました

link-journalの指定 ログの実体
no リンクしない
host host側の/var/log/journal/machine-id
guest guest側の/var/log/journal/machine-id
try-host host側の/var/log/journal/machine-id
try-guest guest側の/var/log/journal/machine-id
auto 前回と同じ

"try-host", "try-guest"はhost側に/var/log/journalがなくても下のようなエラーにならずに進めてくれます

Failed to symlink /var/lib/machines/./ubuntu/var/log/journal/e60dfec6da884e6eafc17391c925fb23 to /var/log/journal/e60dfec6da884e6eafc17391c925fb23: No such file or directory

"auto"もその挙動なのですが、前回が"host"ならhost側に置くように、前回が"guest"ならguest側に置くように計らってくれます
またmachine-idに対応するディレクトリが無ければ何もしません

なおどのオプションでもホストからjournalctl -M コンテナ名とすればコンテナ内部のログは見れます

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1