更新时间:2025-08-21 GMT+08:00

查看Kafka重平衡日志

Rebalance是重新分配消费组中的消费者和Topic分区之间订阅关系的过程。在Rebalance过程中消费组下的所有消费者都会停止消费,等待Rebalance完成。

可能会触发Rebalance的原因:

  • 消费组成员个数发生变化,例如有新的消费者加入,或者有消费者退出。
  • 消费组订阅的Topic个数发生变化。
  • 消费组订阅的Topic分区数发生变化。

重平衡日志记录Rebalance的详情,包括Rebalance时间、原因和触发Rebalance的客户端等。本章节介绍如何在控制台查看重平衡日志。

重平衡日志存储在云日志服务(Log Tank Service,简称LTS)中,由LTS提供查询功能。

约束与限制

  • 2023年4月6日前创建的实例,不支持重平衡日志功能。
  • 单机实例不支持查看重平衡日志。
  • 重平衡日志默认存储时间为七天,如果需要延长保留天数,可以在LTS控制台修改日志组的存储时间
  • 重平衡日志开启后会在LTS控制台创建对应的日志组、日志流和仪表盘。使用期间按照日志量收费,收费标准请参照LTS价格详情
  • 不同Kafka实例使用相同的日志组和日志流保存重平衡日志时,在每个Kafka实例中都能看到使用同一个日志组和日志流的所有Kafka实例的重平衡日志。

前提条件

  • 开启重平衡日志需要您的账号拥有LTS服务的创建日志组和日志流的权限。
  • Kafka实例处于“运行中”时,才能开启/关闭重平衡日志。

开启重平衡日志

  1. 登录Kafka控制台
  2. 在管理控制台左上角单击,选择Kafka实例所在的区域。
  3. 单击Kafka实例的名称,进入实例详情页面。
  4. 在左侧导航栏单击“分析与诊断 > 重平衡日志”,进入“重平衡日志”页面。
  5. 单击“开启日志”,弹出“开启日志”对话框。
  6. 单击“确定”,弹出“日志配置”对话框。
  7. 根据实际情况决定是否开启日志配置,单击“确定”,自动跳转到“后台任务管理”页面,“状态”为“成功”时,表示开启重平衡日志成功。

    • 不开启:LTS后台会自动创建一个日志组以及对应的日志流。
    • 开启:选择存储日志文件“coordinator.log”的日志组和日志流。您还可以单击右侧的“查看日志组”,跳转到LTS控制台,查看或创建日志组和日志流。

查看重平衡日志

  1. 登录Kafka控制台
  2. 在管理控制台左上角单击,选择Kafka实例所在的区域。
  3. 单击Kafka实例的名称,进入实例详情页面。
  4. 在左侧导航栏单击“分析与诊断 > 重平衡日志”,进入“重平衡日志”页面。
  5. 在“仪表盘”页签,查看消费组重平衡次数和原因。在“日志查询”页签,查看重平衡日志。

    如果您需要搜索日志,请参考进入搜索LTS日志页面进行操作。

    重平衡日志示例如下:

    {
        "level":"INFO",
        "timestamp":"2023-03-23 17:23:22,906",
        "message":{
            "leaderId":"consumer-1-177817b6-1f29-4717-8a83-dda8eaab1635",
            "generationId":"1",
            "reason":"Assignment received from leader for group KMOffsetCache-dms-vm-fa3cf9d6-manager-shared-server-0 for generation 1",
            "groupId":"KMOffsetCache-dms-vm-fa3cf9d6-manager-shared-server-0",
            "coordinatorId":"0",
            "type":"END_REBALANCE",
            "group":"GroupMetadata(groupId=KMOffsetCache-dms-vm-fa3cf9d6-manager-shared-server-0, generation=1, protocolType=Some(consumer), currentState=CompletingRebalance, members=Map(consumer-1-177817b6-1f29-4717-8a83-dda8eaab1635 -> MemberMetadata(memberId=consumer-1-177817b6-1f29-4717-8a83-dda8eaab1635, clientId=consumer-1, clientHost=/172.31.2.168, sessionTimeoutMs=10000, rebalanceTimeoutMs=300000, supportedProtocols=List(range), )))"
        }
    }

    参数说明如表1所示。

    表1 重平衡参数说明

    参数名称

    说明

    level

    重平衡日志的等级,只有“INFO”一种等级。

    timestamp

    Rebalance时间。

    leaderId

    消费者Leader ID。

    generationId

    消费组Generation ID。Generation等同于消费组执行Rebalance的次数,每次Rebalance完成后,Generation都会增加1。

    reason

    触发Rebalance的原因。

    groupId

    消费组ID。

    coordinatorId

    Coordinator组件所在的Broker。

    type

    触发Rebalance的操作,取值如下:

    • JOIN_GROUP:新消费者加入消费组。
    • OVER_CAPACITY:超过组限制。
    • UPDATE_MEMBER: 消费者更新元数据。
    • PROTOCOL_CHANGE:协议变化。
    • HEARTBEAT_EXPIRED:消费者心跳超时。
    • SYNC_GROUP:同步分配计划。
    • END_REBALANCE:重平衡结束。
    • LEAVE_GROUP:消费者主动离开消费组。
    • DELETE_GROUP:用户删除消费组。

    group

    消费组中消费者的信息。

关闭重平衡日志

  1. 登录Kafka控制台
  2. 在管理控制台左上角单击,选择Kafka实例所在的区域。
  3. 单击Kafka实例的名称,进入实例详情页面。
  4. 在左侧导航栏单击“分析与诊断 > 重平衡日志”,进入“重平衡日志”页面。
  5. 在页面右上角单击“关闭日志”,弹出确认关闭对话框。
  6. 单击“确定”,自动跳转到“后台任务管理”页面,当重平衡日志任务的“状态”为“成功”时,表示关闭重平衡日志成功。

    关闭重平衡日志只是停止重平衡日志上报功能,LTS控制台的日志组和日志流仍然保留,还会继续收费,如不需要保留该日志,可以在LTS控制台删除对应的日志组日志流