我是kafka的新手,我正在设置一个ELK堆栈来收集JMX指标和日志文件以供分析和报告。
目前,我已设置我的logstash以下列模式收集kafka mbeans:
{
"object_name" : "kafka.*:type=*,name=*,topic=*,partition=*"
},
{
"object_name" : "kafka.*:type=*,name=*,topic=*"
},
{
"object_name" : "kafka.*:type=*,name=*"
},
{
"object_name" : "kafka.*:type=*,client-id=*"
},
{
"object_name" : "kafka.*:type=*,name=*,clientId=*,brokerHost=*,brokerPort=*"
},
{
"object_name" : "kafka.*:type=*,name=*,clientId=*"
},
{
"object_name" : "kafka.*:type=*,broker-id=*,fetcher-id=*"
},
{
"object_name" : "kafka.*:type=*,client-id=*"
}
我遇到的问题是我错过了所有kafka.consumer
指标,当我登录RMI端口上的jconsole时,我看不到{{1}那里有mbeans。
我对这整个JMX / mbeans和kafka都很陌生,所以我在kafka.consumer
指标找到合适的位置吗?我目前确实有活跃的生产者和消费者进入集群。
答案 0 :(得分:2)
kafka.consumer
mbeans仅存在于使用者进程本身,而不是Kafka代理进程。请注意,如果您使用除java之外的消费者客户端库(例如kafka-python),则mbeans不会存在。
This是Apache文档中关于代理/消费者/生产者可用的mbeans的官方部分,here是一个稍微容易阅读的Confluent Kafka文档。< / p>