Logstash与Kafka的不同之处

时间:2016-11-29 11:05:34

标签: apache-kafka devops elastic-stack

Log stash与Kafka有何不同? 如果两者相同哪个更好?怎么样?

我发现两者都是可以推送数据进行进一步处理的管道。

3 个答案:

答案 0 :(得分:7)

Logstash是一个可用于收集,处理和转发事件和日志消息的工具。收集是通过一些Fitness101,FT101,EA101,RX101 Fitness102,FT102,EA102,RX102 Fitness103,FT103,EA103,RX103 plugins完成的。您可以使用[0] => Fitness101,FT101 [1] => Fitness101,EA101 [2] => Fitness101,RX101 [4] => Fitness102,FT102 [5] => Fitness102,EA102 [6] => Fitness102,RX102 [7] => Fitness103,EA103 [8] => Fitness103,EA103 [9] => Fitness103,RX103 作为输入插件,它将从Kafka主题中读取事件。一旦输入插件收集了数据,就可以通过修改和注释事件数据的任意数量的filters来处理它。最后,事件被路由到input t plugins,这可以将事件转发给各种外部程序,包括Elasticsearch。

其中Kafka是一个持久消息的消息传递软件,有TTL,以及消费者从Kafka中提取数据的概念。其中一些用法可能是:

  • 流处理
  • 网站活动跟踪
  • 指标收集和监控
  • 日志聚合

因此,他们两个都有各自的优点和缺点。但那只取决于你的要求。

答案 1 :(得分:4)

Kafka比Logstash强大得多。为了将诸如PostgreSQL之类的数据同步到ElasticSearch,Kafka连接器可以与Logstash进行类似的工作。

一个关键区别是:Kafka是一个集群,而Logstash基本上是单个实例。您可以运行多个Logstash实例。但是这些Logstash实例彼此不了解。例如,如果一个实例出现故障,其他实例将无法接管其工作。 Kafka自动处理节点。如果您将Kafka连接器设置为在分布式模式下工作,则其他连接器可以接管下连接器的工作。

Kafka和Logstash也可以一起工作。例如,在每个节点上运行Logstash实例以收集日志,并将日志发送到Kafka。然后你可以编写Kafka消费者代码来进行你想要的任何处理。

答案 2 :(得分:2)

此外,我想通过方案添加一些内容:

场景1:事件尖峰

您部署的应用存在一个严重的错误,该错误会过多地记录信息,从而淹没您的日志记录基础结构。在其他多租户用例中,例如在游戏和电子商务行业中,这种数据高峰或突发也是相当普遍的。在这种情况下,使用像Kafka这样的消息代理来保护 Logstash Elasticsearch 免受这种激增的影响。

enter image description here

方案2:Elasticsearch无法访问

当无法到达eleasticsearch时,如果您有大量数据源流入Elasticsearch,并且您无力停止原始数据源,那么像Kafka这样的消息代理可能会在这里有所帮助!如果将Logstash运货方和索引器体系结构与Kafka一起使用,则可以继续从边缘节点流式传输数据,并将其暂时保存在Kafka中。随着Elasticsearch的恢复,Logstash将从中断的地方继续,并帮助您了解积压的数据。

整个博客是here,涉及Logtash和Kafka的用例。