
# 如何获取Kafka Consumer Offset信息
#### Kafka API简单说明
- 新Producer API 指org.apache.kafka.clients.producer.KafkaProducer中定义的接口，在使用"kafka-console-producer.sh"时，默认使用此API。
  
- 旧Producer API 指kafka.producer.Producer中定义的接口，在使用"kafka-console-producer.sh"时，加"--old-producer"参数会调用此API。
  
- 新Consumer API 指org.apache.kafka.clients.consumer.KafkaConsumer中定义的接口，在使用"kafka-console-consumer.sh"时，加"--new-consumer"参数会调用此API。
  
- 旧Consumer API 指kafka.consumer.ConsumerConnector中定义的接口，在使用"kafka-console-consumer.sh"时，默认使用此API。
  
![](https://support.huaweicloud.com/cmpntguide-mrs/public_sys-resources/note_3.0-zh-cn.png)
新Producer API和新Consumer API，在下文中统称为新API。
#### 前提条件
- 系统管理员已明确业务需求，并准备一个Kafka管理员用户（属于kafkaadmin组）。 创建用户相关操作请参考[创建Kafka权限角色](https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_1032.html)。
  
- 已安装客户端，例如安装目录为"/opt/client"，以下操作的客户端目录只是举例，请根据实际安装目录修改。 下载并安装集群客户端的具体操作，请参考[安装MRS集群客户端](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0089.html)。
  
 
#### 处理步骤
- **旧Consumer API**
  1. 登录MRS集群Manager。 登录集群Manager具体操作，请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
     
  
  2. 获取ZooKeeper节点业务IP及端口。
     1. 选择"集群 \> 服务 \> ZooKeeper \> 实例"，查看并记录任意一个ZooKeeper角色实例的业务IP地址。
     
     2. 选择"配置 \> 全部配置"，搜索"clientPort"，查看并记录端口号。 创建LTS版本类型集群时，可以选择"组件端口"为"开源"场景或"定制"场景，选择"开源"时ZooKeeper默认端口为2181，选择"定制"时ZooKeeper默认端口为24002。
        
      
  
  3. 以客户端安装用户，登录安装客户端的节点。
  
  4. 执行以下命令，切换到客户端安装目录，例如安装目录为"/opt/client"，具体以实际替换。
     ```
     cd /opt/client
     ```
     
  
  5. 执行以下命令配置环境变量。
     ```
     source bigdata_env
     ```
     
  
  6. 执行以下命令，进行用户认证。（集群未启用Kerberos认证（普通模式）时跳过此步骤）
     ```
     kinit 组件业务用户
     ```
     
  
  7. 执行以下命令进入Kafka客户端"bin"目录。
     ```
     cd Kafka/kafka/bin
     ```
     
  
  8. 获取consumer offset metric信息。 执行以下命令，列出Kafka集群中所有的消费者组：
     ```
     ./kafka-consumer-groups.sh --zookeeper <zookeeper_host:port>/kafka --list
     ```
     执行以下命令查看指定Kafka消费者组的详细状态和消费信息：
     ```
     ./kafka-consumer-groups.sh --zookeeper <zookeeper_host:port>/kafka --describe --group 消费者组名称
     ```
     例如执行以下命令：
     ```
     kafka-consumer-groups.sh --zookeeper 192.168.100.100:2181/kafka --list
     ```
     ```
     kafka-consumer-groups.sh --zookeeper 192.168.100.100:2181/kafka --describe --group test-consumer-group
     ```
     
   

- **新Consumer API**
  1. 登录MRS集群Manager。 登录集群Manager具体操作，请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
     
  
  2. 获取Kafka节点业务IP及端口。
     1. 选择"集群 \> 服务 \> Kafka \> 实例"，查看并记录任意一个Broker角色实例的业务IP地址。
     
     2. 选择"配置 \> 全部配置"，并根据集群模式获取端口号：
        - 集群已启用Kerberos认证（安全模式）：搜索"sasl.port"参数，查看并记录端口号，默认为21007。
        
        - 集群未启用Kerberos认证（普通模式）：搜索"port"参数，查看并记录端口号，默认为9092。
         
      
  
  3. 以客户端安装用户，登录安装客户端的节点。
  
  4. 执行以下命令，切换到客户端安装目录，例如安装目录为"/opt/client"，具体以实际替换。
     ```
     cd /opt/client
     ```
     
  
  5. 执行以下命令配置环境变量。
     ```
     source bigdata_env
     ```
     
  
  6. 执行以下命令，进行用户认证。（集群未启用Kerberos认证（普通模式）时跳过此步骤）
     ```
     kinit 组件业务用户
     ```
     
  
  7. 执行以下命令进入Kafka客户端"bin"目录。
     ```
     cd Kafka/kafka/bin
     ```
     
  
  8. 执行以下命令，获取consumer offset metric信息。
     ```
     kafka-consumer-groups.sh --bootstrap-server <broker_host:port> --describe --group 消费者组名称
     ```
     例如执行以下命令：
     ```
     kafka-consumer-groups.sh --bootstrap-server 192.168.100.100:9092 --describe --group my-group
     ```
     
   
 
