Manpages

NAME

journald.conf, journald.conf.d - 日 誌 服 務 配 置 文 件

SYNOPSIS

/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= 在 哪 裏 存 儲 日 誌 文 件 : "volatile" 表 示 僅 保 存 在 內 存 中 , 也 就 是 僅 保 存 在 /run/log/journal 目 錄 中 (將 會 被 自 動 按 需 創 建 )。 "persistent" 表 示 優 先 保 存 在 磁 盤 上 , 也 就 優 先 保 存 在 /var/log/journal 目 錄 中 (將 會 被 自 動 按 需 創 建 ), 但 若 失 敗 (例 如 在 系 統 啓 動 早 期 "/var"尚 未 掛 載 ), 則 轉 而 保 存 在 /run/log/journal 目 錄 中 (將 會 被 自 動 按 需 創 建 )。 "auto"(默 認 值 ) 與 "persistent" 類 似 , 但 不 自 動 創 建 /var/log/journal 目 錄 , 因 此 可 以 根 據 該 目 錄 的 存 在 與 否 決 定 日 誌 的 保 存 位 置 。 "none" 表 示 不 保 存 任 何 日 誌 (直 接 丟 棄 所 有 收 集 到 的 日 誌 ), 但 日 誌 轉 發 (見 下 文 )不 受 影 響 。 默 認 值 是 "auto"

Compress= 默 認 值 "yes"表 示 : 壓 縮 存 儲 大 於 特 定 閾 值 的 對 象 。

Seal= 默 認 值 "yes"表 示 : 如 果 存 在 一 個 "sealing key"(由 journalctl(1)--setup-keys 命 令 創 建 ), 那 麼 就 爲 所 有 持 久 保 存 的 日 誌 文 件 啓 用 FSS(Seekable Sequential Key Generators [1] )保 護 , 以 避 免 日 誌 文 件 被 惡 意 或 無 意 的 修 改 。

SplitMode= 設 置 如 何 按 用 戶 分 割 日 誌 文 件 , 以 實 現 不 同 的 訪 問 控 制 策 略 (日 誌 守 護 進 程 會 確 保 每 個 用 戶 都 能 讀 取 自 己 的 日 誌 文 件 )。 注 意 , 僅 分 割 持 久 保 存 的 日 誌 (/var/log/journal), 永 不 分 割 內 存 中 的 日 誌 (/run/log/journal)。 可 以 使 用 的 分 割 策 略 如 下 : "uid" 表 示 每 個 用 戶 都 有 自 己 專 屬 的 日 誌 文 件 (無 論 該 用 戶 是 否 擁 有 登 錄 會 話 ), 但 系 統 用 戶 的 日 誌 依 然 記 錄 到 系 統 日 誌 中 。 這 是 默 認 值 。

"none" 表 示 不 對 日 誌 文 件 進 行 分 割 , 而 是 將 所 有 日 誌 都 記 錄 到 系 統 日 誌 中 。 這 意 味 着 非 特 權 用 戶 根 本 無 法 讀 取 屬 於 自 己 的 日 誌 信 息 。

RateLimitIntervalSec=, RateLimitBurst= 用 於 限 制 日 誌 的 生 成 速 度 (設 爲 零 表 示 不 作 限 制 )。 RateLimitIntervalSec= 用 於 設 置 一 個 時 間 段 長 度 , 默 認 值 是 30秒 。 RateLimitBurst= 用 於 設 置 一 個 正 整 數 , 表 示 消 息 條 數 , 默 認 值 是 1000條 。 表 示 在 RateLimitIntervalSec= 時 間 段 內 , 每 個 服 務 最 多 允 許 產 生 RateLimitBurst= 數 量 (條 數 )的 日 誌 。 在 同 一 個 時 間 段 內 , 超 出 數 量 限 制 的 日 誌 將 被 丟 棄 , 直 到 下 一 個 時 間 段 才 能 再 次 開 始 記 錄 。 對 於 所 有 被 丟 棄 的 日 誌 消 息 , 僅 用 一 條 類 似 "xxx條 消 息 被 丟 棄 "的 消 息 來 代 替 。 這 個 限 制 是 針 對 每 個 服 務 的 限 制 , 一 個 服 務 超 限 並 不 會 影 響 到 另 一 個 服 務 的 日 誌 記 錄 。 RateLimitIntervalSec= 可 以 使 用 下 面 的 時 間 單 位 : "ms", "s", "min", "h", "d"

