首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >怎样才能使日记失效?

怎样才能使日记失效?
EN

Unix & Linux用户
提问于 2022-06-03 06:06:21
回答 2查看 7.7K关注 0票数 5

我最近了解到,journalctl占用了我的16 Pi卡的很大一部分(Raspberry ):

代码语言:javascript
复制
$ journalctl --disk-usage
Archived and active journals take up 312.1M in the file system.  

在我的用例中,journalctljournald不是这台机器的拉着他们的重量。这是一个旧的RPi,rsyslog也在运行。我估计我对journalctl的需求和使用可能是“千载难逢”。因此,我决定禁用journald --即“提要”journalctl。我认为这很简单,使用systemctlstop,或者可能只是对systemd-journald.service进行disable,这样它就不会在下一次引导时启动。

在拔掉插头之前,我决定做一些研究。没有找到成千上万的引用,提供了“如何- to”的建议,非常少的结果,针对我的具体搜索术语:“如何禁用日记”。相反,研究结果大多提供了关于减少journald's资源消耗的建议。我确实找到了一些让我停下来的参考资料:

在ArchLinux论坛上有一条旧的帖子指出,没有反响是不可能禁用journald的;也就是说,"Masking systemd-journald causes all kinds of dependency failures and drops you at an emergency prompt.",但是这个帖子现在已经有10年历史了。

系统d-日志.服务手册说,"stopping it [systemd-journald.service] is not recommended."。文档从那里开始讨论名称空间?

我已经了解到,防止systemd单元启动的常规命令没有任何效果;也就是说,它正常启动:

代码语言:javascript
复制
$ sudo systemctl disable systemd-journald.service
$ sudo reboot 

# ... and after boot & login:

$ systemctl status systemd-journald.service
● systemd-journald.service - Journal Service
     Loaded: loaded (/lib/systemd/system/systemd-journald.service; static)
     Active: active (running) since Fri 2022-06-03 07:30:29 UTC; 1min 59s ago
TriggeredBy: ● systemd-journald-audit.socket
             ● systemd-journald.socket
             ● systemd-journald-dev-log.socket
       Docs: man:systemd-journald.service(8)
             man:journald.conf(5)
   Main PID: 134 (systemd-journal)
     Status: "Processing requests..."
      Tasks: 1 (limit: 1598)
        CPU: 820ms
     CGroup: /system.slice/systemd-journald.service
             └─134 /lib/systemd/systemd-journald

...
$ 

journald怎么会被禁用?或者可以禁用它吗?

如果不是,为什么systemd开发人员会强迫用户这样做?(好吧,是的-征求意见,所以忘了问题的那一部分吧。)

EN

回答 2

Unix & Linux用户

发布于 2023-05-26 16:27:45

怎样才能使日记失效?

首先,这就是文档化说明了imjournal模块用于从systemd的日志中获取日志消息。 (粗体是原创的,斜体是我的重点):

请注意,这个模块读取日志数据库,它被认为是一种相对高性能的操作.因此,使用该模块的配置的性能可能明显低于使用方位角using时的性能。日志提供了所有“经典”syslog消息的副本,但是它不提供结构化数据。只有在需要结构化数据的情况下,才必须使用日志。否则,imjournal可能被方位角doing所取代,我们强烈建议这样做。我们建议查看我们关于rsyslog日志集成的简短介绍,以了解更多预期用例的细节。警告:某些版本的systemd日志存在数据库损坏问题,这导致日志在紧循环中无休止地返回相同的数据。这会导致rsyslog中大量的消息重复,当系统资源耗尽时,可能会导致拒绝服务。使用适当的速率限制器可以在一定程度上缓解这种情况,但即便如此,也会有大量的旧数据不断重复。默认情况下,将激活分级消除,并允许在10分钟内处理20,000条消息,这对于大多数用例来说应该足够好。如果不够,请使用下面描述的参数来调整允许的卷。强烈建议It只在非常需要使用时才使用这个插件。

您是否“非常需要”将“结构化数据”提供给rsyslog?当使用更多的CPU周期时,速度会慢得多吗?

用直截了当的rsyslog代替systemd的日志很容易:

  1. 编辑/etc/rsyslog.conf。删除对imjournalimuxsock的所有引用。
  2. module(load="imuxsock" # provides support for local system logging (e.g. via logger command) SysSock.Use="on") # Turn on message reception via local log socket;替换上面的行
  3. 运行以下命令:systemctl stop systemd-journal-flush.service systemd-journald.service systemd-journald-dev-log.socket systemd-journald.socket
  4. 运行systemctl stop systemd-journal-flush.service systemd-journald.service systemd-journald-dev-log.socket systemd-journald.socket
  5. 运行systemctl restart rsyslog
  6. 验证消息是否出现在/var/log/messages等人中

您可能需要调整其中的一些命令-特别是通过禁用更多的systemd服务。

票数 1
EN

Unix & Linux用户

发布于 2022-06-03 06:41:33

禁用此服务不会阻止您的设备正常工作,但是日志记录将明显停止。我看不出还有其他问题。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/704833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档