Tutorial: incorporar datos a un dominio 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: incorporar datos a un dominio mediante Amazon OpenSearch Ingestion

En este tutorial se muestra cómo utilizar Amazon OpenSearch Ingestion para configurar una canalización sencilla e incorporar datos en un dominio de Amazon OpenSearch Service. 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.

Este tutorial recorre los pasos básicos para poner en marcha una canalización de forma rápida. Para obtener información más detallada, consulte Creación de canalizaciones.

En este tutorial, deberá completar los siguientes pasos:

En este tutorial creará los recursos siguientes:

  • Una canalización llamada ingestion-pipeline

  • Un nombre de dominio denominado ingestion-domain en el que escribirá la canalización

  • Un rol de IAM llamado PipelineRole que asumirá la canalización para escribir en el dominio

Permisos necesarios

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

Además, el permiso iam:PassRole es obligatorio para el recurso del rol de canalización. Este permiso le permite transferir la función de canalización a OpenSearch Ingestion para que pueda escribir datos en el dominio.

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

Paso 1: crear el rol de canalización

En primer lugar, cree un rol que asuma la canalización para acceder al receptor de dominio de OpenSearch Service. Incluirá esta función en la configuración de la canalización más adelante en este tutorial.

Cómo crear el rol de canalización
  1. Abra la consola AWS Identity and Access Management en https://console.aws.amazon.com/iamv2/.

  2. Seleccione Políticas y, a continuación, seleccione Crear política.

  3. En este tutorial, incorporará datos a un dominio llamado ingestion-domain, que creará en el siguiente paso. Seleccione JSON y pegue la siguiente política en el editor. Sustituya {your-account-id} por su Identificador de cuenta y modifique la región si es necesario.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:us-east-1:your-account-id:domain/ingestion-domain" }, { "Effect": "Allow", "Action": "es:ESHttp*", "Resource": "arn:aws:es:us-east-1:your-account-id:domain/ingestion-domain/*" } ] }

    Si desea escribir datos en un dominio existente, sustituya ingestion-domain por el nombre de su dominio.

    nota

    Para simplificar este tutorial, utilizaremos una política de acceso amplia. No obstante, en entornos de producción, se recomienda que se aplique una política de acceso más restrictiva a su rol de canalización. Para ver un ejemplo de política que proporciona los permisos mínimos necesarios, consulte Concesión de acceso a dominios para canalizaciones de Amazon OpenSearch Ingestion.

  4. Seleccione Siguiente, seleccione Siguiente y asigne a su política el nombre pipeline-policy.

  5. Seleccione Crear política.

  6. A continuación, cree un rol y añádale la política. Seleccione Roles y, a continuación, Crear rol.

  7. Seleccione Política de confianza personalizada y pegue la siguiente política en el editor:

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"osis-pipelines.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
  8. Seleccione Siguiente. A continuación, busque y seleccione pipeline-policy (que acaba de crear).

  9. Seleccione Siguiente y asigne al rol el nombre PipelineRole.

  10. Seleccione Crear rol.

Recuerde el nombre de recurso de Amazon (ARN) del rol (por ejemplo, arn:aws:iam::your-account-id:role/PipelineRole). Lo necesitará cuando cree la canalización.

Paso 2: crear un dominio

A continuación, cree un dominio denominado ingestion-domain al que desee incorporar datos.

Vaya a la consola de Amazon OpenSearch Service en https://console.aws.amazon.com/aos/home y cree un dominio que cumpla los siguientes requisitos:

  • Funciona en OpenSearch 1.0 o superior, o Elasticsearch 7.4 o superior

  • Utiliza el acceso público

  • No utiliza el control de acceso detallado

nota

Estos requisitos están pensados para garantizar la simplicidad de este tutorial. En los entornos de producción, puede configurar un dominio con acceso a VPC o utilizar un control de acceso detallado. Para utilizar un control de acceso detallado, consulte Map the pipeline role.

El dominio debe tener una política de acceso que otorgue permiso a PipelineRole, el cual creó en el paso anterior. La canalización asumirá este rol (denominada sts_role_arn en la configuración de la canalización) para enviar datos al receptor de dominios de OpenSearch Service.

Asegúrese de que el dominio tenga la siguiente política de acceso a nivel de dominio, que permite el acceso al dominio PipelineRole. Sustituya la Región y el ID de cuenta por los suyos:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::your-account-id:role/PipelineRole" }, "Action": "es:*", "Resource": "arn:aws:es:us-east-1:your-account-id:domain/ingestion-domain/*" } ] }

Para obtener más información sobre la creación de políticas de acceso a nivel de dominio, consulte Políticas de acceso basadas en recursos.

Si ya ha creado un dominio, modifique su política de acceso actual para proporcionar los permisos anteriores a PipelineRole.

nota

Recuerde el punto de conexión del dominio (por ejemplo, https://search-ingestion-domain.us-east-1.es.amazonaws.com). Lo utilizará en el siguiente paso para configurar la canalización.

Paso 3: crear una canalización

Ahora que tiene un dominio y un rol con los derechos de acceso adecuados, puede crear una canalización.

Para crear una canalización
  1. En la consola de Amazon OpenSearch Service, seleccione Canalizaciones en el panel de navegación izquierdo.

  2. Seleccione Create pipeline.

  3. Seleccione la canalización en blanco y, a continuación, elija Seleccionar proyecto.

  4. Asigne el nombre ingestion-pipeline a la canalización y mantenga la configuración de capacidad como predeterminada.

  5. En este tutorial, creará una subcanalización sencilla llamada log-pipeline que utilice el complemento fuente Http. Este complemento acepta datos de registro en un formato de matriz JSON. Especificará un único dominio de OpenSearch como el receptor e incorporará todos los datos al índice application_logs.

    En Configuración de canalización, pegue la siguiente configuración de YAML en el editor:

    version: "2" log-pipeline: source: http: path: "/${pipelineName}/test_ingestion_path" processor: - date: from_time_received: true destination: "@timestamp" sink: - opensearch: hosts: [ "https://search-ingestion-domain.us-east-1.es.amazonaws.com" ] index: "application_logs" aws: sts_role_arn: "arn:aws:iam::your-account-id:role/PipelineRole" region: "us-east-1"
    nota

    La opción path especifica la ruta del URI para la incorporación. Esta opción es necesaria para las fuentes basadas en la extracción. Para obtener más información, consulte Especificación de la ruta de ingesta.

  6. Reemplace la URL hosts por el punto de conexión del dominio que creó (o modificó) en la sección anterior. Sustituya el parámetro sts_role_arn por el ARN de PipelineRole.

  7. Seleccione Validar canalización y asegúrese de que la validación se realice correctamente.

  8. Para simplificar este tutorial, configure el acceso público para la canalización. En Red, seleccione 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 OpenSearch Ingestion.

  9. Mantenga habilitada la publicación de registros en caso de que surja algún problema al completar este tutorial. Para obtener más información, consulte Monitoreo de registros de canalización.

    Especifique el siguiente nombre de grupo de registro: /aws/vendedlogs/OpenSearchIngestion/ingestion-pipeline/audit-logs

  10. Seleccione 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 4: incorporar 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 un dominio, 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 for an active ingestion pipeline.

A continuación, incorpore algunos datos de muestra. La siguiente solicitud usa awscurl para enviar un único archivo de registro al índice application_logs:

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/log-pipeline/test_ingestion_path

Debería ver una respuesta 200 OK. Si recibe un error de autenticación, es posible que se deba a que está incorporando datos de una cuenta distinta a la de la canalización. Consulte Solución de problemas de permisos.

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

awscurl --service es --region us-east-1 \ -X GET \ https://search-ingestion-domain.us-east-1.es.amazonaws.com/application_logs/_search | json_pp

Respuesta de ejemplo:

{ "took":984, "timed_out":false, "_shards":{ "total":1, "successful":5, "skipped":0, "failed":0 }, "hits":{ "total":{ "value":1, "relation":"eq" }, "max_score":1.0, "hits":[ { "_index":"application_logs", "_type":"_doc", "_id":"z6VY_IMBRpceX-DU6V4O", "_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":"2022-10-21T21:00:25.502Z" } } ] } }

Solución de problemas de permisos

Si ha seguido los pasos del tutorial y sigue viendo errores de autenticación cuando intenta incorporar datos, puede que se deba a que la función que escribe en una canalización Cuenta de AWS no es la canalización misma. En este caso, debe crear y asumir un rol que le permita específicamente incorporar datos. Para obtener instrucciones, consulte Provisión de acceso de ingesta entre cuentas.

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 de cliente (como Fluent Bit, Kubernetes u OpenTelemetry Collector) para enviar 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: