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á.
Usando um pipeline OpenSearch de ingestão com Amazon Managed Streaming for Apache Kafka
Você pode usar o plug-in Kafka
Tópicos
MSKPré-requisitos da Amazon
Antes de criar seu pipeline OpenSearch de ingestão, execute as seguintes etapas:
-
Crie um cluster MSK provisionado pela Amazon seguindo as etapas em Criação de um cluster no Guia do desenvolvedor do Amazon Managed Streaming for Apache Kafka. Para o tipo de corretor, escolha qualquer opção, exceto
t3
os tipos, pois eles não são compatíveis com a OpenSearch ingestão. -
Depois que o cluster tiver um status Ativo, siga as etapas em Ativar a VPC multiconectividade.
-
Siga as etapas em Anexar uma política de MSK cluster ao cluster para anexar uma das políticas a seguir, dependendo se o cluster e o pipeline estão no mesmo Conta da AWS. Essa política permite que o OpenSearch Inestion crie uma AWS PrivateLink conexão com seu MSK cluster da Amazon e leia dados dos tópicos do Kafka. Certifique-se de atualizar o
resource
com o seuARN.As políticas a seguir se aplicam quando o cluster e o pipeline estão na mesma Conta da AWS:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "osis.amazonaws.com" }, "Action": [ "kafka:CreateVpcConnection", "kafka:DescribeClusterV2" ], "Resource": "arn:aws:kafka:
us-east-1
:{account-id}
:cluster/cluster-name
/cluster-id
" }, { "Effect": "Allow", "Principal": { "Service": "osis-pipelines.amazonaws.com" }, "Action": [ "kafka:CreateVpcConnection", "kafka:GetBootstrapBrokers", "kafka:DescribeClusterV2" ], "Resource": "arn:aws:kafka:us-east-1
:{account-id}
:cluster/cluster-name
/cluster-id
" } ] }Se o seu MSK cluster da Amazon estiver em um local Conta da AWS diferente do seu pipeline, anexe a seguinte política em vez disso. Observe que o acesso entre contas só é possível com clusters Amazon provisionados e não com clusters MSK Amazon MSK Serverless. O ARN for the AWS
principal
deve ser o mesmo ARN para a mesma função de pipeline que você fornece à configuração do pipelineYAML:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "osis.amazonaws.com" }, "Action": [ "kafka:CreateVpcConnection", "kafka:DescribeClusterV2" ], "Resource": "arn:aws:kafka:
us-east-1
:{msk-account-id}
:cluster/cluster-name
/cluster-id
" }, { "Effect": "Allow", "Principal": { "Service": "osis-pipelines.amazonaws.com" }, "Action": [ "kafka:CreateVpcConnection", "kafka:GetBootstrapBrokers", "kafka:DescribeClusterV2" ], "Resource": "arn:aws:kafka:us-east-1
:{msk-account-id}
:cluster/cluster-name
/cluster-id
" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{pipeline-account-id}
:role/pipeline-role
" }, "Action": [ "kafka-cluster:*", "kafka:*" ], "Resource": [ "arn:aws:kafka:us-east-1:{msk-account-id}
:cluster/cluster-name
/cluster-id
", "arn:aws:kafka:us-east-1:{msk-account-id}
:topic/cluster-name
/cluster-id
/*", "arn:aws:kafka:us-east-1:{msk-account-id}
:group/cluster-name
/*" ] } ] } -
Crie um tópico do Kafka seguindo as etapas em Criar um tópico. Certifique-se de que
seja um dos bootstrap URLs do endpoint privado (únicoVPC). O valor paraBootstrapServerString
--replication-factor
deve ser2
ou3
, com base no número de zonas que seu MSK cluster da Amazon tem. O valor de--partitions
deve ser pelo menos10
. -
Produza e consuma dados seguindo as etapas em Produzir e consumir dados. Novamente, certifique-se de que
seja um dos bootstrap URLs do seu endpoint privado (únicoVPC).BootstrapServerString
Pré-requisitos do Amazon MSK Serverless
Antes de criar seu pipeline OpenSearch de ingestão, execute as seguintes etapas:
-
Crie um cluster Amazon MSK Serverless seguindo as etapas em Criar um cluster sem MSK servidor no Guia do desenvolvedor do Amazon Managed Streaming for Apache Kafka.
-
Depois que o cluster tiver um status Ativo, siga as etapas em Anexar uma política de cluster ao MSK cluster para anexar a política a seguir. Certifique-se de atualizar o
resource
com o seuARN.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "osis.amazonaws.com" }, "Action": [ "kafka:CreateVpcConnection", "kafka:DescribeClusterV2" ], "Resource": "arn:aws:kafka:
us-east-1
:{account-id}
:cluster/cluster-name
/cluster-id
" }, { "Effect": "Allow", "Principal": { "Service": "osis-pipelines.amazonaws.com" }, "Action": [ "kafka:CreateVpcConnection", "kafka:GetBootstrapBrokers", "kafka:DescribeClusterV2" ], "Resource": "arn:aws:kafka:us-east-1
:{account-id}
:cluster/cluster-name
/cluster-id
" } ] }Essa política permite que o OpenSearch Inestion crie uma AWS PrivateLink conexão com seu cluster Amazon MSK Serverless e leia dados de tópicos do Kafka. Essa política se aplica quando seu cluster e pipeline estão no mesmo lugar Conta da AWS, o que deve ser verdade, pois o Amazon MSK Serverless não oferece suporte ao acesso entre contas.
-
Crie um tópico do Kafka seguindo as etapas em Criar um tópico. Certifique-se de que
seja um dos seus IAM bootstrap URLs de Simple Authentication and Security Layer (SASL). O valor paraBootstrapServerString
--replication-factor
deve ser2
ou3
, com base no número de zonas que seu cluster Amazon MSK Serverless tem. O valor de--partitions
deve ser pelo menos10
. -
Produza e consuma dados seguindo as etapas em Produzir e consumir dados. Novamente, certifique-se de que
seja um dos seus IAM bootstrap URLs de Autenticação Simples e Camada de Segurança (SASL).BootstrapServerString
Etapa 1: configurar a função do pipeline
Depois de configurar seu cluster MSK provisionado ou sem servidor da Amazon, adicione as seguintes permissões do Kafka na função do pipeline que você deseja usar na configuração do pipeline:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kafka-cluster:Connect", "kafka-cluster:AlterCluster", "kafka-cluster:DescribeCluster", "kafka:DescribeClusterV2", "kafka:GetBootstrapBrokers" ], "Resource": [ "arn:aws:kafka:
us-east-1
:{account-id}
:cluster/cluster-name
/cluster-id
" ] }, { "Effect": "Allow", "Action": [ "kafka-cluster:*Topic*", "kafka-cluster:ReadData" ], "Resource": [ "arn:aws:kafka:us-east-1
:{account-id}
:topic/cluster-name
/cluster-id
/topic-name
" ] }, { "Effect": "Allow", "Action": [ "kafka-cluster:AlterGroup", "kafka-cluster:DescribeGroup" ], "Resource": [ "arn:aws:kafka:us-east-1
:{account-id}
:group/cluster-name
/*" ] } ] }
Etapa 2: Criar o pipeline
Em seguida, você pode configurar um pipeline de OpenSearch ingestão como o seguinte, que especifica o Kafka como fonte:
version: "2" log-pipeline: source: kafka: acknowledgements: true topics: - name: "
topic-name
" group_id: "group-id
" aws: msk: arn: "arn:aws:kafka:{region}
:{account-id}
:cluster/cluster-name
/cluster-id
" region: "us-west-2
" sts_role_arn: "arn:aws:iam::{account-id}
:role/pipeline-role
" processor: - grok: match: message: - "%{COMMONAPACHELOG}" - date: destination: "@timestamp" from_time_received: true sink: - opensearch: hosts: ["https://search-domain-endpoint
.us-east-1
.es.amazonaws.com"] index: "index_name
" aws_sts_role_arn: "arn:aws:iam::{account-id}
:role/pipeline-role
" aws_region: "us-east-1
" aws_sigv4: true
Você pode usar um Amazon MSK blueprint pré-configurado para criar esse pipeline. Para obter mais informações, consulte Usar esquemas para criar um pipeline.
Etapa 3: (Opcional) Usar o Registro do AWS Glue Esquema
Ao usar a OpenSearch Ingestão com a AmazonMSK, você pode usar o formato de AVRO dados para esquemas hospedados no Registro de AWS Glue Esquemas. Com o registro de esquema do AWS Glue, você pode descobrir, controlar e evoluir centralmente esquemas de fluxo de dados.
Para usar essa opção, habilite o esquema type
na configuração do seu pipeline:
schema: type: "aws_glue"
Você também deve AWS Glue fornecer permissões de acesso de leitura em sua função de funil. Você pode usar a política AWS gerenciada chamada AWSGlueSchemaRegistryReadonlyAccess. Além disso, seu registro deve estar na mesma Conta da AWS região do pipeline OpenSearch de ingestão.
Etapa 4: (Opcional) Configurar as unidades de computação recomendadas (OCUs) para o pipeline da Amazon MSK
Cada unidade computacional tem um consumidor por tópico. Os corretores equilibram as partições entre esses consumidores para um determinado tópico. No entanto, quando o número de partições é maior que o número de consumidores, a Amazon MSK hospeda várias partições em cada consumidor. OpenSearch A ingestão tem escalonamento automático integrado para aumentar ou diminuir a escala com base no CPU uso ou no número de registros pendentes no pipeline.
Para um desempenho ideal, distribua suas partições em várias unidades de computação para processamento paralelo. Se os tópicos tiverem um grande número de partições (por exemplo, mais de 96, que é o máximo OCUs por pipeline), recomendamos que você configure um pipeline com OCUs 1—96. Isso ocorre porque ele será escalado automaticamente conforme necessário. Se um tópico tiver um número baixo de partições (por exemplo, menos de 96), mantenha o máximo de unidades computacionais igual ao número de partições.
Quando um pipeline tiver mais de um tópico, escolha o tópico com o maior número de partições como referência para configurar o máximo de unidades computacionais. Ao adicionar outro pipeline com um novo conjunto de OCUs ao mesmo tópico e grupo de consumidores, você pode escalar a taxa de transferência quase linearmente.