我遇到这样一种情况,我想在同一台机器上的两个不同端口(两个不同的服务)接收 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")