我目前正在Kafka Streams或Logstash之间进行实时日志收集,转换和丰富,并最终发送给Elasticsearch。日志来自不同的IT网络设备,如防火墙、交换机、接入点等。
既然Kafka Streams和Logstash都有几乎相似的功能,选择一个比另一个有好处吗?(性能?易于部署?)
感谢Kafka Streams和Logstash是两个完全不同的东西
Kafka Streams是一个客户端库,你可以使用它来编写应用程序来流化和处理存储在Kafka broker中的数据,你需要用Java编写自己的应用程序。
Logstash是一个ETL工具,你可以使用它从多个来源提取/接收数据,使用广泛的过滤器处理这些数据,并将其发送到不同的输出,如elasticsearch, file, s3, kafka和许多其他。
将Logstash和Kafka一起使用是很常见的,Kafka作为Logstash将消费和处理的消息的消息队列,你有像Filebeat这样的托运人将数据发送到Kafka broker,然后你使用Logstash来消费这些数据。
你可以用Java构建自己的应用程序,使用Kafka Streams库来收集、处理和发送数据到Elasticsearch,但这与使用堆栈工具相比会非常复杂,Filebeat收集日志,Logstash接收/处理,Elasticsearch存储。