Creación de canalizaciones OpenSearch de Amazon 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.

Creación de canalizaciones OpenSearch de Amazon Ingestion

Una canalización es el mecanismo que Amazon OpenSearch Ingestion utiliza para mover los datos desde su origen (de donde provienen los datos) hasta su receptor (adonde van los datos). En OpenSearch Ingestion, el receptor siempre será un único dominio de Amazon OpenSearch Service, mientras que la fuente de los datos podrían ser clientes como Amazon S3, Fluent Bit o OpenTelemetry Collector.

Para obtener más información, consulte Pipelines en la OpenSearch documentación.

Requisitos previos y roles requeridos

Para crear una canalización OpenSearch de ingestión, debes disponer de los siguientes recursos:

  • Una función de IAM que asumirá OpenSearch Ingestion para poder escribir en el receptor. Debe incluir este RNA de rol en la configuración de su canalización.

  • Un dominio OpenSearch de servicio o una colección OpenSearch sin servidor que actúa como receptor. Si escribes en un dominio, debe ejecutar la OpenSearch versión 1.0 o una versión posterior, o Elasticsearch 7.4 o una versión posterior. El receptor debe tener una política de acceso que conceda los permisos adecuados a su rol de canalización de IAM.

Si desea obtener instrucciones para crear estos recursos, consulte los siguientes temas:

nota

Si escribe en un dominio que usa un control de acceso detallado, debe completar algunos pasos adicionales. Consulte Paso 3: asignar el rol de canalización (solo para dominios que utilicen un control de acceso detallado).

Permisos necesarios

OpenSearch Ingestion usa los siguientes permisos de IAM para crear canalizaciones:

  • osis:CreatePipeline: Crear una canalización.

  • osis:ValidatePipeline: Comprobar si la configuración de la canalización es válida.

  • iam:PassRole— Transfiera la función de canalización a OpenSearch Ingestion para que pueda escribir datos en el dominio. Este permiso debe estar en el recurso de rol de canalización (el ARN que especifique para la opción sts_role_arn en la configuración de canalización) o simplemente * si planea usar diferentes roles en cada canalización.

Por ejemplo, la siguiente política concede permiso para crear una canalización:

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

OpenSearch Ingestion también incluye un permiso denominadoosis:Ingest, que es necesario para enviar solicitudes firmadas a la canalización mediante la versión 4 de Signature. Para obtener más información, consulte Creación de un rol de ingesta.

nota

Además, el primer usuario que cree una canalización en una cuenta debe tener permisos para realizar la acción iam:CreateServiceLinkedRole. Para más información, consulte recurso de rol de canalización.

Para obtener más información sobre cada permiso, consulte las acciones, los recursos y las claves de condición de la OpenSearch ingestión en la Referencia de autorización de servicios.

Especificar la versión de la canalización

Al configurar una canalización, debe especificar la versión principal de Data Prepper en la que se ejecutará la canalización. Para especificar la versión, incluya la opción de version en la configuración de la canalización:

version: "2" log-pipeline: source: ...

Al elegir Crear, OpenSearch Ingestion determina la última versión secundaria disponible de la versión principal que especifique y aprovisiona la canalización con esa versión. Por ejemplo, si lo especificas version: "2" y la última versión compatible de Data Prepper es la 2.1.1, OpenSearch Ingestion aprovisiona tu canalización con la versión 2.1.1. No mostramos públicamente la versión secundaria que está ejecutando la canalización.

Para actualizar la canalización cuando haya disponible una nueva versión principal de Data Prepper, edite la configuración de la canalización y especifique la nueva versión. No puede cambiar una canalización a una versión anterior.

nota

OpenSearch Ingestion no ofrece soporte inmediato a las nuevas versiones de Data Prepper en cuanto se publican. Habrá cierto intervalo entre el momento en que una nueva versión esté disponible públicamente y el momento en OpenSearch que Ingestion la admita. Además, es posible que OpenSearch Ingestion no admita por completo determinadas versiones principales o secundarias de forma explícita. Para obtener una lista completa, consulte Versiones de Data Prepper admitidas.

Cada vez que realices un cambio en tu canalización que inicie una implementación azul/verde, OpenSearch Ingestion podrá actualizarla a la última versión secundaria de la versión principal que esté configurada actualmente en el archivo YAML de la canalización. Para obtener más información, consulte. Implementaciones azul/verde para actualizaciones de canalización OpenSearch La ingestión no puede cambiar la versión principal de tu canalización a menos que actualices explícitamente la version opción en la configuración de la canalización.

Especificación de la ruta de ingesta

