Kafka常用命令(带SASL权限版)

前言

一般需要使用的Kafka原生命令多位于bin目录,其下使用较多的脚本如下

  • kafka-topics.sh
  • kafka-console-producer.sh
  • kafka-console-consumer.sh
  • kafka-acls.sh
  • kafka-consumer-groups.sh
  • kafka-server-start.sh
  • kafka-server-stop.sh

Kafka Orders

  • Topic相关(创建/查询/删除/修改分片/平衡leader)
# 查询
./kafka-topics.sh --list --zookeeper 192.168.100.85:2181,192.168.100.85:2182

# 详情查询
./kafka-topics.sh --zookeeper 192.168.100.85:2181,192.168.100.85:2182 --describe --topic topic-sean

# 创建(3分片 复制2份 注意:replication-factor个数包括本来的个数)
./kafka-topics.sh --create --zookeeper 192.168.100.85:2181 --replication-factor 2 --partitions 3 --topic topic-sean

# 修改分片个数(只能增加,不能删除。删除需要进行迁移。)
./kafka-topics.sh --zookeeper 192.168.100.85:2181 --alter --topic topic-sean --partitions 12

# 删除 (注意 1.如果有权限需要把权限删除/2.如果需要完全删除需要开启server.properties删除属性)
./kafka-topics.sh --zookeeper 192.168.100.85:2181 --delete --topic topic-sean

# 平衡leader(注意平衡后需要使用查询命令查看集群状况)
./kafka-preferred-replica-election.sh --zookeeper zk_host:port/chroot
  • 生成/消费(原始)
# 生产者
./kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic topic-sean
# 消费者
./kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic topic-sean --from-beginning

# 新生产者(支持0.9版本+ 
./kafka-console-producer.sh --broker-list localhost:9092 --topic topic-sean --producer.config config/producer.properties 

## 新消费者(支持0.9版本+ 
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-sean --new-consumer --from-beginning --consumer.config config/consumer.properties 

## 高级点的用法(具体到某个分片)
./kafka-simple-consumer-shell.sh --brist localhost:9092 --topic topic-sean --partition 0 --offset 1234 --max-messages 10
  • 生成/消费(sasl权限控制)
# sasl consumer
./kafka-console-consumer.sh  --bootstrap-server 192.168.100.87:9093,192.168.100.88:9093,192.168.100.89:9093  --topic bmc-events-topic-dev --consumer.config ../config/consumer.properties --new-consumer

# sasl producer
./kafka-console-producer.sh --broker-list 192.168.100.87:9093  --topic bmc-events-topic-dev --producer.config ../config/consumer.properties
  • sasl 权限
# 增加权限
./kafka-acls.sh --authorizer-properties zookeeper.connect=192.168.100.85:2181 --add --allow-principal User:alice --operation Read --operation Write --topic bmc-events-topic-test

# 查询权限
./kafka-acls.sh --authorizer-properties zookeeper.connect=192.168.100.85:2181 --list --topic sean-security

# 删除权限
./kafka-acls.sh --authorizer-properties zookeeper.connect=192.168.100.85:2181 --remove --allow-principal User:alice --allow-principal User:Alice  --operation Read --operation Write --topic bmc-events-topic-dev
  • 生成/消费(offset详情查询与统计)
# 无权限版本查询(ConsumerOffsetChecker)
./kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zookeeper 192.168.100.85:2181 --group test --topic hello-sean

# 无权限版本查询(GetOffsetShell)
./kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list 192.168.100.87:9093 --topic hello-sean --time -1

# 含权限版本查询
./kafka-consumer-groups.sh --bootstrap-server 192.168.100.87:9093,192.168.100.88:9093,192.168.100.89:9093 --command-config ../config/consumer.properties --list

# 查询单个consumer group
./kafka-consumer-groups.sh --bootstrap-server 192.168.100.87:9093 --command-config ../config/consumer.properties --describe --group 'console-consumer-93774'

# 查询单个consumer group(含统计)
 ./kafka-consumer-groups.sh --bootstrap-server 192.168.100.87:9093 --command-config ../config/consumer.properties --describe --group 'console-consumer-21925' | awk ' {sum += $3};END {print sum}'

# 使用脚本新生产一个consumer group(为了方便查询)
./kafka-console-consumer.sh  --bootstrap-server 192.168.100.87:9093,192.168.100.88:9093,192.168.100.89:9093  --topic hello-sean --consumer.config ../config/consumer.properties --new-consumer

./kafka-consumer-groups.sh --bootstrap-server 192.168.100.87:9093 --command-config ../config/consumer.properties --describe --group 'event_processor_group'

