我在 raspberrypi 机器上使用 systemd 和基于 yocto 的系统。最近,我在将消息重定向到 rsyslog.socket 时遇到了一些问题,因此我决定rsyslog
完全摆脱journald
.
这样做之后,我注意到日志文件的大小比我之前想象的要大得多。
root@rpiDev: ~ $ journalctl -o cat > /tmp/journals-cat.txt
root@rpiDev: ~ $ journalctl -o export > /tmp/journals-exp.txt
root@rpiDev: ~ $ journalctl -o verbose > /tmp/journals-verb.txt
root@rpiDev: ~ $ journalctl -a -m > /tmp/journals.txt ### This is what I need!
root@rpiDev: ~ $ journalctl -a -m -o verbose > /tmp/journals-everything.txt
root@rpiDev: ~ $ du -sh /tmp/journals* /var/log/journal/ ; journalctl --disk-usage
468.0K /tmp/journals-cat.txt
15.7M /tmp/journals-everything.txt
4.7M /tmp/journals-exp.txt
4.9M /tmp/journals-verb.txt
2.3M /tmp/journals.txt
41.0M /var/log/journal/
Archived and active journals take up 12.5M on disk.
比较大小,journald 创建的二进制文件看起来比合并 ( ) 日志大得多-m
。
我真正需要的是里面的东西/tmp/journals.txt
。
问题:
是否可以将日志存储在其二进制文件中的内容量减少到我在运行时注意到的数量journalctl -a -m
?
换句话说:我可以禁止存储所有对我来说不重要的信息,并像使用 syslog 一样使用 Journald 吗?
我的问题可以通过禁用日志日志的永久存储并将其转发到 syslog 来解决,但也许不带回 rsyslog 是可能的?
编辑:
一些用户提到的参数在这里对我没有帮助。
- 使用
SystemMaxUse=
并且RuntimeMaxUse=
仅设置存储的文件的最大大小 - 我可以拥有更小的文件,其中包含相同数量的不需要的信息,因此实际日志甚至更少。 - 使用
MaxLevel...=
设置日志中存储的最大日志级别。这也不是我在这里需要的。
编辑2:
我的解决方案:
我决定将日志存储在 syslog 中(我使用rsyslog
)。
在我的journald.conf 中,我设置Storage=volatile
并使用了SystemMaxUse=64M
和RuntimeMaxUse=64M
来限制journald 的磁盘使用。
我也启用了ForwardToSyslog=yes
,所以现在我的旧系统日志解决方案可以正常工作,并且我还可以查看运行时日志日志。
答案1
编辑/etc/systemd/journald.conf
以指定日志可以在内存和磁盘上使用多少空间。
请man journald.conf
参阅其中所包含设置的详细解释。