温馨提示×

ubuntu kafka配置怎么配用户名

小樊
34
2026-09-14 17:23:36
栏目: 智能运维

Ubuntu 上配置 Kafka 用户名(账号),通常分两种场景:

  1. Kafka 自带的基础认证(SASL/PLAIN) ✅ 最常用
  2. KRaft / Zookeeper 模式下的权限用户

下面以 SASL/PLAIN + Zookeeper 模式 为例,讲清楚怎么配“用户名”。


一、开启 Kafka 用户名认证(SASL/PLAIN)

1️⃣ 创建用户配置文件

sudo mkdir -p /opt/kafka/config
sudo nano /opt/kafka/config/kafka_server_jaas.conf

内容如下(这是 服务端用户):

KafkaServer {
  org.apache.kafka.common.security.plain.PlainLoginModule required
  username="admin"
  password="admin123"
  user_admin="admin123"
  user_kafka="kafka123";
};

说明:

  • username:broker 之间通信用的用户名
  • user_xxx="密码":客户端可登录的用户

2️⃣ 修改 Kafka 服务端配置

编辑:

sudo nano /opt/kafka/config/server.properties

追加或修改:

listeners=SASL_PLAINTEXT://:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN

3️⃣ 让 Kafka 加载 JAAS

编辑启动脚本:

sudo nano /opt/kafka/bin/kafka-server-start.sh

KAFKA_HEAP_OPTS 下面加:

export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/kafka/config/kafka_server_jaas.conf"

4️⃣ 启动 Kafka

/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties

二、客户端使用用户名连接

1️⃣ 客户端 JAAS 配置

nano kafka_client_jaas.conf
KafkaClient {
  org.apache.kafka.common.security.plain.PlainLoginModule required
  username="kafka"
  password="kafka123";
};

2️⃣ 客户端 properties

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN

3️⃣ 消费示例

export KAFKA_OPTS="-Djava.security.auth.login.config=kafka_client_jaas.conf"

kafka-console-consumer.sh \
  --bootstrap-server localhost:9092 \
  --topic test \
  --consumer.config client.properties

三、常见问题

❓ 只配用户名不配密码?

不行,Kafka 必须 用户名 + 密码

❓ Ubuntu 自带 Kafka?

Ubuntu 官方源没有 Kafka,一般是:

  • 手动下载
  • Docker
  • 云厂商托管

❓ KRaft 模式呢?

KRaft 不用 Zookeeper,但 用户名配置方式一样(SASL)


四、总结一句话

Ubuntu 上 Kafka 的“用户名”是通过 SASL/PLAIN + JAAS 文件配置的,不是系统用户

如果你告诉我:

  • Kafka 版本
  • 是否用 Docker
  • Zookeeper 还是 KRaft

我可以给你 完全对应的配置文件

0