Ubuntu

如何查看較舊的 journalctl 日誌(可能在輪換之後?)

  • May 19, 2020

我在 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。

我認為日誌應該是預設持久的,所以我打開了一個關於這個的錯誤。

引用自:https://serverfault.com/questions/809093