我是麋鹿堆栈的新手,我只是想知道是否有可能使用kafka将我们的日志文件发送到elasticsearch。但是我也需要在kafka中完成logstash(使用grok之类的过滤器解析日志)的工作。这一切可能吗?基本上我想做的是用Kafka来代替filebeats和logstash的组合,我想知道这是否可行。
谢谢:)
注意:我要做的是在kafka中ship+解析日志。我知道使用elasticsearch连接器可以将日志发送到elasticsearch,但我想问的是,使用kafka是否可以解析数据(logstash的工作)。
1条答案
按热度按时间jjhzyzn01#
我将把你的问题分成两部分:
1通过Kafka传输的事件可以在elasticsearch中索引吗
是的,如果你认为融合Kafka连接作为Kafka的一部分。不是kafka本身做索引,而是一个kafka connect sink连接器,它将被配置为使用kafka主题并在elasticsearch中索引事件。
您可以在此处找到更多信息:https://docs.confluent.io/current/connect/kafka-connect-elasticsearch/index.html
2我可以直接在kafka中实现logstash的解析、转换和流控制特性吗
据我所知,Kafka生态系统中唯一可以帮助您完成类似任务的功能是kstreams(但您必须知道如何使用kstreams api进行开发)或使用另一个名为ksql的合流软件,该软件允许在Kafka主题之上执行sql流处理,而这些主题更倾向于分析(即:数据过滤、转换、,聚合、联接、窗口和会话)
您可以在此处找到有关kstream的更多信息:https://kafka.apache.org/documentation/streams/
您可以在这里找到有关ksql的更多信息:https://docs.confluent.io/current/ksql/docs/index.html
结论
在我看来,如果不使用kafka streams api编程,就无法实现logstash/nifi的所有类型的解析和转换功能,但是您肯定可以使用kafka connect将数据导入kafka或从kafka中取出,这与logstash所做的一样。
这种设置的一个很好的例子(取自confluent)是: