Journalctl 和 syslog:它实际上是如何工作的?

Red*_*ano 5 linux syslog rsyslog systemd journalctl

我很难理解日志是如何在 linux 上工作的。

自从加入了systemd,看起来容易了一些,但是我还有几个概念还是不能完全理解。

给定一个带有 journalctl 的系统,我想向远程主机发送一些日志消息。为此,我安装了 rsyslog 并配置了 freeradius,以便将其日志输出到 local3,然后将 rsyslog 配置为将 local3 下的这些消息转发到远程 syslog 服务器。现在,系统日志是否在 rsyslog 和 journalctl 之间共享?这会导致任何形式的冲突吗?

除此之外:谁控制写入/var/log/messages 的内容?某个应用程序如何将其日志输出到此文件?它是由 rsyslog 管理的吗?通过系统?

如果有人能帮我理解整个 linux 日志服务,那就太好了。

bod*_*git 7

journald 和 rsyslog 之间的链接在 rsyslog 端通过使用其输入和输出模块进行控制;有一个imjournaland 分别omjournal用于读取和写入日志。

因此,如果您向 rsyslog 写入一些内容,则只有在您配置了omjournal模块后,它才会出现在 journald 中。

rsyslog "拥有" /var/log/messages,通常的 syslog API 将允许应用程序写入它。如果imjournal配置了模块,日志消息也可以在那里结束。

这个简短的 RHEL 指南以几乎相同的方式解释了事情。

  • RHEL 指南是一个死链接。https://www.golinuxcloud.com/systemd-journald-how-logging-works-rhel-7/ 似乎有好的信息。 (3认同)