普罗米修斯如何刮擦卡夫卡主题?

时间:2019-07-31 21:49:49

标签: apache-kafka kafka-consumer-api prometheus jmx-exporter

我是一名网络专家,正在尝试建立我的第一个Kafka-> Prometheus-> Grafana管道。我的Kafka经纪人的话题由外部生产者填充。那很棒。但是我不知道如何配置Prometheus服务器以从使用者那里获取该主题中的数据。

我还应该说我的Kafka节点正在我的主机Ubuntu计算机上运行(不在Docker容器中)。当我运行Kafka时,我也在运行JMX Exporter的实例。这是我在Ubuntu命令行上启动Kafka的方法:

KAFKA_OPTS="$KAFKA_OPTS -javaagent:/home/me/kafka_2.11-2.1.1/jmx_prometheus_javaagent-0.6.jar=7071:/home/Me/kafka_2.11-2.1.1/kafka-0-8-2.yml" \
  ./bin/kafka-server-start.sh config/server.properties &

好的。我的Prometheus(也是一个主机进程,不是Docker容器版本)可以成功地从我的Kafka中提取很多指标。因此,我只需要弄清楚如何让Prometheus阅读主题中的消息。我不知道这些消息是否已经可见?我的主题称为 “ vflow.sflow” ,当我查看Kafka(TCP 7071)上可用的“可剪贴”指标时,我确实看到了以下指标:< / p>

From http://localhost:7071/metrics:

kafka_cluster_partition_replicascount{partition="0",topic="vflow.sflow",} 1.0
kafka_cluster_partition_insyncreplicascount{partition="0",topic="vflow.sflow",} 1.0
kafka_log_logendoffset{partition="0",topic="vflow.sflow",} 1.5357405E7
kafka_cluster_partition_laststableoffsetlag{partition="0",topic="vflow.sflow",} 0.0
kafka_log_numlogsegments{partition="0",topic="vflow.sflow",} 11.0
kafka_cluster_partition_underminisr{partition="0",topic="vflow.sflow",} 0.0
kafka_cluster_partition_underreplicated{partition="0",topic="vflow.sflow",} 0.0
kafka_log_size{partition="0",topic="vflow.sflow",} 1.147821017E10
kafka_log_logstartoffset{partition="0",topic="vflow.sflow",} 0.0

“分区0”,“日志大小”,“日志结束偏移”……所有这些看起来都不错……我猜是吗?

但是请记住,我是Kafka / JMX / Prometheus生态系统的新手。问题:以上指标描述了我的 “ vflow.sflow” 主题吗?我可以使用它们来配置Prometheus以实际阅读该主题中的消息吗?

如果是这样,有人可以为此推荐一个好的教程吗?我一直在玩我的Prometheus YAML配置文件,但是我要做的就是使Prometheus进程崩溃。是的,我一直在阅读大量的在线文档和论坛帖子。它需要消化大量信息,并且非常容易在文档中投入 小时 ,这被证明是死路一条。

对像我这样的新手有什么建议吗?一般建议是“ 您走在正确的轨道上,接下来看X ”或“ 您显然不了解Y,花更多时间看Z ” def表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:2)

当您从Kafka容器添加该参数时,由于Prometheus并非Kafka使用者,因此它会刮除JMX指标的MBean,而不是任何实际的主题数据

从该JMX信息中,您将看到诸如消息速率和副本数之类的指标

如果您想阅读主题数据,则可以使用Kafka Connect框架,并且有一个Influx,Mongo和Elasticsearch插件,它们都是Grafana的良好来源。我不确定是否有直接的Kafka到Prometheus进口商,但是我认为这需要使用PushGateway

相关问题