赞
踩
Journald
是systemd
引入的用于收集和存储日志数据的系统服务。它试图使系统管理员可以在越来越多的日志消息中更轻松地找到有趣且相关的信息。为了实现此目标,日记中的主要更改之一是用为日志消息优化的特殊文件格式替换简单的纯文本日志文件。这种文件格式使系统管理员可以更有效地访问相关消息。它还为单个系统带来了数据库驱动的集中日志记录实现的某些功能。
systemd-journald
系统Journald
系统主要由三个主要的系统日记服务组件组成:
systemd
日志服务由systemd-journald
守护程序处理。/etc/systemd/journald.conf
里面设置。journalctl
。systemd-journald
日志相关的重要配置选项:主要包括systemd-journald logrotate
和存储类型选择功能。Journald
支持的不同类型的存储我们可以通过修改/etc/systemd/journald.conf
文件控制存储类型值,在[Journal]
字符串下面可以修改存储类型。
- [Journal]
- #Storage=auto
Storage
支持的值为volatile
,persistent
,auto
和none
,默认是auto
,所有值的含义如下
volatile
,则日志数据将仅存储在内存中,即在/run/log/journal
目录下(根据需要创建)。persistent
,则数据将会存储在磁盘上,即/var/log/journal
目录下,并且在早期引导阶段磁盘不可写的时候把数据保存到/run/log/journal
目录下。auto
值意味着把日志数据存储在/var/log/journal/
目录中。但是该目录必须已经存在并且设置了适当的权限。如果不存在,则日记数据将存储在易失性/run/log/journal/
目录中,并且在系统关闭时会删除该数据。none
关闭所有存储,所有接收到的日志数据将被丢弃。logrotate
systemd-journald
日志文件的logrotate
将基于以下值执行:
- #SystemMaxUse=
- #SystemKeepFree=
- #SystemMaxFileSize=
- #SystemMaxFiles=100
- #RuntimeMaxUse=
- #RuntimeKeepFree=
- #RuntimeMaxFileSize=
- #RuntimeMaxFiles=100
- #MaxRetentionSec=
- #MaxFileSec=1month
这些设置将会限制日志文件的大小上限。 以System
开头的选项用于限制磁盘使用量, 也就是 /var/log/journal
的使用量。 以Runtime
开头的选项用于限制内存使用量, 也就是 /run/log/journal
的使用量。
RuntimeMaxUse/SystemMaxUse=
控制日志最大可使用多少磁盘空间,然后对日志文件执行systemd-journald logrotate
。默认为分配给节点的总物理内存的10%RuntimeKeepFree/SystemKeepFree=
控制systemd-journald
将为其他用途保留多少磁盘空间,之后将对日志文件执行systemd-journald logrotate
。默认为分配给节点的总物理内存的15%SystemMaxFileSize=/RuntimeMaxFileSize=
限制单个日志文件的最大体积, 到达此限制后日志文件将会自动滚动。 默认值是对应的 SystemMaxUse=/RuntimeMaxUse=
值的1/8 , 这也意味着日志滚动 默认保留7个历史文件。SystemMaxFiles/RuntimeMaxFiles=
限制最多允许同时存在多少个日志文件, 超出此限制后, 最老的日志文件将被删除, 而当前的活动日志文件 则不受影响。 默认值为100个。MaxRetentionSec=
日志滚动的时间间隔。通常并不需要使用基于时间的日志滚动策略, 因为由SystemMaxFileSize/RuntimeMaxFileSize=
控制的基于文件大小的日志滚动策略已经可以确保日志文件的大小不会超标。 默认值是一个月, 设为零表示禁用基于时间的日志滚动策略。MaxRetentionSec=
日志文件的最大保留期限。 当日志文件的最后修改时间(mtime
)与当前时间之差,大于此处设置的值时,日志文件将会被删除。 通常并不需要使用基于时间的日志删除策略。如果我们检查systemd-journald
的状态,那么我们可以看到它的报告日志已轮换:
- $ systemctl status systemd-journald
- ● systemd-journald.service - Journal Service
- Loaded: loaded (/lib/systemd/system/systemd-journald.service; static; vendor preset: enabled)
- Active: active (running) since Sat 2019-11-23 08:34:43 CST; 3 months 14 days ago
- Docs: man:systemd-journald.service(8)
- man:journald.conf(5)
- Main PID: 404 (systemd-journal)
- Status: "Processing requests..."
- Tasks: 1 (limit: 9484)
- CGroup: /system.slice/systemd-journald.service
- └─404 /lib/systemd/systemd-journald
-
- Nov 23 08:34:43 ubuntu systemd-journald[404]: Journal started
- Nov 23 08:34:43 ubuntu systemd-journald[404]: Runtime journal (/run/log/journal/0bc1c3fec0b84c47ac1b0ea61a9db220) is 8.0M, max 79.5M, 71.5M free.
- Nov 23 08:34:43 ubuntu systemd-journald[404]: Time spent on flushing to /var is 46.023ms for 1754 entries.
- Nov 23 08:34:43 ubuntu systemd-journald[404]: System journal (/var/log/journal/0bc1c3fec0b84c47ac1b0ea61a9db220) is 504.0M, max 4.0G, 3.5G free.
- Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。