JOURNALD.CONF(5) | journald.conf | JOURNALD.CONF(5) |
journald.conf, journald.conf.d - 日誌服務配置檔案
/etc/systemd/journald.conf
/etc/systemd/journald.conf.d/*.conf
/run/systemd/journald.conf.d/*.conf
/usr/lib/systemd/journald.conf.d/*.conf
這些檔案用於配置系統日誌服務 systemd-journald.service(8) 的行為。
預設設定是在編譯期間確定的, 所以僅在確實需要修改預設設定的情況下, 才需要使用配置檔案。位於 /etc/systemd/ 目錄中的初始配置檔案, 僅包含了展示選項預設值的註釋, 目的在於方便系統管理員檢視和直接修改。
如果軟體包想要自定義某些預設設定, 那麼必須將自定義的配置檔案安裝到 /usr/lib/systemd/*.conf.d/ 目錄中。 /etc/ 目錄僅供系統管理員使用。 系統管理員可以利用下面的邏輯來覆蓋預設設定: 主配置檔案最先被讀取, 優先順序也最低。 所有 *.conf.d/ 中的配置檔案 都會覆蓋主配置檔案中的設定。 所有 *.conf.d/ 中的配置檔案(無論位於哪個目錄中), 統一按照檔名的字典順序處理。 如果在多個配置檔案中設定了同一個選項, 那麼僅以檔名最靠後(字典順序)的那一個為準。 為了便於排序, 建議給所有 *.conf.d/ 中的配置檔案 都加上兩位十進位制數字的檔名字首。
如果系統管理員想要遮蔽 /usr/lib/ 目錄中的某個配置檔案, 那麼最佳做法是在 /etc/ 目錄中 建立一個指向 /dev/null 的同名符號連結, 即可徹底遮蔽 /usr/lib/ 目錄中的同名檔案。
所有選項都位於 "[Journal]" 小節:
Storage=
Compress=
Seal=
SplitMode=
"none" 表示不對日誌檔案進行分割,而是將所有日誌都記錄到系統日誌中。 這意味著非特權使用者根本無法讀取屬於自己的日誌資訊。
RateLimitIntervalSec=, RateLimitBurst=
SystemMaxUse=, SystemKeepFree=, SystemMaxFileSize=, SystemMaxFiles=, RuntimeMaxUse=, RuntimeKeepFree=, RuntimeMaxFileSize=, RuntimeMaxFiles=
SystemMaxUse= 與 RuntimeMaxUse= 限制全部日誌檔案加在一起最多可以佔用多少空間。 SystemKeepFree= 與 RuntimeKeepFree= 表示除日誌檔案之外,至少保留多少空間給其他用途。 systemd-journald 會同時考慮這兩個因素, 並且儘量限制日誌檔案的總大小,以同時滿足這兩個限制。
SystemMaxUse= 與 RuntimeMaxUse= 的預設值是10%空間與4G空間兩者中的較小者; SystemKeepFree= 與 RuntimeKeepFree= 的預設值是15%空間與4G空間兩者中的較大者; 如果在 systemd-journald 啟動時, 檔案系統即將被填滿並且已經超越了 SystemKeepFree= 或 RuntimeKeepFree= 的限制,那麼日誌記錄將被暫停。 也就是說,如果在建立日誌檔案時,檔案系統有充足的空閒空間, 但是後來檔案系統被其他非日誌檔案過多佔用, 那麼 systemd-journald 只會立即暫停日誌記錄, 但不會刪除已經存在的日誌檔案。
SystemMaxFileSize= 與 RuntimeMaxFileSize= 限制單個日誌檔案的最大體積, 到達此限制後日志文件將會自動滾動。 預設值是對應的 SystemMaxUse= 與 RuntimeMaxUse= 值的1/8 , 這也意味著日誌滾動預設保留7個歷史檔案。
日誌大小的值可以使用以1024為基數的 K, M, G, T, P, E 字尾, 分別對應於 1024, 1024², ... 位元組。
SystemMaxFiles= 與 RuntimeMaxFiles= 限制最多允許同時存在多少個日誌檔案, 超出此限制後, 最老的日誌檔案將被刪除, 而當前的活動日誌檔案則不受影響。 預設值為100個。
MaxFileSec=
MaxRetentionSec=
SyncIntervalSec=
ForwardToSyslog=, ForwardToKMsg=, ForwardToConsole=, ForwardToWall=
MaxLevelStore=, MaxLevelSyslog=, MaxLevelKMsg=, MaxLevelConsole=, MaxLevelWall=
TTYPath=
有兩種不同的日誌轉發方法: (1)透過套接字檔案(/run/systemd/journal/syslog) 可以將收集到的日誌訊息 立即轉發給套接字的監聽程序(傳統的 syslog[2] 守護程序)。 此方法受 ForwardToSyslog= 指令的控制。 (2)日誌接收程序作為客戶端執行,就像 journalctl(1) 一樣讀取日誌檔案。 因此,此方法在 Storage=none 時無效。 此方法不能實時讀取日誌訊息, 但是可以讀取先前儲存的日誌訊息(例如在系統啟動完成之後讀取系統啟動早期的日誌訊息)。 此方法還可以讀取到完整的日誌元資料。 此方法一般無法讀取當前最新的日誌訊息, 只能讀取已經被記錄到檔案系統上的日誌訊息。 注意,syslog[2] 守護程序通常使用此方法(而不是前一種方法), 因此 Storage= 選項(而不是 ForwardToSyslog= 選項) 不應該設為"none"。
systemd(1), systemd-journald.service(8), journalctl(1), systemd.journal-fields(7), systemd-system.conf(5)
本頁面中文版由中文 man 手冊頁計劃提供。
翻譯人員:金步國
金步國作品集:http://www.jinbuguo.com
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
systemd 231 |