用于转发日志的 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 有内存、磁盘队列。那应该负责缓冲消息。
我目前正在使用 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 有内存、磁盘队列。那应该负责缓冲消息。