使用ELK堆栈进行日志处理

时间:2018-05-14 08:06:01

标签: apache-spark apache-kafka logstash elastic-stack

我的要求是 我有需要处理的日志文件,我也想用postgres db中的一些数据来丰富日志信息。

步骤1.我计划使用logstash将来自上述两个来源(日志文件和数据库)的数据提供给kafka主题 步骤2.我计划使用kafka流来加入不同kafka主题的数据,并通过API调用将它们推送到弹性搜索。

我怀疑是关于第2步, 卡夫卡小溪是要走的路吗?或者我可以使用我认为可以用于相同的Apache spark。 对此有任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

  

步骤1.我计划使用logstash将来自上述两个来源(日志文件和数据库)的数据提供给kafka主题

如果您已经在使用Apache Kafka,请注意您可以使用Kafka Connect将系统(包括数据库)集成到Kafka中。有关集成数据库的信息,see this article

  

步骤2.我计划使用kafka流来加入不同kafka主题的数据,并通过API调用将它们推送到弹性搜索。   我的疑问是关于第2步,卡夫卡流是否可行?或者我可以使用我认为可以用于相同的Apache spark。对此有任何帮助表示赞赏。

是的,Kafka Streams非常适合这种情况。它可以使用来自其他主题的数据,在事件流经主题时丰富事件。这些主题可以来自任何系统,包括日志文件,数据库等。这里有example code of such joindocumentation

顺便说一句,你可能还想看看KSQL。 KSQL基于Kafka Streams构建,因此您可以获得相同的可伸缩性和弹性功能,但是可以直接运行SQL抽象(无需编码)。有关使用KSQL来丰富数据流的示例,请参阅this talkthis article

(披露:我为领导开源KSQL项目的Confluent工作)