Log stash与Kafka有何不同? 如果两者相同哪个更好?怎么样?
我发现两者都是可以推送数据进行进一步处理的管道。
答案 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 免受这种激增的影响。
方案2:Elasticsearch无法访问
当无法到达eleasticsearch时,如果您有大量数据源流入Elasticsearch,并且您无力停止原始数据源,那么像Kafka这样的消息代理可能会在这里有所帮助!如果将Logstash运货方和索引器体系结构与Kafka一起使用,则可以继续从边缘节点流式传输数据,并将其暂时保存在Kafka中。随着Elasticsearch的恢复,Logstash将从中断的地方继续,并帮助您了解积压的数据。
整个博客是here,涉及Logtash和Kafka的用例。