将内核和启动日志传递到 syslog

将内核和启动日志传递到 syslog

我有一个基于 systemd 的系统,对于某些服务,我必须设置远程日志记录。设置它的最简单方法是在单元文件中使用rsyslog和设置 。StandardOutput=syslog

现在我还需要远程记录的启动消息和内核日志,但无法找到代表我要放置的内核的单元文件StandardOutput=syslog

关于如何解决这个问题有什么想法吗?

答案1

Systemd 使用日志进行日志记录。它配置在/etc/systemd/journald.conf.看man journald.conf。特别是,您可以创建/etc/systemd/journald.conf.d/my.conf包含以下内容的文件

ForwardToSyslog=on

将所有日志记录发送到套接字/run/systemd/journal/syslog。通常,syslog配置为/etc/rsyslog.conf通过在其起始行读取此套接字

$ModLoad imjournal # provides access to the systemd journal

您可以对此数据流使用常用的系统日志过滤。

答案2

从内核获取日志需要采用与从服务获取日志不同的方法。

内核将其日志存储在内存中一个称为内核环形缓冲区。这是通过一个特殊文件暴露给用户空间的/dev/kmsg默认情况下 journald将读取该文件。因此,如果 Journald 将所有内容转发到 rsyslog,它也会转发内核消息。

相关内容