Para las fuentes basadas en la extracción, como el rastreo de Otel y las métricas de Otel, OpenSearch Ingestion requiere la path opción adicional en la configuración de la fuente. La ruta es una cadena, por ejemplo/log/ingest, que representa la ruta del URI para la ingesta. Esta ruta define el URI que usa para enviar datos a la canalización.

Por ejemplo, supongamos que especifica la siguiente subcanalización de entrada para una canalización de ingesta denominada logs:

entry-pipeline: source: http: path: "/my/test_path"

Al introducir datos de ingesta en la canalización, debe especificar el siguiente punto de conexión en la configuración de su cliente: https://logs-abcdefgh.us-west-2.osis.amazonaws.com/my/test_path.

La ruta debe empezar con una barra (/) y puede contener los caracteres especiales '-', '_', '.' y '/', así como el marcador de posición ${pipelineName}. Si usa ${pipelineName} (por ejemplopath: "/${pipelineName}/test_path"), la variable se sustituye por el nombre de la subcanalización asociada. En este ejemplo, sería https://logs.us-west-2.osis.amazonaws.com/entry-pipeline/test_path.

Creación de canalizaciones

En esta sección se describe cómo crear canalizaciones OpenSearch de ingestión mediante la consola de OpenSearch servicio y el. AWS CLI

Para crear una canalización
  1. Inicia sesión en la consola OpenSearch de Amazon Service en https://console.aws.amazon.com/aos/home.

  2. Seleccione Canalizaciones en el panel de navegación izquierdo y Seleccione Crear canalización.

  3. Introduzca un nombre para la canalización.

  4. (Opcional) Seleccione Habilitar búfer persistente. Un búfer persistente almacena los datos en un búfer basado en disco en varias zonas de disponibilidad. Para obtener más información, consulte Almacenamiento persistente. Si habilitas el búfer persistente, selecciona la AWS Key Management Service clave para cifrar los datos del búfer.

  5. Configure la capacidad mínima y máxima de la canalización en las unidades de OpenSearch cómputo de ingestión (OCU). Para obtener más información, consulte Escala de canalizaciones.

  6. En Configuración de canalización, proporcione la configuración de la canalización en formato YAML. Un único archivo de configuración de canalización puede contener de 1 a 10 subcanalizaciones. Cada subcanalización es una combinación de una sola fuente, cero o más procesadores y un único receptor. En el OpenSearch caso de Ingestion, el receptor siempre debe ser un OpenSearch dominio de servicio. Para ver una lista de las opciones admitidas, consulte Plugins y opciones compatibles para las canalizaciones de Amazon OpenSearch Ingestion.

    nota

    Debe incluir las opciones sts_role_arn y sigv4 en cada subcanalización. La canalización asume la función definida en sts_role_arn firmar las solicitudes al dominio. Para obtener más información, consulte Otorgar a Amazon OpenSearch Ingestion pipelines acceso a los dominios.

    El siguiente archivo de configuración de ejemplo utiliza la fuente HTTP y los complementos Grok para procesar datos de registro no estructurados y enviarlos a un dominio de OpenSearch servicio. La subcanalización se denomina log-pipeline.

    version: "2" log-pipeline: source: http: path: "/log/ingest" processor: - grok: match: log: [ '%{COMMONAPACHELOG}' ] - date: from_time_received: true destination: "@timestamp" sink: - opensearch: hosts: [ "https://search-my-domain.us-east-1.es.amazonaws.com" ] index: "apache_logs" aws: sts_role_arn: "arn:aws:iam::123456789012:role/{pipeline-role}" region: "us-east-1"
    nota

    Si especificas varios receptores dentro de una definición de canalización de YAML, todos deben pertenecer al mismo dominio de servicio. OpenSearch Una canalización OpenSearch de ingestión no puede escribir en varios dominios diferentes.

    Puede crear su propia configuración de canalización o elegir Cargar archivo e importar una configuración existente para una canalización autoadministrada de Data Prepper. También puede utilizar un esquema de configuración.

  7. Después de configurar la canalización, seleccione Validar canalización para confirmar que la configuración es correcta. Si la validación produce un error, corrija los errores y vuelva a ejecutar la validación.

  8. En Configuración de red, selecciona Acceso a VPC o Acceso público. Si elige Acceso público, vaya al siguiente paso. Si elige Acceso a la VCP, configure los siguientes ajustes:

    Ajuste Descripción
    VPC

    Seleccione el ID de la nube privada virtual (VPC) que desee utilizar. La VPC y la canalización deben estar en la misma Región de AWS.

    Subredes

    Elija una o más subredes. OpenSearch El servicio colocará un punto final de VPC e interfaces de red elásticas en las subredes.

    Grupos de seguridad

    Elija uno o más grupos de seguridad de VPC que permitan que la aplicación requerida llegue a la canalización de OpenSearch ingestión en los puertos (80 o 443) y protocolos (HTTP o HTTPs) expuestos por la canalización.

    Opciones de fijación de VPC

    Si tu fuente es un punto final autogestionado, conecta tu canalización a una VPC. Elija una de las opciones de CIDR predeterminadas que se proporcionan o utilice un CIDR personalizado.

    Para obtener más información, consulte Configuración del acceso a la VPC para las canalizaciones de Amazon Ingestion OpenSearch .

  9. (Opcional) En Etiquetas, agregue una o más etiquetas (pares clave-valor) a su canalización. Para obtener más información, consulte Etiquetado de canalizaciones de Amazon OpenSearch Ingestion.

  10. (Opcional) En Opciones de publicación de registros, activa la publicación de registros de canalización en Amazon CloudWatch Logs. Le recomendamos que habilite la publicación de registros para poder solucionar más fácilmente los problemas de la canalización. Para más información, consulte Monitorear registros de canalización.

  11. Seleccione Siguiente.

  12. Revise su configuración de canalización y seleccione Crear.

