23.7. Rsyslog 和日志的交互
如前文所述,系统上存在的两个日志记录应用程序 Rsyslog 和 Journal 具有几个独特的功能,使它们适合特定的用例。在很多情况下,组合其功能很有用,例如要创建结构化的信息并将其存储在文件数据库中(请参阅 第 23.8 节 “使用 Rsyslog 的结构化日志记录”)。Rsyslog 方的输入和输出模块以及 日志的通信套接字提供了开展协作所需的通信接口。
默认情况下,rsyslogd
使用 imjournal
模块作为日志文件的默认输入模式。使用此模块时,您不仅导入消息,还会导入 journald
提供的结构化数据。另外,可以从 journald
导入较旧的数据(除非使用 IgnorePreviousMessages
选项禁止)。有关 imjournal
的基本配置,请参阅 第 23.8.1 节 “从日志导入数据”。
另外,也可将 rsyslogd
配置为从 日志
提供的套接字读取,作为基于 syslog 的应用的输出。到套接字的路径为 /run/systemd/journal/syslog
。当您要维护纯 rsyslog 消息时,请使用这个选项。与伪装套接字输入相比 ,
目前提供更多功能,如规则集绑定或过滤。要通过套接字导入 Journal 数据,请在 /etc/rsyslog.conf
中使用以下配置:
module(load="imuxsock" SysSock.Use="on" SysSock.Name="/run/systemd/journal/syslog")
您还可以使用 the omjournal
模块输出来自 Rsyslog 到 Journal 的消息。在 /etc/rsyslog.conf
中配置输出,如下所示:
module(load="omjournal") action(type="omjournal")
例如,以下配置将 tcp 端口 10514 上的所有接收的信息转发到日志:
module(load="imtcp") module(load="omjournal") ruleset(name="remote") { action(type="omjournal") } input(type="imtcp" port="10514" ruleset="remote")