首页/数据/数据工程与 ETL 速查/kafka-consumer-groups.sh 列出消费组
Kafka64 条

kafka-consumer-groups.sh 列出消费组

列出全部消费组用于盘点与巡检:对比组清单可以发现废弃组与错连组,配合 describe 定位积压。

列出消费组用来做什么

kafka-consumer-groups.sh --list 把集群里所有消费组一行一个列出来。它本身不显示积压,但它是很多运维动作的入口:清点有多少条链路在消费、和基线清单比对发现新增或消失的组、找出早已废弃却还保留着位移的组。真正判断链路是否健康要看 --describe 输出的 LAG,只看列表是看不出链路死活的。

基本信息

用途列出集群内全部消费组 ID
输出一行一个 group.id
配套命令--describe 看积压与成员,--state 看组状态
典型频率巡检脚本每 5 到 10 分钟一次,与基线清单比对

典型使用场景

  • 巡检:与基线清单比对,发现消失的组(链路挂掉)或新增的组(未登记)
  • 容量盘点:统计有多少条消费链路,评估元数据规模
  • 废弃组清理:找出长期无成员、位移停滞的组,再决定是否删除
  • 故障定位:确认业务组的组名拼写与预期是否一致
  • 多租户治理:按前缀过滤,识别不属于本团队的组

列表与比对

列表与比对
# 列出全部消费组
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list

# 只看本团队前缀的组并统计数量
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list | grep '^order-' | wc -l

# 与基线清单比对,找出新增与消失的组
diff <(sort baseline_groups.txt) \
     <(kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list | sort)

# 看某个组的详细状态:分区、当前位移、滞后、成员
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group order-consumer

何时用哪个子命令

子命令输出内容适用判断
--list组 ID 列表盘点与比对基线
--describe分区级位移与 LAG定位积压落在哪个分区
--state组状态(Stable/Empty 等)判断当前是否有活跃成员
--members成员与分区分配排查消费实例是否掉线
--all-groups --describe所有组一次输出输出量很大,大集群慎用
组位移保存在内部主题 __consumer_offsets 上;多租户集群的组列表会很长,脚本里要加过滤与分页处理,避免一次拉全量。
无成员的组仍然会出现在列表里,因为位移还保留着;不要只用列表判断链路存活,必须结合 --state 与 LAG 一起看。

易错点

  • 只看组列表不看 LAG,链路停了也发现不了,因为空组依然在列表里
  • 在大集群上无条件跑 --all-groups --describe,一次输出几十 MB,把巡检脚本拖死
  • 把组名当作可以随意修改的标识,改名后位移从零开始,触发全量重放
  • 不维护基线清单,新增的野生消费组长期无人认领,持续占用集群资源

数据来源与参考

  • Apache Kafka 官方文档:kafka-consumer-groups.sh
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