设置
我在端口8082上有一个正在运行的服务器(wilfly swarm,keycloack authenticated),它承载了我的日志功能。我可以通过REST将日志线推送到这个服务器。在幕后,Kafka的制作人正在运行和传播给Kafka的信息。
listeners=PLAINTEXT://localhost:9092
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
super.users=User:Bob;User:Alice;User:anonymous
call kafka\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testtopic
call kafka\bin\windows\kafka-acls.bat --add --allow-principal User:anonymous --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=localhost:2181 --allow-host http://localhost:8082 --operation Read --operation Write --topic testtopic
call kafka\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:anonymous --consumer --topic testtopic --group group --allow-host http://localhost:8082
call kafka\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:anonymous --producer --topic testtopic --allow-host http://localhost:8082
call kafka\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:anonymous --producer --topic testtopic --allow-host 192.168.3.63
@Produces
private Producer<String, String> stringStringProducer(){
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("acks", "all");
props.put("retries", 0);
props.put("batch.size", 16384);
props.put("linger.ms", 1);
props.put("buffer.memory", 33554432);
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
Producer<String, String> producer = null;
try {
producer = new KafkaProducer<>(props);
return producer;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
当我试图通过Java生成器(和控制台生成器)生成消息时,我得到:
[org.apache.kafka.clients.NetworkClient] (kafka-producer-network-thread | producer-6) Error while fetching metadata with correlation id 10 : {testtopic=UNKNOWN_TOPIC_OR_PARTITION}
有人知道我做错了什么吗?
第一种解决方案
call kafka\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testtopic
call kafka\bin\windows\kafka-acls.bat --add --allow-principal User:anonymous --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=localhost:2181 --allow-host http://localhost:8082 --operation Read --operation Write --topic testtopic
call kafka\bin\windows\kafka-acls.bat --add --allow-principal User:ANONYMOUS --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=localhost:2181 --allow-host 127.0.0.1 --operation Read --operation Write --topic testtopic
call kafka\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:anonymous --consumer --topic testtopic --group group --allow-host http://localhost:8082
call kafka\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:ANONYMOUS --consumer --topic testtopic --group group --allow-host 127.0.0.1
call kafka\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:anonymous --producer --topic testtopic --allow-host http://localhost:8082
call kafka\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:ANONYMOUS --producer --topic testtopic --allow-host 127.0.0.1
[2017-03-28 15:39:07,704] WARN Error while fetching metadata with correlation id 0 : {testtopic=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)
[2017-03-28 15:39:07,800] WARN Error while fetching metadata with correlation id 1 : {testtopic=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)
[2017-03-28 15:39:07,912] WARN Error while fetching metadata with correlation id 2 : {testtopic=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)
[2017-03-28 15:39:08,024] WARN Error while fetching metadata with correlation id 3 : {testtopic=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)
我在代理配置(server.properties)中为超级用户添加了“匿名”:
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
super.users=User:Bob;User:Alice;User:ANONYMOUS
#port = 9092
#advertised.host.name = localhost
#listeners=SASL_SSL://localhost:9092
#security.inter.broker.protocol=SASL_SSL
#sasl.mechanism.inter.broker.protocol=PLAIN
#sasl.enabled.mechanisms=PLAIN
host.name=127.0.0.1
advertised.host.name=localhost
advertised.port=9092
出现此问题是因为您在以下行中启用了授权:
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
但是代理是用user:anonymouth
运行的,因为下面的行:
listeners=PLAINTEXT://localhost:9092
也就是说,代理没有办法对自己进行身份验证。在我的情况下(SSL身份验证),我必须执行以下操作:
另外,你的回答中的变通方法是不鼓励的。你可以在这里读到它的含义。
一、前言 为了避免存储在 Zookeeper 上的数据被其他程序或者人为误修改,Zookeeper 提供了 ACL(Access Control Lists) 进行权限控制。只有拥有对应权限的用户才可以对节点进行增删改查等操作。下文分别介绍使用原生的 Shell 命令和 Apache Curator 客户端进行权限设置。 二、使用Shell进行权限管理 2.1 设置与查看权限 想要给某个节点设置权
我需要为访问动物园管理员服务器内数据的客户端设置用户:密码身份验证。我正在用zkCli和Curator Framework进行实验,以弄清楚这是如何工作的,出于某种原因,从Curator框架执行的代码会绕过所有安全设置,并在不应该拥有这些设置的情况下,以完全访问权限的方式运行。 我一直在关注这些问题的答案: 与Curator一起使用ACL 如何使用zkCli从ZooKeeper访问受保护的znod
zookeeper 的 ACL(Access Control List,访问控制表)权限在生产环境是特别重要的,所以本章节特别介绍一下。 ACL 权限可以针对节点设置相关读写等权限,保障数据安全性。 permissions 可以指定不同的权限范围及角色。 ACL 命令行 getAcl 命令:获取某个节点的 acl 权限信息。 setAcl 命令:设置某个节点的 acl 权限信息。 addauth
对集群设置有点困惑: > Zookeeper可以通过配置myid(1,2,3...)将其设置为群集例如,在zoo.cfg文件中具有zookeeper1:2888:3888、zookeeper2:2889:3889 对于Kafka,在server.properties文件中,是否必须为参数zookeeper.connect指定zookeeper服务器的完整列表,还是只要1就足够了?有什么不同吗?我见
我为3节点Kafka集群设置了ACL,并能够通过生产者控制台和消费者控制台发送和接收主题。现在我想用ACL配置Kafka连接。我尝试了SASL_PLAINTEXT组合和连接。日志文件,它显示以下错误。它没有从源表同步到主题,请在我缺少任何配置的地方提供帮助。 错误日志 我的配置如下文件所示。我在jaas中提到过用户。conf文件并设置到环境中。 1: zookeeper.properties 2:
我正在尝试使用confluent 6.0.1社区版设置我的第一个Kafka集群。我有三个动物园管理员和三个Kafka节点。三个服务器节点是: Kafka服务器1 Kafka服务器2 Kafka服务器3 每个节点都运行动物园管理员和Kafka服务。身份验证是:SASL_SSL使用 SCRAM-SHA-256 zookeeper和kafka服务似乎都工作正常,但当我试图分配ACL时,我得到以下错误: