Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso de una canalización OpenSearch de ingestión con Amazon Managed Streaming for Apache Kafka
Puede usar el complemento de Kafka para incorporar
Temas
- MSKRequisitos previos de Amazon
- Requisitos previos de Amazon MSK Serverless
- Paso 1: configurar el rol de canalización
- Paso 2: crear la canalización
- Paso 3: (opcional) Usa el registro de esquemas AWS Glue
- Paso 4: (opcional) Configurar las unidades de cómputo recomendadas (OCUs) para la MSK canalización de Amazon
MSKRequisitos previos de Amazon
Antes de crear tu canalización OpenSearch de ingestión, lleva a cabo los siguientes pasos:
-
Cree un clúster MSK aprovisionado por Amazon siguiendo los pasos que se indican en la Guía para desarrolladores de Amazon Managed Streaming for Apache Kafka Developer Guide. Para el tipo de agente, elige cualquier opción excepto los
t3
tipos, ya que Ingestion no los OpenSearch admite. -
Cuando el clúster tenga el estado Activo, sigue los pasos que se indican en Activar la VPC conectividad múltiple.
-
Siga los pasos que se indican en Adjuntar una política de MSK clúster al clúster para adjuntar una de las siguientes políticas, en función de si el clúster y la canalización están en el mismo lugar Cuenta de AWS. Esta política permite a OpenSearch Ingestion crear una AWS PrivateLink conexión con tu MSK clúster de Amazon y leer datos de los temas de Kafka. Asegúrate de actualizarlo
resource
con el tuyo propio. ARNLas siguientes políticas se aplican cuando el clúster y la canalización están en la misma Cuenta de 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
" } ] }Si tu MSK clúster de Amazon está en un proceso Cuenta de AWS diferente al tuyo, adjunta la siguiente política en su lugar. Tenga en cuenta que el acceso entre cuentas solo es posible con los clústeres de Amazon MSK aprovisionados y no con los clústeres de Amazon MSK Serverless. El ARN campo for AWS
principal
debe ser el ARN mismo rol de canalización que usted proporciona a su configuración de canalización: YAML{ "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
/*" ] } ] } -
Cree un tema de Kafka siguiendo los pasos de Creación de un tema. Asegúrese de que
se trate de uno de los bootstrap de punto final privado (únicoVPC). URLs El valor deBootstrapServerString
--replication-factor
debe ser2
o3
, en función del número de zonas que tenga tu MSK clúster de Amazon. El valor de las--partitions
debe ser como mínimo10
. -
Produzca y consuma datos siguiendo los pasos de Producir y consumir datos. De nuevo, asegúrate de que
sea uno de tus bootstrap URLs de punto final privado (únicoVPC).BootstrapServerString
Requisitos previos de Amazon MSK Serverless
Antes de crear su canalización OpenSearch de ingestión, lleve a cabo los siguientes pasos:
-
Cree un clúster de Amazon MSK Serverless siguiendo los pasos de la Guía para desarrolladores de Amazon Managed Streaming for Apache Kafka Developer Guide. MSK
-
Cuando el clúster tenga el estado Activo, siga los pasos que se indican en Adjuntar una política de clúster al MSK clúster para adjuntar la siguiente política. Asegúrese de actualizarla
resource
con la suya propiaARN.{ "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
" } ] }Esta política permite a OpenSearch Ingestion crear una AWS PrivateLink conexión con su clúster de Amazon MSK Serverless y leer datos de los temas de Kafka. Esta política se aplica cuando el clúster y la canalización están en el mismo lugar Cuenta de AWS, lo que debe ser cierto, ya que Amazon MSK Serverless no admite el acceso entre cuentas.
-
Cree un tema de Kafka siguiendo los pasos de Creación de un tema. Asegúrese de que
se trate de uno de sus programas básicos de nivel de autenticación y seguridad simple (SASL). IAM URLs El valor deBootstrapServerString
--replication-factor
debe ser2
o3
, en función del número de zonas que tenga su clúster de Amazon MSK Serverless. El valor de las--partitions
debe ser como mínimo10
. -
Produzca y consuma datos siguiendo los pasos de Producir y consumir datos. Una vez más, asegúrese de que
se trate de uno de los IAM bootstrap URLs de la capa de autenticación y seguridad simple (SASL).BootstrapServerString
Paso 1: configurar el rol de canalización
Una vez que hayas configurado tu clúster MSK aprovisionado o sin servidor de Amazon, añade los siguientes permisos de Kafka en el rol de canalización que quieras usar en tu configuración de canalización:
{ "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
/*" ] } ] }
Paso 2: crear la canalización
A continuación, puede configurar una canalización de OpenSearch ingestión como la siguiente, en la que se especifica a Kafka como fuente:
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
Puedes usar un MSK blueprint de Amazon preconfigurado para crear esta canalización. Para obtener más información, consulte Uso de esquemas para crear una canalización.
Paso 3: (opcional) Usa el registro de esquemas AWS Glue
Al utilizar OpenSearch Ingestión con AmazonMSK, puede utilizar el formato de AVRO datos para los esquemas alojados en el registro de AWS Glue esquemas. Con AWS Glue Schema Registry, puede descubrir, controlar y evolucionar de forma centralizada los esquemas de flujo de datos.
Para usar esta opción, habilite el type
de esquema en la configuración de su canalización:
schema: type: "aws_glue"
También debe proporcionar permisos de acceso AWS Glue de lectura en su rol de canalización. Puedes usar la política AWS gestionada llamada AWSGlueSchemaRegistryReadonlyAccess. Además, tu registro debe estar en la misma región Cuenta de AWS y en la misma región que tu canal OpenSearch de ingestión.
Paso 4: (opcional) Configurar las unidades de cómputo recomendadas (OCUs) para la MSK canalización de Amazon
Cada unidad de cómputo tiene un consumidor por tema. Los agentes equilibran las particiones entre estos consumidores para un tema determinado. Sin embargo, cuando el número de particiones es mayor que el número de consumidores, Amazon MSK aloja varias particiones en cada consumidor. OpenSearch Ingestion tiene un escalado automático incorporado para escalar hacia arriba o hacia abajo en función del CPU uso o la cantidad de registros pendientes en proceso.
Para un rendimiento óptimo, distribuya las particiones entre varias unidades de cómputo para el procesamiento paralelo. Si los temas tienen un gran número de particiones (por ejemplo, más de 96, que es el máximo OCUs por canalización), se recomienda configurar una canalización de 1 OCUs a 96. Esto se debe a que se escalará automáticamente según sea necesario. Si un tema tiene un número reducido de particiones (por ejemplo, menos de 96), mantenga la unidad de cómputo máxima igual a la cantidad de particiones.
Cuando una canalización tenga más de un tema, seleccione el tema con el mayor número de particiones como referencia para configurar las unidades de cómputo máximas. Si añades otra canalización con un nuevo conjunto de OCUs temas y grupos de consumidores, puedes escalar el rendimiento de forma casi lineal.