'\" t .TH "JOURNALD\&.CONF" "5" "" "systemd 231" "journald.conf" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" journald.conf, journald.conf.d \- 日誌服務配置文件 .SH "SYNOPSIS" .PP /etc/systemd/journald\&.conf .PP /etc/systemd/journald\&.conf\&.d/*\&.conf .PP /run/systemd/journald\&.conf\&.d/*\&.conf .PP /usr/lib/systemd/journald\&.conf\&.d/*\&.conf .SH "描述" .PP 這些文件用於配置系統日誌服務 \fBsystemd-journald.service\fR(8) 的行爲。 .SH "配置目錄及其優先級" .PP 默認設置是在編譯期間確定的, 所以僅在確實需要修改默認設置的情況下, 才需要使用配置文件。位於 /etc/systemd/ 目錄中的初始配置文件, 僅包含了展示選項默認值的註釋, 目的在於方便系統管理員查看和直接修改。 .PP 如果軟件包想要自定義某些默認設置, 那麼必須將自定義的配置文件安裝到 /usr/lib/systemd/*\&.conf\&.d/ 目錄中。 /etc/ 目錄僅供系統管理員使用。 系統管理員可以利用下面的邏輯來覆蓋默認設置: 主配置文件最先被讀取, 優先級也最低。 所有 *\&.conf\&.d/ 中的配置文件 都會覆蓋主配置文件中的設置。 所有 *\&.conf\&.d/ 中的配置文件(無論位於哪個目錄中), 統一按照文件名的字典順序處理。 如果在多個配置文件中設置了同一個選項, 那麼僅以文件名最靠後(字典順序)的那一個爲準。 爲了便於排序, 建議給所有 *\&.conf\&.d/ 中的配置文件 都加上兩位十進制數字的文件名前綴。 .PP 如果系統管理員想要屏蔽 /usr/lib/ 目錄中的某個配置文件, 那麼最佳做法是在 /etc/ 目錄中 創建一個指向 /dev/null 的同名符號鏈接, 即可徹底屏蔽 /usr/lib/ 目錄中的同名文件。 .SH "選項" .PP 所有選項都位於 "[Journal]" 小節: .PP \fIStorage=\fR .RS 4 在哪裏存儲日誌文件: "volatile" 表示僅保存在內存中, 也就是僅保存在 /run/log/journal 目錄中(將會被自動按需創建)。 "persistent" 表示優先保存在磁盤上, 也就優先保存在 /var/log/journal 目錄中(將會被自動按需創建), 但若失敗(例如在系統啓動早期"/var"尚未掛載), 則轉而保存在 /run/log/journal 目錄中(將會被自動按需創建)。 "auto"(默認值) 與 "persistent" 類似, 但不自動創建 /var/log/journal 目錄, 因此可以根據該目錄的存在與否決定日誌的保存位置。 "none" 表示不保存任何日誌(直接丟棄所有收集到的日誌), 但日誌轉發(見下文)不受影響。 默認值是 "auto" .RE .PP \fICompress=\fR .RS 4 默認值"yes"表示: 壓縮存儲大於特定閾值的對象。 .RE .PP \fISeal=\fR .RS 4 默認值"yes"表示:如果存在一個"sealing key"(由 \fBjournalctl\fR(1) 的 \fB\-\-setup\-keys\fR 命令創建), 那麼就爲所有持久保存的日誌文件啓用 FSS(\m[blue]\fBSeekable Sequential Key Generators\fR\m[]\&\s-2\u[1]\d\s+2)保護, 以避免日誌文件被惡意或無意的修改。 .RE .PP \fISplitMode=\fR .RS 4 設置如何按用戶分割日誌文件,以實現不同的訪問控制策略(日誌守護進程會確保每個用戶都能讀取自己的日誌文件)。 注意,僅分割持久保存的日誌(/var/log/journal),永不分割內存中的日誌(/run/log/journal)。 可以使用的分割策略如下: "uid" 表示每個用戶都有自己專屬的日誌文件(無論該用戶是否擁有登錄會話), 但系統用戶的日誌依然記錄到系統日誌中。這是默認值。 "none" 表示不對日誌文件進行分割,而是將所有日誌都記錄到系統日誌中。 這意味着非特權用戶根本無法讀取屬於自己的日誌信息。 .RE .PP \fIRateLimitIntervalSec=\fR, \fIRateLimitBurst=\fR .RS 4 用於限制日誌的生成速度(設爲零表示不作限制)。 \fIRateLimitIntervalSec=\fR 用於設置一個時間段長度,默認值是30秒。 \fIRateLimitBurst=\fR 用於設置一個正整數,表示消息條數,默認值是1000條。 表示在 \fIRateLimitIntervalSec=\fR 時間段內, 每個服務最多允許產生 \fIRateLimitBurst=\fR 數量(條數)的日誌。 在同一個時間段內,超出數量限制的日誌將被丟棄,直到下一個時間段才能再次開始記錄。 對於所有被丟棄的日誌消息,僅用一條類似"xxx條消息被丟棄"的消息來代替。 這個限制是針對每個服務的限制,一個服務超限並不會影響到另一個服務的日誌記錄。 \fIRateLimitIntervalSec=\fR 可以使用下面的時間單位:"ms", "s", "min", "h", "d" .RE .PP \fISystemMaxUse=\fR, \fISystemKeepFree=\fR, \fISystemMaxFileSize=\fR, \fISystemMaxFiles=\fR, \fIRuntimeMaxUse=\fR, \fIRuntimeKeepFree=\fR, \fIRuntimeMaxFileSize=\fR, \fIRuntimeMaxFiles=\fR .RS 4 限制日誌文件的大小上限。 以 "System" 開頭的選項用於限制磁盤使用量, 也就是 /var/log/journal 的使用量。 以 "Runtime" 開頭的選項用於限制內存使用量, 也就是 /run/log/journal 的使用量。 以 "System" 開頭的選項僅在 /var/log/journal 目錄確實存在且可寫時纔有意義。 但以 "Runtime" 開頭的選項永遠有意義。 也就是說, 在系統啓動早期 /var 尚未掛載時、 或者系統管理員禁止在磁盤上存儲日誌的時候, 僅有 "Runtime" 開頭的選項有意義。 \fBjournalctl\fR 與 \fBsystemd\-journald\fR 工具會忽略日誌目錄中 所有後綴名不等於 "\&.journal" 或 "\&.journal~" 的文件。 換句話說, 日誌目錄中不應該存在後綴名不等於 "\&.journal" 或 "\&.journal~" 的文件, 因爲這些文件永遠不會被清理。 .sp \fISystemMaxUse=\fR 與 \fIRuntimeMaxUse=\fR 限制全部日誌文件加在一起最多可以佔用多少空間。 \fISystemKeepFree=\fR 與 \fIRuntimeKeepFree=\fR 表示除日誌文件之外,至少保留多少空間給其他用途。 \fBsystemd\-journald\fR 會同時考慮這兩個因素, 並且儘量限制日誌文件的總大小,以同時滿足這兩個限制。 .sp \fISystemMaxUse=\fR 與 \fIRuntimeMaxUse=\fR 的默認值是10%空間與4G空間兩者中的較小者; \fISystemKeepFree=\fR 與 \fIRuntimeKeepFree=\fR 的默認值是15%空間與4G空間兩者中的較大者; 如果在 systemd\-journald 啓動時, 文件系統即將被填滿並且已經超越了 \fISystemKeepFree=\fR 或 \fIRuntimeKeepFree=\fR 的限制,那麼日誌記錄將被暫停。 也就是說,如果在創建日誌文件時,文件系統有充足的空閒空間, 但是後來文件系統被其他非日誌文件過多佔用, 那麼 systemd\-journald 只會立即暫停日誌記錄, 但不會刪除已經存在的日誌文件。 .sp \fISystemMaxFileSize=\fR 與 \fIRuntimeMaxFileSize=\fR 限制單個日誌文件的最大體積, 到達此限制後日志文件將會自動滾動。 默認值是對應的 \fISystemMaxUse=\fR 與 \fIRuntimeMaxUse=\fR 值的1/8 , 這也意味着日誌滾動默認保留7個歷史文件。 .sp 日誌大小的值可以使用以1024爲基數的 K, M, G, T, P, E 後綴, 分別對應於 1024, 1024\(S2, \&.\&.\&. 字節。 .sp \fISystemMaxFiles=\fR 與 \fIRuntimeMaxFiles=\fR 限制最多允許同時存在多少個日誌文件, 超出此限制後, 最老的日誌文件將被刪除, 而當前的活動日誌文件則不受影響。 默認值爲100個。 .RE .PP \fIMaxFileSec=\fR .RS 4 日誌滾動的時間間隔。 通常並不需要使用基於時間的日誌滾動策略, 因爲由 \fISystemMaxFileSize=\fR 與 \fIRuntimeMaxFileSize=\fR 控制的基於文件大小的日誌滾動策略 已經可以確保日誌文件的大小不會超標。 默認值是一個月, 設爲零表示禁用基於時間的日誌滾動策略。 可以使用 "year", "month", "week", "day", "h", "m" 時間後綴, 若不使用後綴則表示以秒爲單位。 .RE .PP \fIMaxRetentionSec=\fR .RS 4 日誌文件的最大保留期限。 當日志文件的最後修改時間超過此期限後將被刪除。 默認值零表示不使用基於時間的日誌刪除策略。 通常並不需要使用基於時間的日誌刪除策略,因爲由 \fISystemMaxUse=\fR 與 \fIRuntimeMaxUse=\fR 控制的基於文件大小的日誌滾動策略 已經可以確保日誌文件的大小不會超標。 可以使用 "year", "month", "week", "day", "h", "m" 時間後綴, 若不使用後綴則表示以秒爲單位。 .RE .PP \fISyncIntervalSec=\fR .RS 4 向磁盤刷寫日誌文件的時間間隔,默認值是五分鐘。 刷寫之後,日誌文件將會處於離線(OFFLINE)狀態。 注意,當接收到 CRIT, ALERT, EMERG 級別的日誌消息後, 將會無條件的立即刷寫日誌文件。 因此該設置僅對 ERR, WARNING, NOTICE, INFO, DEBUG 級別的日誌消息有意義。 .RE .PP \fIForwardToSyslog=\fR, \fIForwardToKMsg=\fR, \fIForwardToConsole=\fR, \fIForwardToWall=\fR .RS 4 \fIForwardToSyslog=\fR 表示是否將接收到的日誌消息轉發給傳統的 \m[blue]\fBsyslog\fR\m[]\&\s-2\u[2]\d\s+2 守護進程,默認值爲"no"。 如果設爲"yes",但是沒有任何進程監聽對應的套接字,那麼這種轉發是無意義的。 此選項可以被內核引導選項 "systemd\&.journald\&.forward_to_syslog=" 覆蓋。 \fIForwardToKMsg=\fR 表示是否將接收到的日誌消息轉發給內核日誌緩衝區(kmsg),默認值爲"no"。 此選項可以被內核引導選項 "systemd\&.journald\&.forward_to_kmsg=" 覆蓋。 \fIForwardToConsole=\fR 表示是否將接收到的日誌消息轉發給系統控制檯,默認值爲"no"。 如果設爲"yes",那麼可以通過下面的 \fITTYPath=\fR 指定轉發目標。 此選項可以被內核引導選項 "systemd\&.journald\&.forward_to_console=" 覆蓋。 \fIForwardToWall=\fR 表示是否將接收到的日誌消息作爲警告信息發送給所有已登錄用戶,默認值爲"yes"。 此選項可以被內核引導選項 "systemd\&.journald\&.forward_to_wall=" 覆蓋。 .RE .PP \fIMaxLevelStore=\fR, \fIMaxLevelSyslog=\fR, \fIMaxLevelKMsg=\fR, \fIMaxLevelConsole=\fR, \fIMaxLevelWall=\fR .RS 4 \fIMaxLevelStore=\fR 設置記錄到日誌文件中的最高日誌等級,默認值爲"debug"; \fIMaxLevelSyslog=\fR 設置轉發給傳統的 \m[blue]\fBsyslog\fR\m[]\&\s-2\u[2]\d\s+2 守護進程的最高日誌等級,默認值爲"debug"; \fIMaxLevelKMsg=\fR 設置轉發給內核日誌緩衝區(kmsg)的最高日誌等級,默認值爲"notice"; \fIMaxLevelConsole=\fR 設置轉發給系統控制檯的最高日誌等級,默認值爲"info"; \fIMaxLevelWall=\fR 設置作爲警告信息發送給所有已登錄用戶的最高日誌等級,默認值爲"emerg"; 這些選項既可以設爲日誌等級的名稱, 也可以設爲日誌等級對應的數字: "emerg"(0), "alert"(1), "crit"(2), "err"(3), "warning"(4), "notice"(5), "info"(6), "debug"(7) 。 所有高於設定等級的日誌消息都將被直接丟棄, 僅保存/轉發小於等於設定等級的日誌消息。 .RE .PP \fITTYPath=\fR .RS 4 指定 \fIForwardToConsole=yes\fR 時所使用的控制檯TTY, 默認值是 /dev/console .RE .SH "日誌轉發" .PP 有兩種不同的日誌轉發方法: (1)通過套接字文件(/run/systemd/journal/syslog) 可以將收集到的日誌消息 立即轉發給套接字的監聽進程(傳統的 \m[blue]\fBsyslog\fR\m[]\&\s-2\u[2]\d\s+2 守護進程)。 此方法受 \fIForwardToSyslog=\fR 指令的控制。 (2)日誌接收進程作爲客戶端運行,就像 \fBjournalctl\fR(1) 一樣讀取日誌文件。 因此,此方法在 \fIStorage=none\fR 時無效。 此方法不能實時讀取日誌消息, 但是可以讀取先前保存的日誌消息(例如在系統啓動完成之後讀取系統啓動早期的日誌消息)。 此方法還可以讀取到完整的日誌元數據。 此方法一般無法讀取當前最新的日誌消息, 只能讀取已經被記錄到文件系統上的日誌消息。 注意,\m[blue]\fBsyslog\fR\m[]\&\s-2\u[2]\d\s+2 守護進程通常使用此方法(而不是前一種方法), 因此 \fIStorage=\fR 選項(而不是 \fIForwardToSyslog=\fR 選項) 不應該設爲"none"。 .SH "參見" .PP \fBsystemd\fR(1), \fBsystemd-journald.service\fR(8), \fBjournalctl\fR(1), \fBsystemd.journal-fields\fR(7), \fBsystemd-system.conf\fR(5) .SH "NOTES" .IP " 1." 4 Seekable Sequential Key Generators .RS 4 \%https://eprint.iacr.org/2013/397 .RE .IP " 2." 4 syslog .RS 4 \%//linux/sysklogd.html .RE .SH "跋" .br 本頁面中文版由中文 man 手冊頁計劃提供。 .PP 翻譯人員:金步國 .br 金步國作品集:http://www.jinbuguo.com .br .br 中文 man 手冊頁計劃:\fBhttps://github.com/man-pages-zh/manpages-zh\fR