配置 /etc/systemd/journald.conf
文件时,需要根据你的系统资源、日志需求以及性能要求来进行调整。以下是一些常见的配置建议及说明:
1. 存储类型:Storage=
定义日志的存储位置:
volatile
:只存储在内存中,系统重启后日志会丢失。persistent
:存储在/var/log/journal/
中,重启后日志不会丢失。auto
(默认):如果/var/log/journal/
存在,使用持久存储,否则使用内存存储。none
:不记录日志。
建议:如果日志很重要(用于审计、安全等),推荐使用 persistent
。
Storage=persistent
2. 日志保留时间:MaxRetentionSec=
指定日志的最大保留时间。日志超过此时间后会被自动删除。时间可以用秒(s)、分(m)、小时(h)、天(d)表示。
建议:根据存储空间和调试需求设置。例如保留30天:
MaxRetentionSec=30d
3. 日志最大大小:SystemMaxUse=
和 SystemKeepFree=
SystemMaxUse=
:设置/var/log/journal/
下日志文件夹的最大大小。当日志超过此大小时,最旧的日志将被删除。可以用字节、KB、MB、GB 表示。SystemKeepFree=
:设置系统应保留的最小可用空间。当剩余空间低于此值时,日志会被删除。
建议:根据存储情况设置。例如,最多使用 500MB 空间,至少保留 100MB 可用空间:
SystemMaxUse=500M
SystemKeepFree=100M
4. 每个日志文件的大小限制:MaxFileSize=
设置每个单个日志文件的最大大小。超过此大小时会创建新日志文件。
建议:例如将每个日志文件限制为 100MB:
MaxFileSize=100M
5. 压缩日志:Compress=
启用或禁用日志文件的压缩。启用压缩可以减少存储空间占用。
建议:如果需要节省空间,启用压缩:
Compress=yes
6. 避免写入不必要的日志:ForwardToSyslog=
和 ForwardToKMsg=
ForwardToSyslog=
:是否将日志转发到传统的 syslog 守护进程(如 rsyslog)。ForwardToKMsg=
:是否将日志转发到内核消息缓冲区。
建议:如果没有使用外部 syslog 工具,或不希望日志出现在 dmesg
中,可以关闭这两个选项:
ForwardToSyslog=no
ForwardToKMsg=no
7. 消息等级过滤:MaxLevelStore=
和 MaxLevelSyslog=
MaxLevelStore=
:控制存储的最大日志等级,等级顺序为:emerg
(紧急)、alert
、crit
、err
(错误)、warning
、notice
、info
、debug
。MaxLevelSyslog=
:控制发送到 syslog 的最大日志等级。
建议:如果只关心较高等级的日志,可以设置为 warning
或更高:
MaxLevelStore=warning
完整示例:
[Journal]
Storage=persistent
MaxRetentionSec=30d
SystemMaxUse=500M
SystemKeepFree=100M
MaxFileSize=100M
Compress=yes
ForwardToSyslog=no
ForwardToKMsg=no
MaxLevelStore=warning
小结:
- 如果你需要长期保留日志并进行调试,设置
Storage=persistent
和适当的大小限制。 - 如果存储空间有限,可以启用日志压缩并限制日志的保留时间和大小。
- 如果不需要过多的日志详细信息,可以通过
MaxLevelStore
控制日志等级。