用于转发日志的 Filebeat 与 Rsyslog

Filebeat vs Rsyslog for forwarding logs

我目前正在使用 filebeat 将日志转发到 logstash,然后再转发到 elasticsearch。

现在,我正在考虑通过rsyslog 将日志转发到logstash。这样做的好处是,我不需要在每台服务器上安装和配置 filebeat,而且我可以转发易于解析和过滤的 JSON 格式的日志。

我可以使用 TCP/UDP 通过 rsyslog 将日志转发到 logstash。

我想知道 rsyslog 相对于 filebeat 在性能、可靠性和易用性方面的更多优点和缺点。

当您将 Beats 与 Logstash 结合使用时,您会得到一个名为 "back pressure management" 的东西 - 例如,Beats 将停止向 Logstash 服务器发送大量消息,以防网络出现问题。

使用 Beats 的另一个优势是,在 Logstash 中,您可以拥有持久队列,这可以防止您在 elasticsearch 集群出现故障时丢失日志消息。所以 Logstash 会将消息持久保存在磁盘上。请注意,如果您使用 UDP,Logstash 无法确保您不会丢失消息,this link 会有所帮助。

Rsyslog 有内存、磁盘队列。那应该负责缓冲消息。

Rsyslog queue-modes