在Debian上配置Apache Kafka的认证机制,通常涉及以下几个步骤:
首先,确保你已经在Debian上安装了Kafka。你可以使用以下命令来安装:
sudo apt update
sudo apt install kafka
编辑Kafka服务器的配置文件server.properties
,通常位于/etc/kafka/server.properties
。
在server.properties
中添加或修改以下配置:
listeners=SASL_PLAINTEXT://your_host:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
allow.everyone.if.no.acl.found=false
super.users=User:admin
创建一个JAAS配置文件(例如kafka_server_jaas.conf
),用于定义Kafka服务器的认证信息:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret"
user_admin="admin-secret";
};
将这个文件放在一个安全的位置,并确保Kafka服务器有权限读取它。
在server.properties
中添加以下配置,指定JAAS配置文件的路径:
sasl.jaas.config=/path/to/kafka_server_jaas.conf
编辑Kafka客户端的配置文件(例如client.properties
),通常位于/etc/kafka/client.properties
。
在client.properties
中添加或修改以下配置:
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret";
完成配置后,重启Kafka服务器以应用更改:
sudo systemctl restart kafka
你可以使用Kafka自带的命令行工具来验证认证是否成功。例如,使用kafka-console-producer
和kafka-console-consumer
命令:
# 生产者
kafka-console-producer --broker-list your_host:9092 --topic test --property security.protocol=SASL_PLAINTEXT --property sasl.mechanism=PLAIN --property sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret"
# 消费者
kafka-console-consumer --bootstrap-server your_host:9092 --topic test --from-beginning --property security.protocol=SASL_PLAINTEXT --property sasl.mechanism=PLAIN --property sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret"
如果配置正确,你应该能够成功发送和接收消息。
通过以上步骤,你应该能够在Debian上成功配置Kafka的认证机制。