Solução de problemas do MSK como fonte - Amazon Data Firehose

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Solução de problemas do MSK como fonte

Esta seção descreve as etapas comuns de solução de problemas ao usar o MSK como fonte

nota

Para solucionar problemas de processamento, transformação ou entrega do S3, consulte as seções anteriores

Falha da criação do hose

Verifique o seguinte se a criação do hose com MSK como fonte estiver falhando:

Hose suspenso

Verifique os pontos a seguir se o hose estiver no estado SUSPENSO

  • Verifique se o cluster do MSK de origem está no estado Ativo.

  • Verifique se o tópico de origem existe. Caso o tópico tenha sido excluído e recriado, você também precisará excluir e recriar o fluxo do Firehose.

Hose com contrapressão

O valor de DataReadFromSource .Backpressured será 1 quando BytesPerSecondLimit cada partição for excedida ou se o fluxo normal de entrega for lento ou interrompido.

  • Se você estiver pressionando BytesPerSecondLimit , verifique a métrica DataReadFromSource .Bytes e solicite um aumento de limite.

  • Verifique os CloudWatch registros, as métricas de destino, as métricas de transformação de dados e as métricas de conversão de formato para identificar os gargalos.

Atualidade incorreta de dados

A atualidade dos dados parece incorreta

  • O Firehose calcula a atualidade dos dados com base no timestamp do registro consumido. Para garantir que esse timestamp seja registrado corretamente quando o registro do produtor persiste nos registros do agente do Kafka, defina a configuração do tipo de timestamp do tópico Kafka como message.timestamp.type=LogAppendTime.

Problemas de conexão de cluster do MSK

O procedimento a seguir explica como é possível validar a conectividade com clusters do MSK. Para obter detalhes sobre a configuração do cliente do Amazon MSK, consulte Conceitos básicos de uso do Amazon MSK no Guia do desenvolvedor do Amazon Managed Streaming for Apache Kafka.

Para validar a conectividade com clusters do MSK
  1. Crie uma instância AL2 Amazon EC2 baseada em UNIX (preferencialmente). Se você tiver somente a conectividade VPC habilitada em seu cluster, certifique-se de que sua EC2 instância seja executada na mesma VPC. Faça SSH para a instância quando disponível. Para obter mais informações, consulte este tutorial no Guia do EC2 usuário da Amazon.

  2. Instale o Java usando o gerenciador de pacotes Yum executando o comando a seguir. Para obter mais informações, consulte as instruções de instalação no Guia do usuário do Amazon Corretto 8.

    sudo yum install java-1.8.0
  3. Instale o cliente da AWS executando o comando a seguir.

    curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install
  4. Faça o download da versão 2.6* do cliente do Apache Kafka executando o comando a seguir.

    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. Acesse o diretório kafka_2.12-2.6.2/libs e execute o seguinte comando para baixar o arquivo JAR do IAM do 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. Crie o arquivo client.properties na pasta bin do Kafka.

  7. Substitua awsRoleArn pelo ARN do perfil que você usou na sua SourceConfiguration do Firehose e verifique a localização do certificado. Permita que seu usuário AWS cliente assuma a funçãoawsRoleArn. AWS o usuário cliente tentará assumir a função que você especificou aqui.

    [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. Execute o comando do Kafka a seguir para listar tópicos. Se sua conexão for pública, use os servidores de Bootstrap de endpoints públicos. Se sua conexão for privada, use os servidores de Bootstrap de endpoints privados.

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

    Se a conexão obtiver êxito, você verá um resultado semelhante ao exemplo a seguir.

    [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. Se você tiver algum problema ao executar o script anterior, verifique se os servidores de bootstrap fornecidos estão acessíveis na porta especificada. Para fazer isso, é possível baixar e usar o telnet ou um utilitário similar, conforme mostrado no comando a seguir.

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

    Se o teste obtiver êxito, você verá a resultado a seguir. Isso significa que você é capaz de se conectar ao seu cluster do MSK em sua VPC local e que os servidores de bootstrap estão íntegros na porta especificada.

    Connected to ..
  10. Se a solicitação não obtiver êxito, verifique as regras de entrada no grupo de segurança da sua VPC. Como exemplo, é possível usar as propriedades a seguir na regra de entrada.

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

    Tente novamente a conexão telnet conforme mostrado na etapa anterior. Se você ainda não conseguir se conectar ou se sua conexão do Firehose ainda estiver falhando, entre em contato com o suporte da AWS.