使用Kafka替代Filebeats和Logstash

时间:2018-07-18 12:15:52

标签: elasticsearch logging apache-kafka logstash filebeat

我是ELK堆栈的新手,我只是想知道是否可以使用Kafka将我们的日志文件发送到Elasticsearch。 但是我也需要Logstash的工作(使用 grok 这样的过滤器解析日志)也要在Kafka中完成。这一切可能吗?基本上,我想做的是用Kafka替换Filebeats和Logstash的组合,我想知道是否可行。

谢谢:)

注意:我要做的是 Ship + Parse (在Kafka中记录)。我知道可以使用Elasticsearch连接器将日志传送到Elasticsearch,但是我要问的是,使用Kafka是否可以解析数据(Logstash的工作)。

1 个答案:

答案 0 :(得分:2)

我将您的问题分为两部分:

1。是否可以在ElasticSearch中为通过kafka流式传输的事件建立索引

是的,如果您认为Confluent kafka-connect是Kafka的一部分。并不是由kafka本身进行索引,而是由kafka-connect接收器连接器配置为从您的kafka主题中使用并为Elasticsearch中的事件建立索引。

您可以在此处找到更多信息:https://docs.confluent.io/current/connect/kafka-connect-elasticsearch/index.html

2。我可以直接在Kafka中实现Logstash的相同类型的解析,转换和流控制功能吗?

我知道,唯一可以帮助您完成类似工作的Kafka生态系统功能是Kstreams(但您必须知道如何使用Kstreams API进行开发)或使用另一个名为KSQL的Confluent软件,该软件可以执行SQL Stream在Kafka主题之上进行处理,该主题更面向Google Analytics(分析)(即:数据过滤,转换,聚合,联接,窗口化和会话化)

您可以在此处找到有关KStreams的更多信息:https://kafka.apache.org/documentation/streams/

您可以在这里找到有关KSQL的更多信息:https://docs.confluent.io/current/ksql/docs/index.html

结论

我认为,如果不使用Kafka Streams API进行编程,就无法获得Logstash / NiFi的所有解析和转换功能,但是您可以定义为使用kafka-connect将数据导入kafka或从中取出。像Logstash一样,kafka可以用于多种技术。

一个很好的例子(取自Confluent)是: enter image description here