OpenSearch Ingestion ejecuta un proceso asíncrono para crear la canalización. Una vez que el estado de la canalización sea Active, puede empezar a incorporar datos.

El comando create-pipeline acepta la configuración de la canalización como una cadena o dentro de un archivo .yaml. Si proporciona la configuración en forma de cadena, cada nueva línea debe ir acompañada de secuencias de escape \n. Por ejemplo, "log-pipeline:\n source:\n http:\n processor:\n - grok:\n ...

El siguiente comando de ejemplo crea una canalización con la siguiente configuración:

  • Mínimo de 4 OCU de ingesta, máximo de 10 OCU de ingesta

  • Aprovisionada en una nube privada virtual (VPC)

  • Publicación de registros habilitada

aws osis create-pipeline \ --pipeline-name my-pipeline \ --min-units 4 \ --max-units 10 \ --log-publishing-options IsLoggingEnabled=true,CloudWatchLogDestination={LogGroup="MyLogGroup"} \ --vpc-options SecurityGroupIds={sg-12345678,sg-9012345},SubnetIds=subnet-1212234567834asdf \ --pipeline-configuration-body "file://pipeline-config.yaml"

OpenSearch Ingestion ejecuta un proceso asíncrono para crear la canalización. Una vez que el estado de la canalización sea Active, puede empezar a incorporar datos. Para comprobar el estado de la canalización, usa el comando. GetPipeline

Para crear una canalización OpenSearch de ingestión mediante la API de OpenSearch ingestión, llama a la operación. CreatePipeline

Una vez que la canalización se haya creado correctamente, puede configurar su cliente y empezar a ingerir datos en su OpenSearch dominio de servicio. Para obtener más información, consulte Trabajar con las integraciones de Amazon OpenSearch Ingestion Pipeline.

Seguimiento del estado de creación de la canalización

Puede realizar un seguimiento del estado de una canalización a medida que OpenSearch Ingestion la aprovisiona y la prepara para ingerir datos.

Una vez creada inicialmente una canalización, ésta pasa por varias etapas a medida que OpenSearch Ingestion la prepara para la ingesta de datos. Para ver las distintas etapas de creación de la canalización, seleccione el nombre de la canalización para ver la página de Configuración de la canalización. En Estado, seleccione Ver detalles.

Una canalización pasa por las siguientes etapas antes de estar disponible para incorporar datos:

  • Validación: se valida la configuración de la canalización. Cuando se complete esta etapa, todas las validaciones se han realizado correctamente.

  • Crear entorno: preparar y aprovisionar recursos. Cuando se complete esta etapa, se habrá creado el nuevo entorno de canalización.

  • Implementar canalización: implementar la canalización. Cuando se complete esta etapa, la canalización se habrá implementado correctamente.

  • Comprobar el estado de la canalización: comprobación del estado de la canalización. Cuando se complete esta etapa, todas las comprobaciones de estado se habrán aprobado.

  • Habilitar tráfico: permitir que la canalización incorpore datos. Cuando se complete esta etapa, puede empezar a incorporar datos a la canalización.

Usa el get-pipeline-change-progresscomando para comprobar el estado de una canalización. La siguiente AWS CLI solicitud comprueba el estado de una canalización denominadamy-pipeline:

aws osis get-pipeline-change-progress \ --pipeline-name my-pipeline

Respuesta:

{ "ChangeProgressStatuses": { "ChangeProgressStages": [ { "Description": "Validating pipeline configuration", "LastUpdated": 1.671055851E9, "Name": "VALIDATION", "Status": "PENDING" } ], "StartTime": 1.671055851E9, "Status": "PROCESSING", "TotalNumberOfStages": 5 } }

Para realizar un seguimiento del estado de la creación de la canalización mediante la API OpenSearch de ingestión, llama a la GetPipelineChangeProgressoperación.

Uso de esquemas para crear una canalización

En lugar de crear una definición de canalización desde cero, puede usar esquemas de configuración, que son plantillas YAML preconfiguradas para escenarios de ingesta comunes, como los registros de Trace Analytics o Apache. Los esquemas de configuración le ayudan a aprovisionar canalizaciones fácilmente sin tener que crear una configuración desde cero.

Cómo usar un esquema de canalización
  1. Inicia sesión en la consola OpenSearch de Amazon Service en https://console.aws.amazon.com/aos/home.

  2. Seleccione Canalizaciones en el panel de navegación izquierdo y Seleccione Crear canalización.

  3. Seleccione un esquema. La configuración de la canalización se completa con una subcanalización para el caso de uso que haya seleccionado.

  4. Revise el texto comentado que le guiará en la configuración del esquema.

    importante

    El esquema de la canalización no es válido tal como está. Debe realizar algunas modificaciones, como proporcionar el ARN Región de AWS y el rol que se utilizará para la autenticación; de lo contrario, la validación de la canalización fallará.

Para obtener una lista de todos los planos disponibles mediante el AWS CLI, envíe una list-pipeline-blueprintssolicitud.

aws osis list-pipeline-blueprints

La solicitud devuelve una lista de todos los esquemas disponibles.

Para obtener información más detallada sobre un plano específico, utilice el get-pipeline-blueprintcomando:

aws osis get-pipeline-blueprint --blueprint-name AWS-ApacheLogPipeline

Esta solicitud devuelve el contenido del esquema de la canalización de registro de Apache:

{ "Blueprint":{ "PipelineConfigurationBody":"###\n # Limitations: https://docs.aws.amazon.com/opensearch-service/latest/ingestion/ingestion.html#ingestion-limitations\n###\n###\n # apache-log-pipeline:\n # This pipeline receives logs via http (e.g. FluentBit), extracts important values from the logs by matching\n # the value in the 'log' key against the grok common Apache log pattern. The grokked logs are then sent\n # to OpenSearch to an index named 'logs'\n###\n\nversion: \"2\"\napache-log-pipeline:\n source:\n http:\n # Provide the path for ingestion. ${pipelineName} will be replaced with pipeline name configured for this pipeline.\n # In this case it would be \"/apache-log-pipeline/logs\". This will be the FluentBit output URI value.\n path: \"/${pipelineName}/logs\"\n processor:\n - grok:\n match:\n log: [ \"%{COMMONAPACHELOG_DATATYPED}\" ]\n sink:\n - opensearch:\n # Provide an AWS OpenSearch Service domain endpoint\n # hosts: [ \"https://search-mydomain-1a2a3a4a5a6a7a8a9a0a9a8a7a.us-east-1.es.amazonaws.com\" ]\n aws:\n # Provide a Role ARN with access to the domain. This role should have a trust relationship with osis-pipelines.amazonaws.com\n # sts_role_arn: \"arn:aws:iam::123456789012:role/Example-Role\"\n # Provide the region of the domain.\n # region: \"us-east-1\"\n # Enable the 'serverless' flag if the sink is an Amazon OpenSearch Serverless collection\n # serverless: true\n index: \"logs\"\n # Enable the S3 DLQ to capture any failed requests in an S3 bucket\n # dlq:\n # s3:\n # Provide an S3 bucket\n # bucket: \"your-dlq-bucket-name\"\n # Provide a key path prefix for the failed requests\n # key_path_prefix: \"${pipelineName}/logs/dlq\"\n # Provide the region of the bucket.\n # region: \"us-east-1\"\n # Provide a Role ARN with access to the bucket. This role should have a trust relationship with osis-pipelines.amazonaws.com\n # sts_role_arn: \"arn:aws:iam::123456789012:role/Example-Role\"\n", "BlueprintName":"AWS-ApacheLogPipeline" } }

Para obtener información sobre los planos de canalización mediante la API OpenSearch de ingestión, usa las ListPipelineBlueprintsoperaciones y. GetPipelineBlueprint