You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查找Kafka集群中的离线分区列表

查找Kafka集群离线分区的方法

以下是几种直接有效的定位方式:

1. 用Kafka自带命令行工具精准筛选

针对Kafka 2.4+版本(推荐)

新版本提供了更直接的集群状态查询命令,可快速列出不可用(离线)分区:

kafka-cluster.sh describe --bootstrap-server <你的Broker地址:端口> --unavailable-partitions

若要排查副本不同步的分区(离线前兆),可执行:

kafka-cluster.sh describe --bootstrap-server <你的Broker地址:端口> --under-replicated-partitions

兼容全版本的通用命令

无论新老版本,都可以用kafka-topics.sh结合过滤规则定位:

kafka-topics.sh --describe --bootstrap-server <你的Broker地址:端口> | grep -E "Leader: none|Isr: \[\]"
  • Leader: none 表示该分区无可用Leader,处于完全离线状态
  • Isr: [] 表示该分区无同步副本,无法对外提供服务

如果是Kafka 0.10.x及更早版本,将--bootstrap-server替换为--zookeeper <ZooKeeper地址:端口>即可。

2. 查看Broker日志文件

每个Kafka Broker的server.log会记录分区离线的具体信息,直接搜索关键词:

grep "is offline" /path/to/kafka/logs/server.log

日志条目会明确标注离线分区的主题和编号,例如:Partition [test-topic, 3] is offline

3. 通过JMX指标查看(若启用JMX)

如果集群启用了JMX,可通过以下指标定位:

  • kafka.server:type=ReplicaManager,name=OfflinePartitionsCount:统计离线分区总数
  • 要查看具体分区列表,可使用JMX客户端(如jconsole、jmxterm)连接Broker,查看kafka.server:type=ReplicaManager,name=OfflinePartitions的详细内容

注意事项

  • 替换命令中的<Broker地址:端口>或<ZooKeeper地址:端口>为集群实际地址
  • 执行命令的用户需具备访问Kafka集群或ZooKeeper的权限

内容的提问来源于stack exchange,提问作者best wishes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 02:33:10