如何查看較舊的 journalctl 日誌(可能在輪換之後?)
我在 ubuntu 16.04 上執行 docker 並想查看日誌。但是,在我猜測是某種輪換或日誌增長到一定大小之後,我無法查看日誌。
我沒有對 journald.conf 進行任何更改,所以我在那裡使用預設值。有容器在執行,所以 docker log 輸出了相當多的數據。
我所看到的範例:
systemctl docker status
確認服務已啟動:since Thu 2016-10-13 18:56:28 UTC
但是,當我執行類似:
journalctl -u docker.service --since "2016-10-13 22:00"
我得到的唯一輸出是:
-- Logs begin at Fri 2016-10-14 01:18:49 UTC, end at Fri 2016-10-14 16:18:25 UTC. --
我可以按預期查看該範圍內的日誌。
我的問題是:為什麼我不能使用 journalctl 查看舊日誌,如何解決這個問題以便查看日誌?
發生這種情況的原因是儲存的日誌文件大小的預設值。文件中有更多關於此的詳細資訊。值得閱讀我連結到的整個部分,但預設設置如下:
journald will use 10% of the disk or 4G, whichever is smaller. journald will leave free 15% of the disk or 4G, whichever is larger.
要查看上次啟動的日誌,假設您
Storage=persistent
在 journald.conf 中,如其他答案所述,您可以使用命令上的--boot=-1
標誌journalctl
來獲取上次啟動的日誌。在他們確定主機沒有重新啟動的 OP 的情況下,日誌失去只是由
SystemMaxUse
和/或SystemKeepFree
預設值引起的。注意:我是 OP,這個問題仍然有很多人讚成,所以因為我在 journald(和 rtfm)方面獲得了更多經驗,所以我在這裡發布這個,希望它可以幫助其他人。
這可能是因為您試圖查看自上次啟動以來的日誌,這似乎是 docker 映像中的情況。
在 Ubuntu 16.04 上,日誌儲存預設為記憶體。
/etc/systemd/journald.conf
您可以通過打開並將Storage=
行從更改為auto
來將預設值更改為持久persistent
。您可能需要systemctl restart systemd-journald
在配置文件編輯後重新啟動 journald by。我認為日誌應該是預設持久的,所以我打開了一個關於這個的錯誤。