Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2023-04-26 GMT+08:00

Conexión a una instancia con SASL

Esta sección describe cómo conectarse a una instancia de Kafka en una red privada o pública con una CLI y certificados de SASL.

El acceso a la red privada y el acceso a la red pública difieren solo en las direcciones IP y los puertos de conexión. Para el acceso intra-VPC, utilice el puerto 9093. Para acceso público, utilice el puerto 9095.

A continuación se describe únicamente el procedimiento para el acceso a la red pública. Para el acceso a la red privada, reemplace las direcciones IP por las actuales.

  • Para las instancias compradas en julio de 2020 y posteriores, cada broker de Kafka permite un máximo de 1000 conexiones desde cada dirección IP de forma predeterminada. Para los casos adquiridos antes de julio de 2020, cada broker de Kafka permite un máximo de 200 conexiones desde cada dirección IP de forma predeterminada. El exceso de conexiones será rechazado. Puede cambiar el límite modificando los parámetros de Kafka.

Requisitos previos

  • Ha configurado correctamente las reglas de grupo de seguridad. Para obtener más información, véase Tabla 1.
  • Se ha obtenido la dirección de conexión de instancia.
    • Para el acceso intra-VPC, utilice el puerto 9093. Obtenga la dirección de conexión de instancia en la página de detalles de instancia.
      Figura 1 Obtención de direcciones de conexión de instancia Kafka para el acceso intra-VPC con SASL habilitado
    • Para acceso público, utilice el puerto 9095. Obtenga la dirección de acceso a la instancia en la página de detalles de la instancia.
      Figura 2 Obtención de direcciones de conexión de instancia Kafka para acceso público con SASL habilitado

  • El mecanismo de SASL en uso es conocido.

    En el área Connection de la página de detalles de la instancia de Kafka, vea SASL Mechanism. Si tanto SCRAM-SHA-512 como PLAIN están habilitados, configure cualquiera de ellos para conexiones. Si SASL Mechanism no se muestra, se utiliza PLAIN de forma predeterminada.

    Figura 3 Mecanismo de SASL en uso
  • Si la creación automática de temas no está habilitada para la instancia de Kafka, obtenga el nombre del tema.

    Puede obtener el nombre del tema creado en (Opcional) Paso 3: Crear un tema en la ficha Topics de la instancia.

    Figura 4 Consulta del nombre del tema
  • Ha adquirido un ECS, ha instalado el JDK, ha configurado las variables de entorno y ha descargado un cliente de Kafka. Para obtener más información, consulte el Paso 1: Preparar el entorno.

Configuración del archivo de ajuste para la creación y recuperación de mensajes

  1. Inicio de sesión en un ECS de Linux.
  2. Asigne hosts a direcciones IP en el archivo /etc/hosts en ECS, para que el cliente pueda analizar rápidamente los brokers de instancia.

    Establezca las direcciones IP en las direcciones de conexión de instancia obtenidas en Requisitos previos. Establezca hosts en los nombres de hosts de instancia. Especifique un nombre único para cada host.

    Por ejemplo:

    10.154.48.120 server01

    10.154.48.121 server02

    10.154.48.122 server03

  3. Descargue client.truststore.jks. En la consola de Kafka, Haga clic en la instancia. En la página de detalles de la instancia, haga clic en Download junto a SSL Certificate en el área Connection.

    Descomprima el paquete para obtener el archivo de certificado del cliente client.truststore.jks.

  4. Modifique el archivo de configuración de Kafka CLI basado en el mecanismo de SASL.

    • Si se usa PLAIN, encuentre los archivos consumer.properties y producer.properties en el directorio /config de la CLI de Kafka y agregue el siguiente contenido a los archivos:
      sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
      username="**********" \
      password="**********";        
      sasl.mechanism=PLAIN
      
      security.protocol=SASL_SSL
      ssl.truststore.location={ssl_truststore_path}
      ssl.truststore.password=dms@kafka
      ssl.endpoint.identification.algorithm=

      Descripción de parámetros:

      • username y password: nombre de usuario y contraseña que establece al habilitar SASL_SSL durante la creación de una instancia de Kafka o al crear un usuario SASL_SSL.
      • ssl.truststore.location: ruta de acceso para almacenar el certificado obtenido de 3.
      • ssl.truststore.password: contraseña del certificado del servidor, que debe establecerse en dms@kafka y no se puede cambiar.
      • ssl.endpoint.identification.algorithm: si se debe verificar el nombre de dominio del certificado. Este parámetro debe dejarse en blanco, lo que indica la desactivación de la verificación del nombre de dominio.
    • Si se usa SCRAM-SHA-512, encuentre los archivos consumer.properties y producer.properties en el directorio /config de la CLI de Kafka y agregue el siguiente contenido a los archivos:
      sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
      username="**********" \
      password="**********";        
      sasl.mechanism=SCRAM-SHA-512
      
      security.protocol=SASL_SSL
      ssl.truststore.location={ssl_truststore_path}
      ssl.truststore.password=dms@kafka
      ssl.endpoint.identification.algorithm=

      Descripción de parámetros:

      • username y password: nombre de usuario y contraseña que establece al habilitar SASL_SSL durante la creación de una instancia de Kafka o al crear un usuario SASL_SSL.
      • ssl.truststore.location: ruta de acceso para almacenar el certificado obtenido de 3.
      • ssl.truststore.password: contraseña del certificado del servidor, que debe establecerse en dms@kafka y no se puede cambiar.
      • ssl.endpoint.identification.algorithm: si se debe verificar el nombre de dominio del certificado. Este parámetro debe dejarse en blanco, lo que indica la desactivación de la verificación del nombre de dominio.

Creación de mensajes

Vaya al directorio /bin del archivo de cliente de Kafka y ejecute el siguiente comando para crear mensajes:

./kafka-console-producer.sh --broker-list ${connection-address} --topic ${topic-name} --producer.config ../config/producer.properties

Descripción de parámetros:

  • {connection-address}: la dirección obtenida en Requisitos previos
  • {topic-name}: el nombre del tema creado para la instancia de Kafka

Por ejemplo, 10.3.196.45:9095,10.78.42.127:9095,10.4.49.103:9095 son las direcciones de conexión de la instancia de Kafka.

Después de ejecutar el comando anterior, puede enviar un mensaje a la instancia de Kafka ingresando la información como se le solicite y presionando Enter. El contenido de cada línea se envía como un mensaje.

[root@ecs-kafka bin]#./kafka-console-producer.sh --broker-list 10.3.196.45:9095,10.78.42.127:9095,10.4.49.103:9095  --topic topic-demo --producer.config ../config/producer.properties
>Hello
>DMS
>Kafka!
>^C[root@ecs-kafka bin]# 

Para dejar de crear mensajes, presione Ctrl+C para salir.

Recuperación de mensajes

Ejecute el siguiente comando para recuperar mensajes:

./kafka-console-consumer.sh --bootstrap-server ${connection-address} --topic ${topic-name} --group ${consumer-group-name} --from-beginning  --consumer.config ../config/consumer.properties

Descripción de parámetros:

  • {connection-address}: la dirección obtenida en Requisitos previos
  • {topic-name}: el nombre del tema creado para la instancia de Kafka
  • {consumer-group-name}: el nombre del grupo de consumidores establecido en función de sus requisitos de servicio. Si se ha especificado un nombre de grupo de consumidores en el archivo de configuración, asegúrese de utilizar el mismo nombre en la línea de comandos. De lo contrario, el consumo puede fallar. Si el nombre de un grupo de consumidores comienza con un carácter especial, como un signo numérico (#), no se pueden mostrar los datos de supervisión.

A continuación se presenta un ejemplo:

[root@ecs-kafka bin]#  ./kafka-console-consumer.sh --bootstrap-server 10.xxx.xxx.202:9095,10.xxx.xxx.197:9095,10.xxx.xxx.68:9095 --topic topic-demo --group order-test --from-beginning --consumer.config ../config/consumer.properties
Hello
Kafka!
DMS
^CProcessed a total of 3 messages
[root@ecs-kafka bin]# 

Para detener la recuperación de mensajes, presione Ctrl+C para salir.

Acciones de seguimiento

Puede configurar las reglas de alarma para monitorear métricas para recibir notificaciones de manera oportuna cuando las instancias, los brokers o los temas son anormales.

Paso 5: Configurar reglas de alarma