SystemMaxUse=, SystemKeepFree=, SystemMaxFileSize=, SystemMaxFiles=, RuntimeMaxUse=, RuntimeKeepFree=, RuntimeMaxFileSize=, RuntimeMaxFiles= 限 制 日 誌 文 件 的 大 小 上 限 。 以 "System" 開 頭 的 選 項 用 於 限 制 磁 盤 使 用 量 , 也 就 是 /var/log/journal 的 使 用 量 。 以 "Runtime" 開 頭 的 選 項 用 於 限 制 內 存 使 用 量 , 也 就 是 /run/log/journal 的 使 用 量 。 以 "System" 開 頭 的 選 項 僅 在 /var/log/journal 目 錄 確 實 存 在 且 可 寫 時 纔 有 意 義 。 但 以 "Runtime" 開 頭 的 選 項 永 遠 有 意 義 。 也 就 是 說 , 在 系 統 啓 動 早 期 /var 尚 未 掛 載 時 、 或 者 系 統 管 理 員 禁 止 在 磁 盤 上 存 儲 日 誌 的 時 候 , 僅 有 "Runtime" 開 頭 的 選 項 有 意 義 。 journalctlsystemd-journald 工 具 會 忽 略 日 誌 目 錄 中 所 有 後 綴 名 不 等 於 ".journal" 或 ".journal~" 的 文 件 。 換 句 話 說 , 日 誌 目 錄 中 不 應 該 存 在 後 綴 名 不 等 於 ".journal" 或 ".journal~" 的 文 件 , 因 爲 這 些 文 件 永 遠 不 會 被 清 理 。

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= 日 誌 滾 動 的 時 間 間 隔 。 通 常 並 不 需 要 使 用 基 於 時 間 的 日 誌 滾 動 策 略 , 因 爲 由 SystemMaxFileSize=RuntimeMaxFileSize= 控 制 的 基 於 文 件 大 小 的 日 誌 滾 動 策 略 已 經 可 以 確 保 日 誌 文 件 的 大 小 不 會 超 標 。 默 認 值 是 一 個 月 , 設 爲 零 表 示 禁 用 基 於 時 間 的 日 誌 滾 動 策 略 。 可 以 使 用 "year", "month", "week", "day", "h", "m" 時 間 後 綴 , 若 不 使 用 後 綴 則 表 示 以 秒 爲 單 位 。

MaxRetentionSec= 日 誌 文 件 的 最 大 保 留 期 限 。 當 日 志 文 件 的 最 後 修 改 時 間 超 過 此 期 限 後 將 被 刪 除 。 默 認 值 零 表 示 不 使 用 基 於 時 間 的 日 誌 刪 除 策 略 。 通 常 並 不 需 要 使 用 基 於 時 間 的 日 誌 刪 除 策 略 , 因 爲 由 SystemMaxUse=RuntimeMaxUse= 控 制 的 基 於 文 件 大 小 的 日 誌 滾 動 策 略 已 經 可 以 確 保 日 誌 文 件 的 大 小 不 會 超 標 。 可 以 使 用 "year", "month", "week", "day", "h", "m" 時 間 後 綴 , 若 不 使 用 後 綴 則 表 示 以 秒 爲 單 位 。

SyncIntervalSec= 向 磁 盤 刷 寫 日 誌 文 件 的 時 間 間 隔 , 默 認 值 是 五 分 鐘 。 刷 寫 之 後 , 日 誌 文 件 將 會 處 於 離 線 (OFFLINE)狀 態 。 注 意 , 當 接 收 到 CRIT, ALERT, EMERG 級 別 的 日 誌 消 息 後 , 將 會 無 條 件 的 立 即 刷 寫 日 誌 文 件 。 因 此 該 設 置 僅 對 ERR, WARNING, NOTICE, INFO, DEBUG 級 別 的 日 誌 消 息 有 意 義 。

