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
-
Verifique se o MSK cluster de origem está no estado Ativo.
-
Se você estiver usando conectividade privada, certifique-se de que o link privado no cluster esteja ativado
Se você estiver usando conectividade pública, certifique-se de que o acesso público no cluster esteja ativado
-
Se você estiver usando conectividade privada, certifique-se de adicionar uma política baseada em recursos que permita que o Firehose crie um link privado. Consulte também: MSKpermissões entre contas
-
Certifique-se de que o perfil na configuração de origem tenha permissão para ingerir dados do tópico do cluster
-
Certifique-se de que seus grupos VPC de segurança permitam tráfego de entrada nas portas usadas pelos servidores de bootstrap do cluster
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
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.
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
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
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
-
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
-
Crie o arquivo
client.properties
na pasta bin do Kafka. -
awsRoleArn
Substitua pela função ARN que você usou em seu FirehoseSourceConfiguration
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
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.propertiesSe 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_offsetsSe 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 ..
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
.