您正在尝试构建的是某种大数据管道。有很多方法可以做到这一点。可能的架构是: Logstash->Kafka->Spark->Elasticsearch 。
Logstash->Kafka->Spark->Elasticsearch
的 可能的情况 强>
Logstash基本上将日志转发到由Spark Streaming使用的Kafka。该方案是通过Logstash从服务器收集新生成的日志,将日志发送到Kafka,然后由Spark实时处理并将其存储在Elasticsearch中以进一步在Kibana上进行视觉化。
的 Logstash 强>
Logstash是一个开源的服务器端数据处理管道,它同时从多个源中提取数据,对其进行转换,然后将其发送到多个输出。有很多 输入插件 从那里开始的logstash。例如,您可以使用文件输入插件从文件中获取日志。还有,有很多 输出插件 对于logstash。但应该引起你注意的那个是 kafka输出插件 。
的 卡夫卡 强>
Apache Kafka是一种分布式发布 - 订阅消息传递系统,旨在取代传统的消息代理。 Kafka可用于多种用途:消息传递,实时网站活动跟踪,监控分布式应用程序的操作指标,来自众多服务器的日志聚合,记录和订购数据库中状态更改的事件源,提交分布式系统同步的日志数据和从故障系统恢复数据。在我的用例中,kafka用于日志聚合。
的 火花流 强>
这个 指南 应该引导您实现流媒体作业的第一部分。这意味着使用spark以流媒体方式从Kafka实时获取数据。对于第二部分(将收到的数据发送到Elasticsearch),您可以使用 Elasticsearch支持Apache Spark 。
还有一个很好的例子可以使用spark streaming将Spark与Elasticsearch链接起来: https://github.com/pochi/spark-streaming-kafka-sample/blob/master/src/main/scala/pochi/spark/streaming/Elastic.scala 。但由于技术的变化,您可能需要更新一些内容。
的 Elasticsearch - Kibana 强>
最后一步很简单。您需要配置Elasticsearch和Kibana以相互通信。然后通过在Kibana上配置索引模式来加载数据,并进行虚拟化。有关更多信息,请参阅 在线文档