0
  1. Logstash 转发器很轻,但从 logstash 转发器到 logstash ,网络存在延迟。[如果我在一台机器上使用 Logstash 转发器并将日志发送到另一台机器上的 Logstash]

  2. Flume /Flume-ng :相同数据量的 CPU 使用率很高(例如 2 MB,大约 20%)

  3. Fluentd :不使用 java,它基于 CRuby ,但它的 CPU 利用率在峰值时间也是 30%,.

根据我们的用例,我们不想在我的生产机器上增加大量负载来转发日志,如果我使用logstash,我将引入新的单点故障,所以我很困惑在其中选择一个。

4

1 回答 1

1

有趣的性能统计。

根据我的经验,logstash-forwarder 的重量相当轻,加密/压缩非常有用。这确实可能会导致一些延迟。这对你来说是一个重要的因素吗?我猜延迟小于 2-3 秒。我认为在许多日志管理用例中,实时性并不是很强的要求。

归根结底,所有这些代理都需要从应用程序/文件中收集数据,将它们打包并通过网络发送。这需要一些周期,但在大多数情况下,这些是普通服务器所拥有资源的 2%-4%。

看看 rsyslog,它有很多关于它背负日志的频率的配置。您可以在 docker 中运行它,并在 rsyslog 或任何其他代理 ( https://hub.docker.com/r/logzio/logzio-rsyslog-shipper/ ) 上更严格地限制资源

另一种选择是通过编写您自己的代码,直接从您的应用服务器通过批量 HTTP 发布发布日志。这是像 ELK 这样的大多数开源软件都可以摄取的东西,我们建议在http://logz.io上使用它

于 2015-09-14T12:07:54.003 回答