如何为 systemd 日志命名空间设置系统日志转发

如何为 systemd 日志命名空间设置系统日志转发

我有一个配置,其中包含设置和配置的 systemd 服务单元。/etc/systemd/[email protected]ForwardToSyslog=yesLogNamespace=my-namespace

此后的文档我不清楚如何将日志日志从 my-namespace 转发到 syslog。

据我所知,有两种方法可以将日志日志转发到系统日志,即通过 UNIX 域套接字或 .journal 文件。对于这种情况,假设我想/run/systemd/journal.my-namespace/syslog为journald 设置一个套接字来写入日志,并为rsyslogd 设置一个套接字来侦听和转发到syslog。我已经阅读了文档,但我仍然不明白如何配置它。

答案1

阅读后我找到了一个最小的解决方案rsyslog 文档这是创建一个 rsyslog 配置文件,/etc/rsyslog.d/my-namespace.conf其内容为:

input(type="imuxsock" Socket="/run/systemd/journal.my-namespace/syslog")

答案2

rsyslog.conf

下列的本指南,我添加到本地syslog客户端,文件/etc/rsyslog.conf

module(load="imjournal")

rsyslog模块imjournal特别适用于日志日志消息。同样/etc/rsyslog.conf已经有UDP转发设置

*.* @some-remote-syslog-server.local:514

然后重新启动rsyslog

systemctl restart rsyslog.service

测试

在远程系统日志服务器上,tail为该主机收集的系统日志(此路径将取决于远程系统日志服务器配置)

$ tail -F /var/log/rsyslog/my-host/*

在本地系统日志服务器上,跟踪日志日志

$ journalctl -xf

然后使用旧logger程序和新systemd-cat程序创建日志消息

$ echo MESSAGE FROM $(hostname) USING logger | logger -t user
$ echo MESSAGE FROM $(hostname) USING systemd-cat | systemd-cat -t user

(日志消息标签user是任意的)

就我而言,这两条消息 vialogger和 viasystemd-cat都出现在两个地方:远程系统日志服务器和本地日志日志。

这个答案并不试图描述命名空间。但它做了我想要的事情,即转发所有日志日志消息。

相关内容