/var/log/secure
やら/var/log/message
やらが結構昔からログ吐かれていなかった。 systemd-journaldの様子を見てみると生きてるっぽいけど、謎の警告がでている。
systemctl status systemd-journald * systemd-journald.service - Journal Service Loaded: loaded (/usr/lib/systemd/system/systemd-journald.service; static; vendor preset: disabled) Active: active (running) since Wed 2016-09-14 16:21:34 JST; 1 years 7 months ago Docs: man:systemd-journald.service(8) man:journald.conf(5) Main PID: 335 (systemd-journal) Status: "Processing requests..." CGroup: /system.slice/systemd-journald.service `-335 /usr/lib/systemd/systemd-journald Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.警告メッセージでググると、
/etc/machine-id
を作り直して再起動とか、/var/log/journal/xxxx/*
なファイルを消すとかjournalctl --verify
を確認してみるとかでてくるけど、どれもピンとこない。 dmesg | grep journal [ 2.079626] systemd-journald[89]: Received SIGTERM from PID 1 (systemd). [ 2.401504] systemd-journald[335]: Received request to flush runtime journal from PID 1 [25819418.741189] systemd-journald[335]: Failed to create new runtime journal: No space left on device
dmesg
を確認すると、ディスク容量がないというそれっぽいログが出ていて、uptime
と突き合わせてもログが吐かれなくなったタイミングと一致している。 ディスクが一杯になったことはないはずなのだけれど、確認してみると/run
にはディスク (/dev/vda3
)とは別にtmpfsがマウントされていて、それが99%になっていた。 systemd-journald(8) によると、
By default, the journal stores log data in /run/log/journal/. Since /run/ is volatile, log data is lost at reboot. To make the data persistent, it is sufficient to create /var/log/journal/ where systemd-journald will then store the data:ということで、
mkdir /var/log/journal
さえすれば/run
の下は見なくなる。実際、そうすることでリブートすることなく
systemd-journald
を再起動できた。エラーメッセージが分かりにくいし、特定ディレクトリの有無だけで設定ファイルに関係なく挙動が変わるのも違和感がすごい。
コメント
コメントを投稿