ForwardToSyslog=, ForwardToKMsg=, ForwardToConsole=, ForwardToWall=

ForwardToSyslog= 表 示 是 否 將 接 收 到 的 日 誌 消 息 轉 發 給 傳 統 的 syslog [2] 守 護 進 程 , 默 認 值 爲 "no"。 如 果 設 爲 "yes", 但 是 沒 有 任 何 進 程 監 聽 對 應 的 套 接 字 , 那 麼 這 種 轉 發 是 無 意 義 的 。 此 選 項 可 以 被 內 核 引 導 選 項 "systemd.journald.forward_to_syslog=" 覆 蓋 。 ForwardToKMsg= 表 示 是 否 將 接 收 到 的 日 誌 消 息 轉 發 給 內 核 日 誌 緩 衝 區 (kmsg), 默 認 值 爲 "no"。 此 選 項 可 以 被 內 核 引 導 選 項 "systemd.journald.forward_to_kmsg=" 覆 蓋 。 ForwardToConsole= 表 示 是 否 將 接 收 到 的 日 誌 消 息 轉 發 給 系 統 控 制 檯 , 默 認 值 爲 "no"。 如 果 設 爲 "yes", 那 麼 可 以 通 過 下 面 的 TTYPath= 指 定 轉 發 目 標 。 此 選 項 可 以 被 內 核 引 導 選 項 "systemd.journald.forward_to_console=" 覆 蓋 。 ForwardToWall= 表 示 是 否 將 接 收 到 的 日 誌 消 息 作 爲 警 告 信 息 發 送 給 所 有 已 登 錄 用 戶 , 默 認 值 爲 "yes"。 此 選 項 可 以 被 內 核 引 導 選 項 "systemd.journald.forward_to_wall=" 覆 蓋 。

MaxLevelStore=, MaxLevelSyslog=, MaxLevelKMsg=, MaxLevelConsole=, MaxLevelWall=

MaxLevelStore= 設 置 記 錄 到 日 誌 文 件 中 的 最 高 日 誌 等 級 , 默 認 值 爲 "debug"; MaxLevelSyslog= 設 置 轉 發 給 傳 統 的 syslog [2] 守 護 進 程 的 最 高 日 誌 等 級 , 默 認 值 爲 "debug"; MaxLevelKMsg= 設 置 轉 發 給 內 核 日 誌 緩 衝 區 (kmsg)的 最 高 日 誌 等 級 , 默 認 值 爲 "notice"; MaxLevelConsole= 設 置 轉 發 給 系 統 控 制 檯 的 最 高 日 誌 等 級 , 默 認 值 爲 "info"; MaxLevelWall= 設 置 作 爲 警 告 信 息 發 送 給 所 有 已 登 錄 用 戶 的 最 高 日 誌 等 級 , 默 認 值 爲 "emerg"; 這 些 選 項 既 可 以 設 爲 日 誌 等 級 的 名 稱 , 也 可 以 設 爲 日 誌 等 級 對 應 的 數 字 : "emerg"(0), "alert"(1), "crit"(2), "err"(3), "warning"(4), "notice"(5), "info"(6), "debug"(7) 。 所 有 高 於 設 定 等 級 的 日 誌 消 息 都 將 被 直 接 丟 棄 , 僅 保 存 /轉 發 小 於 等 於 設 定 等 級 的 日 誌 消 息 。

TTYPath= 指 定 ForwardToConsole=yes 時 所 使 用 的 控 制 檯 TTY, 默 認 值 是 /dev/console

日 誌 轉 發

有 兩 種 不 同 的 日 誌 轉 發 方 法 : (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)

NOTES

1.

Seekable Sequential Key Generators

https://eprint.iacr.org/2013/397

2.

syslog

//linux/sysklogd.html

本 頁 面 中 文 版 由 中 文 man 手 冊 頁 計 劃 提 供 。 翻 譯 人 員 : 金 步 國 金 步 國 作 品 集 : http://www.jinbuguo.com 中 文 man 手 冊 頁 計 劃 : https://github.com/man-pages-zh/manpages-zh