在 Ubuntu 上配置 Kafka 用户名(账号),通常分两种场景:
下面以 SASL/PLAIN + Zookeeper 模式 为例,讲清楚怎么配“用户名”。
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="密码":客户端可登录的用户编辑:
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
编辑启动脚本:
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"
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
nano kafka_client_jaas.conf
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="kafka"
password="kafka123";
};
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
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,一般是:
KRaft 不用 Zookeeper,但 用户名配置方式一样(SASL)
Ubuntu 上 Kafka 的“用户名”是通过 SASL/PLAIN + JAAS 文件配置的,不是系统用户
如果你告诉我:
我可以给你 完全对应的配置文件。