Tutorial: Ingerir datos en una colección mediante Amazon OpenSearch Ingestion - OpenSearch Servicio Amazon

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.

Tutorial: Ingerir datos en una colección mediante Amazon OpenSearch Ingestion

En este tutorial, se muestra cómo utilizar Amazon OpenSearch Ingestion para configurar una canalización sencilla e ingerir datos en una colección de Amazon OpenSearch Serverless. Una canalización es un recurso que OpenSearch Ingestion aprovisiona y administra. Puede usar una canalización para filtrar, enriquecer, transformar, normalizar y agregar datos para el análisis y la visualización posteriores en OpenSearch Service.

Para ver un tutorial que muestra cómo incorporar datos en un dominio de OpenSearch servicio aprovisionado, consulte. Tutorial: Ingerir datos en un dominio mediante Amazon OpenSearch Ingestion

Completará los siguientes pasos en este tutorial:.

En este tutorial creará los recursos siguientes:

  • Una colección llamada ingestion-collection donde escribirá la canalización

  • Una canalización llamada ingestion-pipeline-serverless

Permisos necesarios

Para completar este tutorial, su usuario o rol debe tener una política basada en la identidad adjunta con los siguientes permisos mínimos. Estos permisos le permiten crear un rol de canalización y adjuntar una política (iam:Create*yiam:Attach*), crear o modificar una colección (aoss:*) y trabajar con canalizaciones (). osis:*

Además, se requieren varios permisos de IAM para crear automáticamente el rol de canalización y pasarlo a OpenSearch Ingestion para que pueda escribir datos en la colección.

JSON
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Resource":"*", "Action":[ "osis:*", "iam:Create*", "iam:Attach*", "aoss:*" ] }, { "Resource":[ "arn:aws:iam::your-account-id:role/OpenSearchIngestion-PipelineRole" ], "Effect":"Allow", "Action":[ "iam:CreateRole", "iam:AttachPolicy", "iam:PassRole" ] } ] }

Paso 1: Crear una colección

En primer lugar, cree una colección para ingerir datos. El nombre que le pondremos a la colección será ingestion-collection.

  1. Dirígete a la consola OpenSearch de Amazon Service de https://console.aws.amazon.com/aos/tu casa.

  2. Seleccione Colecciones del panel de navegación de la izquierda y elija Crear colección.

  3. Nombre la colección ingestion-collection.

  4. En Seguridad, elija Creación estándar.

  5. En Configuración de acceso a la red, cambie el tipo de acceso a Público.

  6. Mantenga todas las demás configuraciones en sus valores predeterminados y elija Siguiente.

  7. Ahora, configure una política de acceso a los datos para la colección. Deselecciona Hacer coincidir automáticamente la configuración de la política de acceso.

  8. Seleccione JSON para el Método de definición y pegue la siguiente política en el editor. Esta política realiza dos tareas:

    • Permite que el rol de canalización escriba en la colección.

    • Le permite leer de la colección. Más adelante, después de incorporar algunos datos de muestra a la canalización, consultará la colección para garantizar que los datos se hayan incorporado y escrito correctamente en el índice.

      [ { "Rules": [ { "Resource": [ "index/ingestion-collection/*" ], "Permission": [ "aoss:CreateIndex", "aoss:UpdateIndex", "aoss:DescribeIndex", "aoss:ReadDocument", "aoss:WriteDocument" ], "ResourceType": "index" } ], "Principal": [ "arn:aws:iam::your-account-id:role/OpenSearchIngestion-PipelineRole", "arn:aws:iam::your-account-id:role/Admin" ], "Description": "Rule 1" } ]
  9. Modifique los Principal elementos para incluir su Cuenta de AWS ID. Para el segundo elemento principal, especifique un usuario o rol que pueda usar para consultar la colección más adelante.

  10. Elija Siguiente. Asigne un nombre a la política de acceso pipeline-collection-accessy vuelva a seleccionar Siguiente.

  11. Revise la configuración de la colección y seleccione Enviar.

Paso 2: Crear una canalización

Ahora que tienes una colección, puedes crear una canalización.

