Solução de problemas 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 MSK como fonte

Esta seção descreve as etapas comuns de solução de problemas ao usar MSK As Source.

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 sua mangueira com MSK As Source estiver falhando na criação

Hose suspenso

Verifique o seguinte se sua mangueira estiver em SUSPENDED estado

  • Verifique se o MSK cluster 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.

MSKproblemas de conexão de cluster

O procedimento a seguir explica como você pode validar a conectividade com MSK clusters. Para obter detalhes sobre a configuração MSK do cliente Amazon, consulte Introdução ao uso da Amazon MSK no Guia do desenvolvedor do Amazon Managed Streaming for Apache Kafka.

Para validar a conectividade com clusters MSK
  1. Crie uma instância AL2 Amazon EC2 baseada em UNIX (preferencialmente). Se você tiver apenas a VPC conectividade ativada em seu cluster, certifique-se de que sua EC2 instância seja executada da mesma formaVPC. SSHna instância quando ela estiver 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. Vá até o kafka_2.12-2.6.2/libs diretório e execute o comando a seguir para baixar o MSK IAM JAR arquivo da Amazon.

    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. awsRoleArnSubstitua pela função ARN que você usou em seu Firehose SourceConfiguration 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ê pode se conectar ao seu MSK cluster em seu local VPC e que os servidores de bootstrap estão íntegros na porta especificada.

    Connected to ..
  10. Se a solicitação não for bem-sucedida, verifique as regras de entrada no seu grupo de VPC segurança. 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.