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