./kafka-topics.sh --list --zookeeper 192.168.100.85:2181

./kafka-consumer-groups.sh --bootstrap-server 192.168.100.87:9093,192.168.100.88:9093,192.168.100.89:9093 --command-config ../config/consumer.properties --describe --group 'console-consumer-67854'| awk ' {sum += $3};END {print sum}'

./kafka-consumer-groups.sh --bootstrap-server 192.168.100.87:9093,192.168.100.88:9093,192.168.100.89:9093 --command-config ../config/consumer.properties --describe --group 'console-consumer-67854'| awk ' {sum += $4};END {print sum}'

Reference

[1]. JIRA-KAFKA-3151(SASL)
[2]. kafka命令大全(orchome.com)
[3]. Kafka命令行常用命令说明
[4]. Kafka常用命令(csdn.yanxml)
[5]. Kafka常用命令行总结


Others

bin目录下的所有脚本,分析作用如下:

# version kafka-1.0.0
# kakfa 相关
connect-standalone.sh         
connect-distributed.sh   

# consumer     
kafka-consumer-groups.sh   
kafka-consumer-perf-test.sh          
kafka-console-consumer.sh     
kafka-simple-consumer-shell.sh  

# producer
kafka-console-producer.sh   
kafka-producer-perf-test.sh          

# broker 启/停  
kafka-server-stop.sh            
kafka-server-start.sh  
kafka-broker-api-versions.sh  

# topic
kafka-topics.sh                     

# acls 权限
kafka-acls.sh                 

# others

# kafka config 配置
kafka-configs.sh              

# 重新分片 partition                   
kafka-reassign-partitions.sh

# reset kafka streaming    
kafka-streams-application-reset.sh  

kafka-replay-log-producer.sh    
kafka-delete-records.sh              
kafka-replica-verification.sh   
kafka-verifiable-consumer.sh        
kafka-log-dirs.sh                    
kafka-verifiable-producer.sh
kafka-mirror-maker.sh                
trogdor.sh
kafka-preferred-replica-election.sh  

# run-class
kafka-run-class.sh              

# 内置ZooKeeper相关
zookeeper-shell.sh
zookeeper-server-start.sh
zookeeper-server-stop.sh
zookeeper-security-migration.sh

# windows脚本 文件夹
windows/
### Kafka SASL/SCRAM 认证机制配置与最佳实践 #### 1. SASL/SCRAM 认证概述 Kafka 支持多种安全协议来保护集群通信的安全性,其中SASL/SCRAM是一种常用的认证方式。通过这种方式可以增强客户端到服务器以及代理之间的身份验证安全性[^1]。 #### 2. 配置服务端参数 为了启用SASL/SCRAM,在Kafka Broker上需要修改`server.properties`文件并添加如下设置: ```properties listeners=SASL_PLAINTEXT://:9092 sasl.enabled.mechanisms=SCRAM-SHA-256,SCRAM-SHA-512 security.inter.broker.protocol=SASL_PLAINTEXT listener.name.sasl_plaintext.scram-sha-256.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required; listener.name.sasl_plaintext.scram-sha-512.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required; ``` 这些属性定义了监听器类型、允许使用的散列算法(SHA-256 或 SHA-512),以及内部代理间通讯所采用的身份验证方法。 #### 3. 创建用户凭证 接下来要创建用于连接Kafka的用户名及其对应的密码哈希值。这可以通过执行Zookeeper命令完成: ```bash bin/kafka-configs.sh --zookeeper localhost:2181 \ --alter --add-config 'SCRAM-SHA-256=[password=<your_password>],SCRAM-SHA-512=[password=<your_password>]' \ --entity-type users --entity-name your_username ``` 上述脚本会向指定名称的用户添加两种不同强度级别的SCRAM密钥。 #### 4. 设置客户端配置 对于Windows 11环境下的Kafka客户端而言,则需编辑位于`\kafka2.12.3.8.0\config\client.properties`路径下相应的配置文件,并加入必要的选项以支持SASL/SCRAM认证模式[^2]: ```properties bootstrap.servers=localhost:9092 security.protocol=SASL_PLAINTEXT sasl.mechanism=SCRAM-SHA-256 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="your_username" password="<your_password>"; ``` 这里指定了引导服务器地址、安全协议种类、具体选用哪种散列函数作为协商机制,还有最重要的JAAS登录模块配置字符串,它包含了实际参与鉴权过程中的账号信息。 #### 5. 测试连接 最后一步就是尝试发送消息测试整个流程是否正常工作。如果一切顺利的话,应该能够成功建立SASL/SCRAM保护措施的数据传输通道。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值