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

Visualize and analyze data from Kafka

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

我发现 this resource 说了以下内容:

Whilst Kafka Connect is part of Apache Kafka itself, if you want to stream data from Kafka to Elasticsearch you’ll want the Confluent Platform.

我的问题是:

1.我必须使用 Confluent 才能实现吗?

2。我应该使用 Confluent 来实现吗?

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

我使用了 Logstash(通过 tcp 输入插件使用 JSON 数据)和 Confluent 的 Kafka Connect Elastic connector(使用 Avro 数据),两者都只使用常规的 Apache Kafka。所以,do you 的答案是,不。配置 Kafka Connect 将花费更多时间,因为您必须构建源代码,所以 您应该,当然,因为它在结束时仍然是相同的 Apache Kafka日。

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

如果您对设置 Elasticsearch 索引和类型映射一无所知,我个人认为 Logstash 更简单一些,因为 Logstash 的 Elasticsearch 输出插件 "just works"。我不记得我是否使用过 Kafka 输入插件,但我想它的工作方式与任何其他输入类似,但如果您的生产者有一些非标准序列化(例如,一些人们将 Protobuf 数据放入 Kafka)

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

您可以使用 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