Risoluzione dei problemi relativi a MSK come origine - Amazon Data Firehose

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi relativi a MSK come origine

Questa sezione descrive le fasi comuni per la risoluzione dei problemi relativi all'utilizzo di MSK come origine

Nota

Per la risoluzione dei problemi di elaborazione, trasformazione o distribuzione di S3, consulta le sezioni precedenti

Creazione di hose non riuscita

Controllate quanto segue se la creazione del tubo con MSK As Source non funziona:

Hose sospeso

Controlla quanto segue se l'hose è in stato SOSPESO

  • Verifica che lo stato del cluster MSK di origine sia attivo.

  • Verifica che l'argomento di origine esista. Nel caso in cui l'argomento sia stato eliminato e ricreato, sarà necessario eliminare e ricreare anche lo stream Firehose.

Hose in contropressione

Il valore di DataReadFromSource .Backpressured sarà 1 quando BytesPerSecondLimit per partizione viene superato o se il normale flusso di distribuzione è lento o interrotto.

  • Se stai raggiungendo, controlla la metrica DataReadFromSource .Bytes e BytesPerSecondLimit richiedi un aumento del limite.

  • Controlla CloudWatch i log, le metriche di destinazione, le metriche di trasformazione dei dati e le metriche di conversione del formato per identificare i colli di bottiglia.

Aggiornamento dei dati non corretto

L'aggiornamento dei dati sembra errato

  • Firehose calcola l'aggiornamento dei dati in base al timestamp del record utilizzato. Per garantire che questo timestamp venga registrato correttamente quando il record del produttore viene mantenuto nei log del broker di Kafka, imposta la configurazione del tipo di timestamp dell'argomento Kafka su message.timestamp.type=LogAppendTime.

Problemi di connessione al cluster MSK

La procedura seguente spiega come convalidare la connettività ai cluster MSK. Per informazioni dettagliate sulla configurazione del client Amazon MSK, consulta la Guida introduttiva all'uso di Amazon MSK nella Amazon Managed Streaming for Apache Kafka Developer Guide.

Per convalidare la connettività ai cluster MSK
  1. Crea un'istanza AL2 Amazon EC2 basata su UNIX (preferibilmente). Se sul cluster è abilitata solo la connettività VPC, assicurati che l' EC2 istanza venga eseguita nello stesso VPC. Accedi tramite SSH all'istanza una volta che è disponibile. Per ulteriori informazioni, consulta questo tutorial nella Amazon EC2 User Guide.

  2. Installa Java usando il gestore di pacchetti Yum eseguendo il comando seguente. Per ulteriori informazioni, consulta le istruzioni di installazione nella Guida per l'utente di Amazon Corretto 8.

    sudo yum install java-1.8.0
  3. Installa il AWS client eseguendo il comando seguente.

    curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install
  4. Scarica la versione 2.6* del client Apache Kafka eseguendo il comando seguente.

    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. Vai alla directory kafka_2.12-2.6.2/libs, quindi esegui il comando per scaricare il file JAR IAM di 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
  6. Crea il client.properties file nella cartella bin di Kafka.

  7. Sostituiscilo awsRoleArn con il ruolo ARN che hai usato nel tuo Firehose SourceConfiguration e verifica la posizione del certificato. Consenti all'utente AWS client di assumere il ruolo. awsRoleArn AWS l'utente client tenterà di assumere il ruolo che hai specificato qui.

    [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. Esegui il seguente comando Kafka per elencare gli argomenti. Se la tua connessione è pubblica, usa i server Bootstrap degli endpoint pubblici. Se la tua connessione è privata, usa i server Bootstrap endpoint privati.

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

    Se la richiesta ha esito positivo, dovresti vedere un output simile all'esempio seguente.

    [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. In caso di problemi durante l'esecuzione dello script precedente, verifica che i server di bootstrap forniti siano raggiungibili sulla porta specificata. A tale scopo, è possibile scaricare e utilizzare telnet o un'utilità simile, come illustrato nel comando seguente.

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

    Se la richiesta ha esito positivo, si otterrà il seguente risultato. Ciò significa che puoi connetterti al tuo cluster MSK all'interno del tuo VPC locale e che i server di bootstrap sono integri sulla porta specificata.

    Connected to ..
  10. Se la richiesta non va a buon fine, controlla le regole in entrata sul tuo gruppo di sicurezza VPC. Ad esempio, è possibile utilizzare le seguenti proprietà sulla regola in entrata.

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

    Riprova la connessione telnet come mostrato nel passaggio precedente. Se non riesci ancora a connetterti o se la connessione Firehose continua a fallire, contatta l'assistenza.AWS