Dépannage de MSK comme source - Amazon Data Firehose

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Dépannage de MSK comme source

Cette section décrit les étapes de dépannage courantes lors de l'utilisation de MSK comme source

Note

Pour résoudre les problèmes de traitement, de transformation ou de diffusion du S3, reportez-vous aux sections précédentes.

Échec de la création de tuyaux

Vérifiez les points suivants si la création de votre tuyau avec MSK comme source échoue :

Tuyau suspendu

Si votre tuyau est en état de SUSPENDED, vérifiez les points suivants

  • Vérifiez que le cluster MSK source est à l'état actif.

  • Vérifiez que la rubrique source existe. Si le sujet a été supprimé et recréé, vous devrez également supprimer et recréer le stream Firehose.

Tuyau contre-pressurisé

La valeur de DataReadFromSource .Backpressured sera de 1 en cas de dépassement BytesPerSecondLimit par partition ou lorsque le flux normal de livraison est lent ou arrêté.

  • Si vous touchez, BytesPerSecondLimit veuillez vérifier la métrique DataReadFromSource .Bytes et demander une augmentation de la limite.

  • Consultez les CloudWatch journaux, les métriques de destination, les métriques de transformation des données et les métriques de conversion de format pour identifier les goulots d'étranglement.

Actualité des données incorrecte

L'actualité des données semble incorrecte

  • Firehose calcule l'actualité des données en fonction de l'horodatage de l'enregistrement consommé. Pour vous assurer que cet horodatage est correctement enregistré lorsque l'enregistrement du producteur est conservé dans les journaux de l'agent Kafka, définissez la configuration du type d'horodatage de la rubrique Kafka sur message.timestamp.type=LogAppendTime

Problèmes de connexion au cluster MSK

La procédure suivante explique comment valider la connectivité aux clusters MSK. Pour en savoir plus sur la configuration du client Amazon MSK, consultez Getting started using Amazon MSK dans le guide du développeur Amazon Managed Streaming for Apache Kafka.

Pour valider la connectivité aux clusters MSK
  1. Créez une instance AL2 Amazon EC2 basée sur Unix (de préférence). Si seule la connectivité VPC est activée sur votre cluster, assurez-vous que votre EC2 instance s'exécute dans le même VPC. Connectez-vous à l'instance en SSH une fois qu'elle est disponible. Pour plus d'informations, consultez ce didacticiel dans le guide de EC2 l'utilisateur Amazon.

  2. Installez Java à l'aide du gestionnaire de packages Yum en exécutant la commande suivante. Pour plus d'informations, consultez les instructions d'installation du guide de l'utilisateur d'Amazon Corretto 8.

    sudo yum install java-1.8.0
  3. Installez le AWS client en exécutant la commande suivante.

    curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install
  4. Téléchargez la version 2.6* du client Apache Kafka en exécutant la commande suivante.

    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
  5. Accédez au répertoire kafka_2.12-2.6.2/libs, puis exécutez la commande suivante pour télécharger le fichier Amazon MSK IAM JAR.

    wget https://github.com/aws/aws-msk-iam-auth/releases/download/v1.1.3/aws-msk-iam-auth-1.1.3-all.jar
  6. Créez un client.properties fichier dans le dossier Kafka bin.

  7. awsRoleArnRemplacez-le par le rôle ARN que vous avez utilisé dans votre Firehose SourceConfiguration et vérifiez l'emplacement du certificat. Autorisez votre utilisateur AWS client à assumer le rôleawsRoleArn. AWS L'utilisateur client tentera d'assumer le rôle que vous avez spécifié ici.

    [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
  8. Exécutez la commande Kafka suivante pour répertorier les sujets. Si votre connexion est publique, utilisez les serveurs Bootstrap du point de terminaison public. Si votre connexion est privée, utilisez les serveurs Bootstrap du point de terminaison privé.

    bin/kafka-topics.sh --list --bootstrap-server <bootstrap servers> --command-config bin/client.properties

    Si la demande aboutit, vous devriez voir un résultat similaire à l'exemple suivant.

    [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_offsets
  9. Si vous rencontrez des problèmes lors de l'exécution du script précédent, vérifiez que les serveurs bootstrap que vous avez fournis sont accessibles sur le port spécifié. Pour ce faire, vous pouvez télécharger et utiliser telnet ou un utilitaire similaire, comme indiqué dans la commande suivante.

    sudo yum install telnet telnet <bootstrap servers><port>

    Si la demande aboutit, vous obtiendrez le résultat suivant. Cela signifie que vous pouvez vous connecter à votre cluster MSK au sein de votre VPC local et que les serveurs bootstrap sont sains sur le port spécifié.

    Connected to ..
  10. Si la demande échoue, vérifiez les règles de trafic entrant sur votre groupe de sécurité VPC. Par exemple, vous pouvez utiliser les propriétés suivantes sur la règle entrante.

    Type: All traffic Port: Port used by the bootstrap server (e.g. 14001) Source: 0.0.0.0/0

    Réessayez la connexion Telnet comme indiqué à l'étape précédente. Si vous ne parvenez toujours pas à vous connecter ou si votre connexion Firehose échoue toujours, contactez le AWS support.