将日志发送到同一台机器上的 rsyslog 和 logstash,但避免重复发送数据

将日志发送到同一台机器上的 rsyslog 和 logstash,但避免重复发送数据

我遇到这样一种情况,我想在同一台机器上的两个不同端口(两个不同的服务)接收 UDP 流量,并希望避免双重发送数据。

因此,这就是想法:

(rsyslog 客户端)----(网络)--->(10540 rsyslog 和 11540 logstash)

rsyslog 和 logstash 在同一台机器上。

我需要在这两个服务前面放置一些东西,以便为它们提供相同的数据。理想情况下,这个东西应该位于上述服务所在的同一台机器上。类似 L4 平衡器的东西,可以将所有数据发送到多个目的地或某种端口镜像机制。或者任何其他可以达到这个目的的东西。

原因是我正在收集 Linux 审计日志,并希望将其中一些保存到 Graylog(使用 logstash),将其他保存到文件系统。我曾尝试使用 logstash 执行此操作,但它会破坏存储在磁盘上的日志格式,并且 aureport、ausearch 和 ausummary 工具无法读取它们。

尚未找到修复 logstash 格式以便这些工具可以读取的方法。

我正在使用 CentOS7。我无法访问网络设备。

感谢您的建议。

答案1

使用 rsyslog 您可以使用omfwd 模块将日志发送到 logstash。将类似以下内容添加到您的 rsyslog 服务器(而不是客户端):

action(type="omfwd" Target="127.0.0.1" Port="11540" Protocol="udp")

相关内容