cqc3073
1/12/2018 - 6:56 AM

Kafka常用排查命令

Kafka常用排查命令

Kafka常用排查命令

Kafka有新旧Consumer Api之分,旧的ConsumerApi提交的组信息及offset是存放在zookeeper中的, 而由于zookeeper并不适合频繁的大批量写入操作,所以在新的ConsumerApi的设计中, 新建了一个__consumer_offsetsTopic用于存放新ConsumerApi提交的组信息及offset。

所以现在有了新旧Api之分,旧的提交上来的还是存在zookeeper中。 kafka提供的工具脚本中和Consumer相碰的都有个选项--new-consumer, 用以区分新旧Api。

查看所有组信息

# 新版
./kafka-consumer-groups.sh --list --bootstrap-server xxx:9092 --new-consumer
newgrp

# 旧版
./kafka-consumer-groups.sh --list --zookeeper xxx:2181
console-consumer-54503
console-consumer-27065
console-consumer-1686

查看指定组的偏移信息

# 新版
 ./kafka-consumer-groups.sh --describe --bootstrap-server xxx:9092 --new-consumer --group newgrp
GROUP                          TOPIC                          PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             OWNER
newgrp                         topicname                       0          40054927        40054927        0               consumer-1_/10.28.38.222
newgrp                         topicname                       1          43599415        43599415        0               consumer-1_/10.28.38.222
newgrp                         topicname                       2          40092386        40092386        0               consumer-1_/10.28.38.222
newgrp                         topicname                       3          42575063        42575063        0               consumer-1_/10.28.38.222
newgrp                         topicname                       4          40138115        40138115        0               consumer-1_/10.28.38.222

# 旧版
./kafka-consumer-groups.sh --describe --zookeeper datacenter-test-1:2181 --group console-consumer-1686

** 旧版类似,后面只讨论新版的用法**

删除偏移信息

# 删除指定组的所有offset信息
./kafka-consumer-groups.sh --delete --bootstrap-server datacenter-test-1:9092 --new-consumer --group group1 --group group2

# 删除指定topic的所有组的offset信息
./kafka-consumer-groups.sh --delete --bootstrap-server datacenter-test-1:9092 --new-consumer --topic topicname

# 删除指定topic下指定组的offset信息
./kafka-consumer-groups.sh --delete --bootstrap-server datacenter-test-1:9092 --new-consumer --topic topicname --group group1

查看__consumer_offsets Topic内容

# 在0.10版本以后的版本,formatter使用kafka.coordinator.group.GroupMetadataManager\$OffsetsMessageFormatter
./kafka-console-consumer.sh --bootstrap-server datecenter6:9092 --new-consumer --topic __consumer_offsets --formatter "kafka.coordinator.GroupMetadataManager\$OffsetsMessageFormatter"

参考

Kafka 如何读取offset topic内容 (__consumer_offsets)