Creación de una canalización
  1. En la consola de Amazon OpenSearch Service, selecciona Pipelines en el panel de navegación izquierdo.

  2. Seleccione Create pipeline.

  3. Selecciona la canalización en blanco y, a continuación, selecciona Seleccionar plano.

  4. En este tutorial, crearemos una canalización sencilla que utilice el complemento fuente HTTP. El complemento acepta datos de registro en un formato de matriz JSON. Especificaremos una única colección OpenSearch Serverless como sumidero e incorporaremos todos los datos al my_logs índice.

    En el menú Fuente, selecciona HTTP. Para la ruta, introduzca /logs.

  5. Para simplificar este tutorial, configuraremos el acceso público para la canalización. En las opciones de red de origen, selecciona Acceso público. Para obtener información acerca de la configuración del acceso a VPC, consulte Configuración del acceso a la VPC para canalizaciones de Amazon Ingestion OpenSearch .

  6. Elija Siguiente.

  7. En Procesador, introduzca la fecha y seleccione Añadir.

  8. Habilite Desde la hora de recepción. Deje todas las demás configuraciones como predeterminadas.

  9. Elija Siguiente.

  10. Configure los detalles del sumidero. Para el tipo de OpenSearch recurso, elija Colección (sin servidor). A continuación, elija la colección de OpenSearch servicios que creó en la sección anterior.

    Deje el nombre de la política de red como predeterminado. En Nombre de índice, escriba my_logs. OpenSearch Ingestión crea automáticamente este índice en la colección si aún no existe.

  11. Elija Siguiente.

  12. Asigne un nombre a la canalización ingestion-pipeline-serverless. Deje la configuración de capacidad como la predeterminada.

  13. En el rol de canalización, selecciona Crear y usar un nuevo rol de servicio. La función de canalización proporciona los permisos necesarios para que una canalización escriba en el receptor de la colección y lea desde fuentes basadas en la extracción. Al seleccionar esta opción, permite que OpenSearch Ingestion cree el rol por usted, en lugar de crearlo manualmente en IAM. Para obtener más información, consulte Configuración de roles y usuarios en Amazon OpenSearch Ingestion.

  14. En el sufijo del nombre del rol de servicio, introduzca. PipelineRole En IAM, el rol tendrá el formato. arn:aws:iam::your-account-id:role/OpenSearchIngestion-PipelineRole

  15. Elija Siguiente. Revise la configuración de la canalización y elija Crear canalización. La canalización tarda entre 5 y 10 minutos en activarse.

Paso 3: Ingiera algunos datos de muestra

Cuando el estado de la canalización sea Active, puede empezar a incorporarle datos. Debe firmar todas las solicitudes HTTP que se envíen a la canalización mediante la versión 4 de Signature. Use una herramienta HTTP como Postman o awscurl para enviar algunos datos a la canalización. Al igual que ocurre con la indexación de datos directamente en una colección, la incorporación de datos a una canalización siempre requiere un rol de IAM o una clave de acceso y una clave secreta de IAM.

nota

La entidad principal que firma la solicitud debe tener el permiso de IAM osis:Ingest.

Primero, obtenga la URL de incorporación en la página de Configuración de canalización:

Pipeline settings page showing ingestion URL and other configuration details.

Luego, envíe algunos datos de muestra a la ruta de ingestión. En la siguiente solicitud de ejemplo, se utiliza awscurl para enviar un único archivo de registro a la canalización:

awscurl --service osis --region us-east-1 \ -X POST \ -H "Content-Type: application/json" \ -d '[{"time":"2014-08-11T11:40:13+00:00","remote_addr":"122.226.223.69","status":"404","request":"GET http://www.k2proxy.com//hello.html HTTP/1.1","http_user_agent":"Mozilla/4.0 (compatible; WOW64; SLCC2;)"}]' \ https://pipeline-endpoint.us-east-1.osis.amazonaws.com/logs

Debería ver una respuesta 200 OK.

Ahora, consulte el índice my_logs para asegurarse de que la entrada del registro se haya incorporado correctamente:

awscurl --service aoss --region us-east-1 \ -X GET \ https://collection-id.us-east-1.aoss.amazonaws.com/my_logs/_search | json_pp

Respuesta de ejemplo:

{ "took":348, "timed_out":false, "_shards":{ "total":0, "successful":0, "skipped":0, "failed":0 }, "hits":{ "total":{ "value":1, "relation":"eq" }, "max_score":1.0, "hits":[ { "_index":"my_logs", "_id":"1%3A0%3ARJgDvIcBTy5m12xrKE-y", "_score":1.0, "_source":{ "time":"2014-08-11T11:40:13+00:00", "remote_addr":"122.226.223.69", "status":"404", "request":"GET http://www.k2proxy.com//hello.html HTTP/1.1", "http_user_agent":"Mozilla/4.0 (compatible; WOW64; SLCC2;)", "@timestamp":"2023-04-26T05:22:16.204Z" } } ] } }

Recursos relacionados

Este tutorial presenta un caso práctico sencillo de incorporación de un único documento a través de HTTP. En escenarios de producción, configurará las aplicaciones cliente (como Fluent Bit, Kubernetes o OpenTelemetry Collector) para que envíen datos a una o más canalizaciones. Es probable que sus canalizaciones sean más complejas que en el ejemplo sencillo de este tutorial.

Para empezar a configurar sus clientes e incorporar datos, consulte los siguientes recursos: