Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Solución de problemas de MSK como origen
En esta sección se describen los pasos comunes de solución de problemas al utilizar MSK como origen.
nota
Para solucionar problemas de procesamiento, transformación o entrega de S3, consulte las secciones anteriores.
Error de creación de conductos
Compruebe lo siguiente si el conducto con MSK como origen no se crea correctamente:
-
Compruebe que el clúster de MSK de origen se encuentre en estado activo.
-
Si utiliza la conectividad privada, asegúrese de que el enlace privado en el clúster esté activado.
Si utiliza la conectividad pública, asegúrese de que el acceso público en el clúster esté activado.
-
Si utiliza la conectividad privada, asegúrese de agregar una política basada en recursos que permita a Firehose crear un enlace privado. Consulte también: Permisos entre cuentas de MSK.
-
Asegúrese de que el rol de la configuración de origen tenga permiso para ingerir datos del tema del clúster.
-
Asegúrese de que los grupos de seguridad de la VPC permitan el tráfico de entrada en los puertos que utilizan los servidores de arranque del clúster.
Conducto suspendido
Compruebe lo siguiente si el conducto se encuentra en estado SUSPENDIDO:
-
Compruebe que el clúster de MSK de origen se encuentre en estado activo.
-
Compruebe que el tema de origen existe. En caso de que el tema se haya eliminado y vuelto a crear, tendrá que eliminar y volver a crear también el flujo de Firehose.
Conducto contrapresurizado
El valor de DataReadFromSource .Backpressured será 1 si se supera BytesPerSecondLimit cada partición o si el flujo normal de entrega es lento o se detiene.
-
Si está acertando BytesPerSecondLimit , compruebe la métrica de DataReadFromSource .Bytes y solicite un aumento del límite.
-
Compruebe los CloudWatch registros, las métricas de destino, las métricas de transformación de datos y las métricas de conversión de formato para identificar los cuellos de botella.
Actualización incorrecta de los datos
La actualización de los datos parece incorrecta.
-
Firehose calcula la actualización de los datos en función de la marca de tiempo del registro consumido. Para garantizar que esta marca de tiempo se registre correctamente cuando el registro del productor se conserva en los registros del agente de Kafka, defina la configuración del tipo de marca de tiempo del tema de Kafka para que sea
message.timestamp.type=LogAppendTime.
Problemas de conexión de clústeres de MSK
El siguiente procedimiento explica cómo se puede validar la conectividad con los clústeres de MSK. Para obtener más información sobre cómo configurar un cliente de Amazon MSK, consulte Empezar a utilizar Amazon MSK en la Guía para desarrolladores de Amazon Managed Streaming para Apache Kafka.
Validación de la conectividad con los clústeres de MSK
Cree una instancia de AL2 Amazon EC2 basada en Unix (preferiblemente). Si solo tienes habilitada la conectividad de VPC en tu clúster, asegúrate de que la EC2 instancia se ejecute en la misma VPC. Utilice SSH en la instancia una vez que esté disponible. Para obtener más información, consulta este tutorial en la Guía del EC2 usuario de Amazon.
Instale Java con el administrador de paquete Yum con el siguiente comando. Para obtener más información, consulte las instrucciones de instalación en la Guía del usuario de Amazon Corretto 8.
sudo yum install java-1.8.0Instale el cliente de AWS
ejecutando el siguiente comando: curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/installDescargue la versión 2.6* de Apache Kafka del cliente ejecutando el siguiente comando.
wget https://archive.apache.org/dist/kafka/2.6.2/kafka_2.12-2.6.2.tgz tar -xzf kafka_2.12-2.6.2.tgz-
Vaya al directorio
kafka_2.12-2.6.2/libsy ejecute el siguiente comando para descargar el archivo JAR de IAM de Amazon MSK.wget https://github.com/aws/aws-msk-iam-auth/releases/download/v1.1.3/aws-msk-iam-auth-1.1.3-all.jar -
Cree el archivo
client.propertiesen la carpeta bin de Kafka. -
Sustituya
awsRoleArnpor el ARN del rol que utilizó enSourceConfigurationde Firehose y verifique la ubicación del certificado. Permita que su usuario AWS cliente asuma el rolawsRoleArn. AWS el usuario cliente intentará asumir el rol que especificó aquí.[ec2-user@ip-xx-xx-xx-xx bin]$ cat client.properties security.protocol=SASL_SSL sasl.mechanism=AWS_MSK_IAM sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required awsRoleArn="<role arn>" awsStsRegion="<region name>"; sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler awsDebugCreds=true ssl.truststore.location=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.amzn2.0.1.x86_64/jre/lib/security/cacerts ssl.truststore.password=changeit Ejecute el siguiente comando de Kafka para enumerar temas. Si su conexión es pública, utilice los servidores de arranque de puntos de conexión públicos. Si su conexión es privada, utilice los servidores de arranque de puntos de conexión privados.
bin/kafka-topics.sh --list --bootstrap-server<bootstrap servers>--command-config bin/client.propertiesSi la solicitud tiene éxito, debería ver un resultado similar al del siguiente ejemplo.
[ec2-user@ip-xx-xx-xx-xx kafka_2.12-2.6.2]$ bin/kafka-topics.sh --list --bootstrap-server<bootstrap servers>--command-config bin/client.properties [xxxx-xx-xx 05:49:50,877] WARN The configuration 'awsDebugCreds' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig) [xxxx-xx-xx 05:49:50,878] WARN The configuration 'ssl.truststore.location' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig) [xxxx-xx-xx 05:49:50,878] WARN The configuration 'sasl.jaas.config' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig) [xxxx-xx-xx 05:49:50,878] WARN The configuration 'sasl.client.callback.handler.class' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig) [xxxx-xx-xx 05:49:50,878] WARN The configuration 'ssl.truststore.password' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig) [xxxx-xx-xx 05:50:21,629] WARN [AdminClient clientId=adminclient-1] Connection to node... __amazon_msk_canary __consumer_offsetsSi tiene problemas al ejecutar el script anterior, compruebe que los servidores de arranque que proporcionó estén accesibles en el puerto especificado. Para ello, puede descargar y utilizar telnet o una utilidad similar, como se muestra en el siguiente comando.
sudo yum install telnet telnet<bootstrap servers><port>Si la solicitud se realiza correctamente, obtendrá el siguiente resultado. Esto significa que puede conectarse al clúster de MSK dentro de la VPC local y que los servidores de arranque funcionan correctamente en el puerto especificado.
Connected to ..Si la solicitud no se realiza correctamente, compruebe las reglas de entrada del grupo de seguridad de la VPC. Por ejemplo, podría utilizar las propiedades siguientes en la regla de entrada.
Type: All traffic Port: Port used by the bootstrap server (e.g. 14001) Source: 0.0.0.0/0Vuelva a intentar la conexión telnet como se muestra en el paso anterior. Si sigue sin poder conectarse o la conexión de Firehose sigue fallando, comuníquese con el servicio de asistencia de AWS
.