可视化和分析来自Kafka的数据

问题描述 投票:0回答:2

我使用基本的Kafka-Logstash设置来与后端同步许多不同的应用程序。我对这是如何工作有一个非常基本的了解。目前我正在研究分析Kafka处理的数据。我想使用Kafka Connect来获取Kibana板上的所有东西,我不确定如何解决这个问题。

我发现this resource说如下:

虽然Kafka Connect是Apache Kafka本身的一部分,但如果您想将数据从Kafka流式传输到Elasticsearch,您将需要Confluent Platform。

我的问题是:

1.我是否必须使用Confluent来实现这一目标?

2.我应该使用Confluent实现这一目标吗?

我也研究了其他工具,例如Prometheus,但据我所知,实现类似Kibana的可视化并不容易。但如果我错了,请教育我!

elasticsearch apache-kafka logstash kibana confluent
2个回答
1
投票

我使用了Logstash(通过tcp输入插件使用JSON数据)和Co​​nfluent使用Kafka Connect Elastic连接器(使用Avro数据),两者都使用常规的Apache Kafka。所以,答案是你,不。配置Kafka Connect只需要更多时间,因为你必须构建源代码,所以你应该确定,因为它在一天结束时仍然是相同的Apache Kafka。

两者都适用于Kibana,但这当然在很大程度上取决于您如何管理Elasticsearch中的索引模式以及您正在摄取的数据。

就个人而言,如果你对设置Elasticsearch指标和类型映射一无所知我发现Logstash更简单,因为Logstash的Elasticsearch输出插件“正常工作”。我不记得我是否使用了Kafka输入插件,但我认为它的工作方式与其他任何输入类似,但如果您的生产者有一些非标准序列化,Kafka反序列化器可能会出现问题(例如,人们将Protobuf数据放入Kafka)

我看到Prometheus / Grafana更多的是指标,而不是可视化。


1
投票

您可以使用Logstash Kafka输入插件可视化和分析kafka数据。以下是Logstash代码段配置示例。

input {
  kafka {
    bootstrap_servers => "localhost:9092"
    client_id => "client_id_name"  // optional 
    topics => ["topic_name"]
  }

}

//Logstash provides different filters like json,csv and etc..You can add filters based on your requirements. 

filter {
  json {
    source => "message"
    remove_field => ["message"]
  }
}

output {
    elasticsearch{
        hosts => ["http://localhost:9200/"]
        index => "index_name"
        document_type => "document_type_name"  // optional 
    }
}

有关更多kafka输入配置选项,请参阅https://www.elastic.co/guide/en/logstash/current/plugins-inputs-kafka.html

© www.soinside.com 2019 - 2024. All rights reserved.