我正在使用基本的Kafka-Logstash设置将许多不同的应用程序与后端同步。我对此有一个非常基本的了解。目前,我正在研究分析Kafka处理的数据。我想用Kafka Connect将所有东西都放在Kibana板上,我不确定如何解决这个问题。
我发现this resource内容如下:
虽然Kafka Connect是Apache Kafka本身的一部分,但是如果您想将数据从Kafka流式传输到Elasticsearch,则需要Confluent平台。
我的问题是:
1。我必须使用Confluent来实现吗?
2。我应该使用Confluent来实现吗?
我也研究了其他工具,例如Prometheus,但据我所知,要实现类似Kibana的可视化并不容易。但是,如果我错了,请教育我!
答案 0 :(得分:1)
我同时使用了Logstash(带有通过tcp输入插件的JSON数据)和Confluent的Kafka Connect弹性连接器(带有Avro数据),两者均与常规Apache Kafka一起使用。因此,您的答案不行。配置Kafka Connect只会花费更多时间,因为您必须构建源代码,因此您可以肯定,因为最终还是一样的Apache Kafka。
两者都可以与Kibana一起使用,但是这当然取决于您在Elasticsearch中如何管理索引模式以及要摄取的数据。
如果您对设置Elasticsearch索引和类型映射一无所知,我个人认为Logstash会更简单,因为Logstash的Elasticsearch输出插件“正常工作”。我不记得我是否使用过Kafka输入插件,但是我想它可以与任何其他输入相似地工作,但是如果您的生产者有一些非标准的序列化,Kafka反序列化器可能会出现问题。人们将Protobuf数据放入Kafka)
我更多地看到Prometheus / Grafana的指标,而不是可视化。
答案 1 :(得分: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