如何查找kafka经纪人用户名和密码

问题描述 投票:0回答:1

我正在使用 Kafka 3.0.0 并按照教程运行此命令:

kafka-topics.sh --command-config playground.config --bootstrap-server localhost:9092 --topic first_topic --create --partitions 5 --replication-factor 1

但出现以下错误:

    [2025-01-04 14:09:04,953] WARN [AdminClient clientId=adminclient-1] Connection to node -1 (localhost./127.0.1.1:9092) terminated during authentication. This may happen due to any of the following reasons: (1) Authentication failed due to invalid credentials with brokers older than 1.0.0, (2) Firewall blocking Kafka TLS traffic (eg it may only allow HTTPS traffic), (3) Transient network issue. (org.apache.kafka.clients.NetworkClient)

playground 配置有以下设置:

security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="username" password="password"

我读到用户名和密码是在 jaas.conf 文件中定义的,但我似乎找不到该文件。 我检查了以下位置:

  • /etc/卡夫卡/
  • /opt/kafka/config/
  • /usr/local/kafka/config/

所以我的问题是我需要提供用户名和密码吗? server.properties 没有明确定义必须使用 SASL。

apache-kafka
1个回答
0
投票

您的最后一行解释引起了一些技术疑问,但其工作原理如下:

在 Kafka 代理中启用 SASL 身份验证时,通常需要这些凭据。如果未在代理的服务器中显式配置 SASL。属性,则可能不需要用户名和密码。如果启用 SASL,则通常定义用户名和密码: 直接在代理配置(server.properties)中。 在外部文件中(例如 jaas.conf)。

检查地点:

  • Kafka 代理上的 server.properties 文件:

    听众=SASL_SSL://:9092 Advertising.listeners=SASL_SSL://您的主机:9092 security.protocol=SASL_SSL sasl.mechanism.inter.broker.protocol=PLAIN sasl.enabled.mechanisms=PLAIN Listener.name.sasl_ssl.plain.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule 需要 用户名=“admin” 密码=“admin-secret”;

上面的最后一行是listener.name.sasl_ssl.plain.sasl.jaas.config字段定义了代理端身份验证凭据。

  • 如果凭证不在 server.properties 中,则代理可以使用外部 jaas.conf 文件

在 bash 端输入:

echo $KAFKA_OPTS
,然后查找类似
-Djava.security.auth.login.config=/path/to/jaas.conf
的内容。按照路径操作,然后打开文件。用户/密码可能在这里。

© www.soinside.com 2019 - 2024. All rights reserved.