远程客户端在自己的文件中记录到系统日志有问题的配置

远程客户端在自己的文件中记录到系统日志有问题的配置

我已将日志服务器设置为通过 UDP/514 接收来自客户端的信息,并使用规则集写入以主机名/IP 作为名称的文件。我在不同的服务器上有相同的配置,有时它不起作用,我不得不费尽心思才能让它工作。我仔细阅读了文档,但找不到太多有意义的内容。

在使用 rsyslog v8.2 的 RHEL 9 上,输入行位于默认位置,添加了远程。

` 输入(类型=“imudp”端口=“514”规则集=“远程”)

&停止`

这适用于遥控器,但本地日志记录停止,即: /var/log/messages 或其他任何应该从本地主机发送的内容中没有显示任何内容,遥控器按照预期转到“远程”指定的位置。

然而,在我最近的一次尝试中,我最终得到了这个结果:

` 输入(类型=“imudp”端口=“514”)

:inputname, isequal, "imudp" ?DynFile;TraditionalFormatWithPRI

&停止`

这按预期工作,并将 UDP/514 上收到的日志发送到适当的文件,并且常规本地日志记录继续工作。为什么第一个吃当地的伐木?我缺少什么?

答案1

本地程序通常通过/dev/log而不是使用 UDP 进行日志记录。

虽然 Rsyslog 可以使用以下命令接收这些消息imuxsock输入模块,现在/dev/logjournald,所以你需要imjournal模块。

RHEL 9 上的常规 rsyslog 配置包括以下内容:

module(load="imuxsock"    # provides support for local system logging (e.g. via logger command)
       SysSock.Use="off") # Turn off message reception via local log socket;
                          # local messages are retrieved through imjournal now.
module(load="imjournal"             # provides access to the systemd journal
       UsePid="system" # PID nummber is retrieved as the ID of the process the journal entry originates from
       StateFile="imjournal.state") # File to store the position in the journal

相关内容