Configuración de Kafka 1: instalar y configurar Kafka en el entorno de Windows
Configuración de Kafka 2: configure la autenticación Kafka SASL-PLAIN en Windows
Configuración de Kafka 3: configure el clúster de Kafka en Windows
Configuración de Kafka 4: configure el certificado SSL de Kafka en Windows
Configuración de Kafka 5: configure el clúster de Kafka + SASL + SSL en Windows
Configuración de Kafka 6: configuración y adición de usuarios SASL o permisos de usuario en Windows
1. Configuración de Zookeeper
1.1. Modifique el archivo de configuración de Zookeeper.
En el directorio de instalación de Zookeeper conf, abra zoo.cfg para editarlo y agregue la siguiente configuración al archivo:
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000
1.2. Cree un nuevo zk_server_jaas.conf
En el directorio de instalación de Zookeeper conf, cree un nuevo archivo zk_server_jaas.conf y agregue el siguiente contenido:
Server {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin123456"
user_quber="quber123456"
user_quber1="quber123456"
user_quber2="quber123456";
};
Descripción:
username y paasword son la autenticación entre clusters zk.
Define tres usuarios quber, quber1 y quber2. La contraseña es quber123456, que es utilizada por los clientes de Kafka para acceder a Zookeeper
:
quber: para leer y escribir quber1: para leer
quber2 : Usado para escribir
1.3 y modificar zkEnv.cmd
en el directorio de instalación de Zookeeper bin, abrir zkEnv.cmd para editar, en el archivo set ZOO_LOG4J_PROP = INFO, la siguiente línea de CONSOLE agrega la siguiente configuración:
set SERVER_JVMFLAGS=-Djava.security.auth.login.config=D:/Net_Program/Net_Zookeeper/conf/zk_server_jaas.conf
Tenga en cuenta que la configuración anterior es una barra inclinada, no una barra invertida
1.4. Importe los archivos jar relevantes
. Busque los archivos siguientes en las bibliotecas del directorio de instalación de Kafka, respectivamente, y cópielos en la biblioteca en el directorio de instalación de Zookeeper a
kafka-clients-2.4.0.jar
lz4-java -1.6.0.jar
slf4j-api-1.7.28.jar
slf4j-log4j12-1.7.28.jar
snappy-java-1.1.7.3.jar
2. Configuración
2.1 de Kafka , cree un nuevo kafka_server_jaas.conf
en la configuración del directorio de instalación de Kafka, Cree un nuevo archivo kafka_server_jaas.conf y agregue el siguiente contenido:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin123456"
user_admin="admin123456"
user_quber="quber123456"
user_quber1="quber123456"
user_quber2="quber123456";
};
Descripción:
En la sección KafkaServer, el broker utiliza el nombre de usuario y la contraseña para inicializar la conexión con otros brokers.
En la configuración anterior, el usuario administrador
define la comunicación entre los brokers y user_userName define todas las conexiones de cliente conectadas al broker y la autenticación del broker,
incluidos otros brokers. La contraseña de usuario, user_userName debe configurarse con el usuario administrador, de lo contrario se informará un error.
2.2. Cree un nuevo kafka_client_jaas.conf
En la configuración del directorio de instalación de Kafka, cree un nuevo archivo kafka_client_jaas.conf y agregue el siguiente contenido:
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="quber"
password="quber123456";
};
Nota:
En la sección KafkaClient, el nombre de usuario y la contraseña son los usuarios que utiliza el cliente para configurar el cliente para que se conecte al intermediario.
En la configuración anterior, el cliente usa el usuario quber para conectarse al intermediario
2.3. Modifique server.properties
en la configuración del directorio de instalación de Kafka y abra el servidor. Edite las propiedades y agregue la siguiente configuración al archivo:
listeners=SASL_PLAINTEXT://192.168.2.200:9092
advertised.listeners=SASL_PLAINTEXT://192.168.2.200:9092
# 使用的认证协议
security.inter.broker.protocol=SASL_PLAINTEXT
# SASL机制
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
# 完成身份验证的类
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
# 如果没有找到ACL(访问控制列表)配置,则允许任何操作。
#allow.everyone.if.no.acl.found=true
super.users=User:admin
Nota:
La dirección IP detrás de los oyentes es la IP de la red interna
. La dirección IP detrás de advertised.listeners es la IP de la red externa
2.4. Modifique consumr.properties y producer.properties
en la configuración del directorio de instalación de Kafka, abra consumer.properties y producer.properties para editar, Agregue la siguiente configuración al archivo:
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
Modifique group.id = TestGroup1 en consumer.propertie. Si hay varios clientes consumidores, asegúrese de que el group.id no esté duplicado, de lo contrario no pueden consumir mensajes al mismo tiempo.
2.5. Modifique kafka-server-start.bat
en el directorio de instalación de Kafka bin \ windows, Abra kafka-server-start.bat para editarlo y agregue la siguiente configuración a la línea debajo de la palabra clave SetLocal en el archivo:
set KAFKA_OPTS=-Djava.security.auth.login.config=D:/Net_Program/Net_Kafka/config/kafka_server_jaas.conf
Tenga en cuenta que la configuración anterior es una barra diagonal, no una barra invertida.
2.6, modifique kafka-console-consumer.bat y kafka-console-producer.bat
en el directorio de instalación de Kafka bin \ windows, abra kafka-console-consumer.bat y kafka-console -producer.bat para editar, agregue la siguiente configuración a la siguiente línea de la palabra clave SetLocal en el archivo:
set KAFKA_OPTS=-Djava.security.auth.login.config=D:/Net_Program/Net_Kafka/config/kafka_client_jaas.conf
Tenga en cuenta que la configuración anterior es una barra, no una barra invertida
3. Inicie el servicio y la configuración
3.1, inicie los servicios de Zookeeper y Kafka por
separado Ejecute CMD como administrador (abra 2 ventanas para iniciar los servicios de Zookeeper y Kafka respectivamente) y luego ingrese:
zkServer
kafka-server-start D: \ Net_Program \ Net_Kafka \ config \ server.properties
3.2 Configuración de permisos de usuario
Aquí está la configuración de los tres usuarios mencionados anteriormente (quber [lectura y escritura], quber1 [lectura] y quber2 [ Escribir]) leer, escribir y agrupar permisos
3.2.1, configurar los permisos de lectura y escritura del usuario quber
para ejecutar CMD como administrador, y luego ingresar:
kafka-acls --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181 --add --allow-principal User:quber --operation Read --operation Write --topic TestTopic1
kafka-acls --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181 --add --allow-principal User:quber --operation Read --group TestGroup1
Descripción:
La primera línea del comando anterior es para establecer los permisos de "lectura" y "escritura"
para el usuario quber. La segunda línea del comando es establecer los permisos para el usuario quber en el grupo TestGroup1. Si el segundo comando no está configurado, consumirá datos Cuando no haya acceso a los permisos de grupo TestGroup1
3.2.2, configure los permisos de lectura de quber1
para ejecutar CMD como administrador y luego ingrese:
kafka-acls --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181 --add --allow-principal User:quber1 --operation Read --topic TestTopic1
kafka-acls --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181 --add --allow-principal User:quber1 --operation Read --group TestGroup1
Nota:
La primera línea del comando anterior es para configurar el permiso de "lectura"
para el usuario quber1. La segunda línea de comando es para configurar el permiso para el usuario quber1 en el grupo TestGroup1. Si el segundo comando no está configurado, no hay acceso al consumir datos
3.2.3 del permiso de grupo de TestGroup1 , configure el permiso de escritura de quber2
para ejecutar CMD como administrador, y luego ingrese:
kafka-acls --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181 --add --allow-principal User:quber2 --operation Write --topic TestTopic1
Descripción: El
comando anterior es para establecer el permiso de "escritura" para el usuario quber2
3.2.4, consultar el permiso de operación del usuario
Ejecutar CMD como administrador y luego ingresar:
.\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181 --list --topic TestTopic1
.\bin\windows\kafka-acls.bat --authorizer-properties zookeeper.connect=192.168.2.200:2181 --list --topic TestTopic1
或
kafka-acls --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181 --list
kafka-acls --authorizer-properties zookeeper.connect=192.168.2.200:2181 --list --topic TestTopic1
Descripción:
La función del comando anterior es enumerar todos los
usuarios con la autoridad de TestTopic1 3.2.5, eliminar la autoridad del usuario
para ejecutar CMD como administrador y luego ingresar:
.\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181 --remove --allow-principal User:quber --operation Read --topic TestTopic1 --force
或
kafka-acls --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181 --remove --allow-principal User:quber --operation Read --topic TestTopic1 --force
Descripción:
La función del comando anterior es eliminar el permiso de lectura del usuario quber en el tema TestTopic1.
3.2.6. En resumen
, hemos configurado SASL para completar, y luego podemos usar el cliente de cada idioma (como C #) para leer y escribir Envíe el mensaje a Kafka.
Si necesita agregar dinámicamente otras cuentas de lectura y escritura, solo necesita agregar la cuenta y la contraseña correspondiente en el archivo kafka_server_jaas.conf, y luego siga los pasos 3.2.1 ~ 3.2.3 para configurar los permisos de la cuenta.
Nota:
En el cliente Al consumir datos en el lado del cliente, si usa diferentes cuentas para consumir el mismo tema, debe configurar diferentes cuentas en diferentes grupos. Luego, el cliente que inicia el consumo no puede consumir datos. Una vez que
la cuenta se agrega dinámicamente y se establecen los permisos de la cuenta, debe reiniciar Kafka Servicio, de lo contrario no entrará en vigor
3.3, pruebe
3.3.1, inicie el propio productor de Kafka
, ejecute CMD como administrador e ingrese:
.\bin\windows\kafka-console-producer.bat --broker-list PLAINTEXT://192.168.2.200:9092 --topic TestTopic1 --producer.config .\config\producer.properties
或
kafka-console-producer --broker-list PLAINTEXT://192.168.2.200:9092 --topic TestTopic1 --producer.config D:\Net_Program\Net_Kafka\config\producer.properties
3.3.2. Inicie el consumidor que viene con Kafka
para ejecutar CMD como administrador y luego ingrese:
.\bin\windows\kafka-console-consumer.bat --bootstrap-server PLAINTEXT://192.168.2.200:9092 --topic TestTopic1 --from-beginning --consumer.config .\config\consumer.properties
或
kafka-console-consumer --bootstrap-server PLAINTEXT://192.168.2.200:9092 --topic TestTopic1 --from-beginning --consumer.config D:\Net_Program\Net_Kafka\config\consumer.properties
Nota:
Después de configurar en 3.3.1 en este momento, el comando anterior puede iniciar el consumidor normalmente.
4. Consulte el documento
Configuración de permisos KAFKA autenticación SASL / PLAIN: https://www.mscto.com/cloud/262978.html
tardío Productos secos | Combate de gestión de permisos de Kafka: https://blog.csdn.net/u013256816/article/details/99619334