Sea*_*mus 8 rsyslog systemd systemd-journald
我最近了解到它journalctl占用了我的 16GB SD 卡(Raspberry Pi)的很大一部分:
$ journalctl --disk-usage\nArchived and active journals take up 312.1M in the file system. \nRun Code Online (Sandbox Code Playgroud)\n我没有这种感觉,journalctl并且在我的这台机器的用例中发挥journald了作用。\n它是一个老式的 RPi,并且rsyslog也在运行。我估计我对它的需求和使用journalctl可能是“千载难逢”。因此,我决定禁用journald- which “feeds” journalctl。我认为这很简单,使用systemctlto stop,或者可能只是disableing ,systemd-journald.service这样它就不会在下次启动时启动。
在拔掉插头之前,我决定做一些研究。没有找到数千个提供“操作方法”建议的参考文献,而是针对我的特定搜索词“如何禁用日志”的结果非常少。相反,结果主要提供了减少journald资源消耗的建议。我确实找到了一些让我犹豫的参考资料:
ArchLinux 论坛中的一个旧帖子表明,不可能journald在没有影响的情况下禁用它;即"Masking systemd-journald causes all kinds of dependency failures and drops you at an emergency prompt."但是这篇文章已经有 10 年历史了......
systemd -journald.service 手册说,"stopping it [systemd-journald.service] is not recommended.". 文档从那里开始讨论命名空间?
我了解到阻止systemd单位启动的常用命令没有效果;即正常启动:
$ sudo systemctl disable systemd-journald.service\n$ sudo reboot \n\n# ... and after boot & login:\n\n$ systemctl status systemd-journald.service\n\xe2\x97\x8f systemd-journald.service - Journal Service\n Loaded: loaded (/lib/systemd/system/systemd-journald.service; static)\n Active: active (running) since Fri 2022-06-03 07:30:29 UTC; 1min 59s ago\nTriggeredBy: \xe2\x97\x8f systemd-journald-audit.socket\n \xe2\x97\x8f systemd-journald.socket\n \xe2\x97\x8f systemd-journald-dev-log.socket\n Docs: man:systemd-journald.service(8)\n man:journald.conf(5)\n Main PID: 134 (systemd-journal)\n Status: "Processing requests..."\n Tasks: 1 (limit: 1598)\n CPU: 820ms\n CGroup: /system.slice/systemd-journald.service\n \xe2\x94\x94\xe2\x94\x80134 /lib/systemd/systemd-journald\n\n...\n$ \nRun Code Online (Sandbox Code Playgroud)\njournald被禁用呢?...或者可以禁用它吗?如果不是,开发者为什么要systemd强迫用户这样做?(好吧,是的 - 寻求意见,所以忘记问题的这一部分。)
之所以不想journald在使用时消除rsyslogd,是因为可以从rsyslogd日志中获取信息,并且它们以这种方式协同工作得很好。
这有点与此处评论中链接的一些问答相反。在当前的 Linux 系统上对此进行了一些观察(在 Fedora 和 Debian 上检查了这一点),该系统配置为让日志仅使用易失性(内存中)存储,并rsyslog写入实际的日志文件:
/var/run/log是一个带有一个子目录的目录,journal. 这包含由 写入systemd-journald和读取的 rsyslogd文件。请注意,此目录位于tmpfs分区上,因此它算作内存易失性存储。/dev/log是到 的符号链接/run/systemd/journal/dev-log。这些/etc/rsyslog.conf系统上的 包括这个(不是库存rsyslog.conf):
# Input
module (
load="imjournal"
...
)
Run Code Online (Sandbox Code Playgroud)
Fedora 和 Debian 的不同之处在于这里的库存配置;前者确实使用imjournal以及imuxsock(用户空间套接字)。1 Debian 使用imuxsockand imklog(内核日志),大概是因为没有imjournal它需要监听内核本身。我还认为这有点不合时宜。
我的部分观点是,完全删除日志记录可能并非不可能,但这是一个坏主意。它是当代基于 systemd 的系统的核心组件。Storage=volatile它的缺陷是它可能比 rsyslog 使用更多的磁盘空间,但这很容易通过使用和 (例如)RuntimeMaxUse=64Min进行配置/etc/systemd/journald,
从journald 获取rsyslogd 是一种后端/前端关系;rsyslog 很棒,因为它提供纯文本日志记录以及对记录内容、记录位置和方式的更细粒度控制,而 Journald 提供与系统服务更好的集成。
imuxsockasimuxjournal效率较低,并且可能会遇到其他问题;另请参阅安德鲁·亨利对此的回答和下面的评论。| 归档时间: |
|
| 查看次数: |
16017 次 |
| 最近记录: |