集群环境下的kafka监控

00jrzges  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(416)

我有一个kafka集群(3台机器,每台机器上运行一个zookeeper和一个broker)我正在使用kafka\u exporter来监视消费者滞后度量,正常情况下工作正常。但是,当我杀了一个经纪人,普罗米修斯就不能从他那里得到度量http://machine1:9308/metric(kafka\u exporter metric endpoint),因为获取数据需要很长时间(1,5m),因此将超时。现在,如果我重新启动Kafka导出器,我将看到一些错误:

Cannot get leader of topic __consumer_offsets partition 20: kafka server: In the middle of a leadership election, there is currently no leader for this partition and hence it is unavailable for writes

当我运行命令:kafka-topics.bat--descripe--zookeeper machine1:2181、machine2:2181、machine3:2181--topic\u consumer\u offset时,结果是:

Topic:__consumer_offsets        PartitionCount:50       ReplicationFactor:1     Configs:compression.type=producer,cleanup.policy=compact,segment.bytes=104857600
Topic: __consumer_offsets       Partition: 0    Leader: -1      Replicas: 1     Isr: 1
Topic: __consumer_offsets       Partition: 1    Leader: 2       Replicas: 2     Isr: 2

Topic: __consumer_offsets       Partition: 49   Leader: 2       Replicas: 2     Isr: 2

这是配置错误吗?在这种情况下,我怎样才能得到消费者的滞后呢?“leader:-1”是一个错误?如果我永远关闭机器1,它还能正常工作吗?

vmdwslir

vmdwslir1#

leader为-1意味着集群中没有其他代理拥有分区数据的副本。
本例中的问题是,主题消费偏移量的复制因子是1,这意味着只有一个代理托管主题中任何分区的数据。如果丢失任何一个代理,代理上的所有分区都将不可用,从而导致主题不可用。所以,你的Kafka努出口商将无法阅读这个主题。
如果您想在代理丢失时继续导出使用者偏移量,解决方法是重新配置主题“使用者偏移量”,使复制因子大于1。
建议配置-复制因子-3,min.insync.replicas-2。

相关问题