在Kafka,Fluentd和Logstash中,哪种服务器日志记录解决方案的处理器消耗较少?

时间:2016-03-29 13:26:39

标签: logging logstash apache-kafka distributed fluentd

我有一个分布式日志系统来监控负载均衡的服务器实体。对我来说,基本的是,服务器不会在日志记录过程中投入大量处理器时间,从而允许应用程序以尽可能多的资源运行。

很高兴知道,哪些替代品更便宜"在处理器时间方面,或者,如果是这个问题,建议任何其他解决方案。

4 个答案:

答案 0 :(得分:1)

我们正在使用Flume来收集日志并运送到Kafka - 它的CPU使用率非常低,并且在内存方面 - 由您决定要做多少缓冲。 如果需要自定义数据解析/路由,也可以编写自己的Flume拦截器。

答案 1 :(得分:0)

您应该只使用简单的轻量级rsyslog,syslog-ng或syslogd。 取决于您希望使用哪种技术?

答案 2 :(得分:0)

首先,Kafka 不是日志收集器。它是一个分布式消息队列,可以作为消费者和生产者使用Fluentd和Logstash等日志收集器。

而不是意见,让我们写一些数字。

  1. CPU使用率:这取决于您使用Fluentd和/或Logstash在客户端执行的过滤和数据处理量。如果您进行最少的处理,两者都可以每秒处理10,000多条消息。两者都可以利用多个CPU(例如http://docs.fluentd.org/articles/in_multiprocess
  2. 内存:Fluentd使用大约40MB的内存,Logstash使用大约100MB的内存。如果这太多了,Logstash有Beats和Fluentd作为流利的转发者(https://github.com/fluent/fluentd-forwarder)。

答案 3 :(得分:-1)

流利和logstash都有处理器成本,最好不要在您的应用程序服务器上运行它们。对于kafka,因为只有它的客户端在你的服务器上运行,它应该更便宜,但服务器的稳定性取决于kafka服务器的稳定性。

更好的解决方案可能是登录文件并安装更便宜的日志收集器/转发器以将日志文件转发到另一台服务器以运行任何日志解析器。