我有一个分布式日志系统来监视负载平衡的服务器实体。对我来说,服务器在日志记录过程中不需要投入大量的处理器时间,这是最基本的,它允许应用程序以尽可能多的资源运行。很高兴知道,在处理器时间方面,这些替代方案中的哪一个“更便宜”,或者,在这种情况下,推荐任何其他解决方案。
nxagd54h1#
我们正在使用flume收集日志并将其发送到kafka-它的cpu使用率非常低,而且内存方面-要做多少缓冲取决于您自己。如果需要自定义数据解析/路由,还可以编写自己的flume拦截器。
sd2nnvve2#
首先,Kafka不是一个日志收集器。它是一个分布式消息队列,可以作为消费者和生产者与fluentd和logstash等日志收集器一起工作。让我们用一些数字来代替意见。cpu使用率:这取决于使用fluentd和/或logstash在客户端进行多少过滤和数据处理。如果你做最小的处理,两者都可以每秒处理10000多条消息。两者都可以利用多个CPU(http://docs.fluentd.org/articles/in_multiprocess,例如)内存:fluentd使用大约40mb内存,logstash使用大约100mb内存。如果这太多了,logstash有beats和fluentd作为fluentd转发器(https://github.com/fluent/fluentd-forwarder).
wi3ka0sx3#
fluentd和logstash都有处理器开销,最好不要在应用服务器上运行它们。因为,kafka,因为只有它的客户机在你的服务器上运行,所以它应该更便宜,但是你的服务器的稳定性取决于kafka服务器的稳定性。一个更好的解决方案可能是登录到文件并安装一个更便宜的日志收集器/转发器,将日志文件转发到另一个服务器上,以便运行任何日志解析器。
p5fdfcr14#
您可能应该只使用一个简单的轻量级rsyslog、syslog ng或syslogd。取决于你想使用哪种技术?
4条答案
按热度按时间nxagd54h1#
我们正在使用flume收集日志并将其发送到kafka-它的cpu使用率非常低,而且内存方面-要做多少缓冲取决于您自己。如果需要自定义数据解析/路由,还可以编写自己的flume拦截器。
sd2nnvve2#
首先,Kafka不是一个日志收集器。它是一个分布式消息队列,可以作为消费者和生产者与fluentd和logstash等日志收集器一起工作。
让我们用一些数字来代替意见。
cpu使用率:这取决于使用fluentd和/或logstash在客户端进行多少过滤和数据处理。如果你做最小的处理,两者都可以每秒处理10000多条消息。两者都可以利用多个CPU(http://docs.fluentd.org/articles/in_multiprocess,例如)
内存:fluentd使用大约40mb内存,logstash使用大约100mb内存。如果这太多了,logstash有beats和fluentd作为fluentd转发器(https://github.com/fluent/fluentd-forwarder).
wi3ka0sx3#
fluentd和logstash都有处理器开销,最好不要在应用服务器上运行它们。因为,kafka,因为只有它的客户机在你的服务器上运行,所以它应该更便宜,但是你的服务器的稳定性取决于kafka服务器的稳定性。
一个更好的解决方案可能是登录到文件并安装一个更便宜的日志收集器/转发器,将日志文件转发到另一个服务器上,以便运行任何日志解析器。
p5fdfcr14#
您可能应该只使用一个简单的轻量级rsyslog、syslog ng或syslogd。
取决于你想使用哪种技术?