我有一个配置,其中包含设置和配置的 systemd 服务单元。/etc/systemd/[email protected]
ForwardToSyslog=yes
LogNamespace=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
都出现在两个地方:远程系统日志服务器和本地日志日志。
这个答案并不试图描述命名空间。但它做了我想要的事情,即转发所有日志日志消息。