Cree y gestione pipelines OpenSearch mediante Data Prepper para ingerir datos en un cluster OpenSearch.
Data Prepper es un recopilador de datos de código abierto que puede filtrar, enriquecer, transformar, normalizar y agregar datos para análisis y visualización descendentes. Es una de las herramientas de ingestión de datos más recomendadas para procesar conjuntos de datos grandes y complejos.
Utilizamos el modelo PULL para ingerir datos en el cluster OpenSearch 2.x e integrarlos con el servicio Oracle Cloud Infrastructure Streaming, Kafka autogestionado y Object Storage.
Nota
La función Cluster OpenSearch con preparador de datos está disponible actualmente en el dominio OC1.
Políticas necesarias
Complete las siguientes tareas antes de continuar con los pasos descritos en este tema:
Si no es administrador de su arrendamiento, póngase en contacto con los administradores de su arrendamiento para que le otorguen estos permisos. El administrador debe actualizar el permiso de los siguientes usuarios para permitir que los usuarios que no sean administradores gestionen y realicen operaciones CRUD en los pipelines
La siguiente política permite al administrador otorgar permisos a todos los usuarios del arrendamiento respectivo:
Allow any-user to manage opensearch-cluster-pipeline in tenancy
La siguiente política permite al administrador otorgar permiso para un grupo en un compartimento (recomendado)
Allow group <group> to manage opensearch-cluster-pipeline in compartment <compartment>
donde <group> es todos los usuarios dentro de ese grupo que pueden acceder al recurso.
La siguiente política permite a los pipelines OpenSearch leer los secretos de Oracle Cloud Infrastructure Vault.
Allow any-user to read secret-bundles in compartment <compartment> WHERE ALL {request.principal.type='opensearchpipeline', target.secret.id = '<target-secret-ocid>' }' }
Allow any-user to read secrets in compartment <compartment> WHERE ALL {request.principal.type='opensearchpipeline', target.secret.id = '<target-secret-ocid>' }
Políticas de Object Storage 🔗
Estas políticas solo son necesarias para el origen de Object Storage:
La siguiente política permite a los pipelines OpenSearch utilizar un cubo de Object Storage como persistencia de coordinación de origen:
Allow any-user to manage objects in compartment <compartment> WHERE ALL {request.principal.type='opensearchpipeline', target.bucket.name='<source-coordination-bucket-name>'}
La siguiente política permite a los pipelines OpenSearch ingerir objetos de Object Storage:
Allow any-user to manage objects in compartment <compartment> WHERE ALL {request.principal.type='opensearchpipeline', target.bucket.name='<bucket_name>'}
La siguiente política permite a los pipelines OpenSearch leer cubos de Object Storage:
Allow any-user to read buckets in compartment <compartment> WHERE ALL {request.principal.type='opensearchpipeline', target.bucket.name='<bucket_name>'}
La siguiente política permite a los pipelines OpenSearch leer cubos del cubo de coordinación de origen.
Allow any-user to read buckets in compartment <compartment> WHERE ALL {request.principal.type='opensearchpipeline', target.bucket.name='<bucket_name>'}
OCI Streaming y políticas de Kafka autogestionadas 🔗
Estas políticas son necesarias para el servicio OCI Streaming u orígenes de Kafka autogestionados.
Políticas de red comunes
Nota
Estas políticas no son necesarias para el servicio público OCI Streaming.
Políticas que se van a agregar para permitir que el servicio OpenSearch cree, lea y actualice la supresión de los puntos finales privados en la subred del cliente.
Allow group SearchOpenSearchAdmins to manage vnics in compartment <network_resources_compartment>
Allow group SearchOpenSearchAdmins to manage vcns in compartment <network_resources_compartment>
Allow group SearchOpenSearchAdmins to manage subnets in compartment <network_resources_compartment>
Allow group SearchOpenSearchAdmins to use network-security-groups in compartment <network_resources_compartment>
Políticas del servicio OCI Streaming (públicas y privadas)
Estas políticas solo son necesarias para el servicio OCI Streaming.
La siguiente política permite a los pipelines OpenSearch consumir los registros del servicio OCI Streaming.
Allow ANY-USER TO {STREAM_INSPECT, STREAM_READ, STREAM_CONSUME} in compartment '<compartment-name>'
where ALL {request.principal.type='opensearchpipeline', target.streampool.id = '<target-stream-pool-ocid>'}
La siguiente política permite a los pipelines OpenSearch leer pools de flujos del servicio de flujo de OCI
Allow ANY-USER TO read stream-pools in compartment '<compartment-name>' where ALL {request.principal.type='opensearchpipeline',
target.streampool.id = '<target-stream-pool-ocid>'}
Permiso de Kafka autogestionado
Estos permisos solo son necesarios para los orígenes de Kafka autogestionados.
Seleccione el siguiente enlace para agregar el permiso necesario para mostrar los temas, describir los temas, unirse al grupo y consumir los registros del tema por el pipeline OpenSearch:
Esta configuración solo es necesaria para el servicio OCI Streaming privado y Kafka autogestionado. En el caso del servicio Public OCI Streaming, seleccione ninguno.
Agregue una regla de seguridad de entrada en la lista de seguridad de la subred o el grupo de seguridad de red a todos los pipelines OpenSearch para comunicarse con el servicio privado de OCI Streaming que se ejecuta en la subred.
En la siguiente imagen se muestran las reglas de entrada para el grupo de seguridad de red.
Creación de los secretos en Vault 🔗
Todos los secretos de texto sin formato que necesitan los pipelines OpenSearch se deben transferir a él a través de Vault, ya que los pipelines OpenSearch no aceptan secretos de texto sin formato como nombres de usuario y contraseñas en el código yaml de los pipelines.
Realice las siguientes tareas:
Cree un nuevo usuario con permisos de escritura en el cluster OpenSearch. Para obtener instrucciones, consulte los siguientes temas de documentación de OpenSearch:
Cree secretos (nombre de usuario y contraseña) en Vault para el nuevo usuario que ha creado. Para obtener instrucciones, consulte los siguientes temas de Oracle Cloud Infrastructure Vault:
Agregue las siguientes políticas de entidad de recurso en su arrendamiento OpenSearch para permitir que los pipelines OpenSearch lean los secretos del almacén.
ALLOW ANY-USER to read secrets in compartment '<customer-compartment>' WHERE ALL {request.principal.type='opensearchpipeline', target.secret.id = '<target-secret-ocid>' }
ALLOW ANY-USER to read secret-bundles in compartment '<customer-compartment>' WHERE ALL {request.principal.type='opensearchpipeline', target.secret.id = '<target-secret-ocid>' }
Para obtener más información sobre la creación de políticas para Vault, consulte Detalles del servicio Vault.
Puede realizar las siguientes tareas de pipeline de OpenSearch:
Almacenamiento de objetos y coordinación de origen YAML 🔗
El origen de Object Storage depende de la configuración de coordinación del origen. El pipeline OpenSearch soporta la coordinación de origen mediante el almacenamiento de objetos como persistencia. Debe proporcionar los detalles del cubo de Object Storage desde su arrendamiento.
El siguiente es un ejemplo de coordinación de origen:
source_coordination:
store:
oci-object-bucket:
name: <OCI Object storage bucket-name details from their tenancy>
namespace: <namespace>
A continuación se muestran las secciones de la configuración de pipeline de las que YAML debe tener en cuenta:
Secretos de OCI: puede crear un secreto en Vault con sus credenciales de cluster OpenSearch y utilizarlo en el YAML de pipeline para conectarse al cluster OpenSearch.
Disipador OpenSearch: el disipador contiene OCID de cluster OpenSearch con nombres de índice para la ingestión.
Origen ooci-object: el preparador de datos soporta la ingestión basada en exploración mediante Object Storage, que tiene muchas configuraciones soportadas. Puede configurar el origen para que ingiera objetos en el bloque de Object Storage según la frecuencia programada, o bien no según cualquier programa. Tiene las siguientes opciones de exploración
Una o más exploraciones de tiempo: esta opción permite configurar el pipeline que lee objetos en cubos de Object Storage una o más veces según la hora de la última modificación de los objetos.
Exploración basada en programación: esta opción permite programar una exploración en un intervalo regular después de crear el pipeline.
En la siguiente tabla se muestran las opciones que puede utilizar para configurar el origen de Object Storage.
Configuraciones de Almacenamiento de objetos
Opciones
necesario
Escribir
Descripción
acknowledgments
Número
Booleano
Cuando true, permite a los orígenes de objetos de Object Storage recibir confirmaciones de extremo a extremo cuando los eventos los reciben los sumideros de OpenSearch.
buffer_timeout
Número
Duración
Cantidad de tiempo permitida para escribir eventos en el buffer de preparador de datos antes de que se produzca un timeout. Se descartan todos los eventos que el origen de OCI no pueda escribir en el buffer durante el período de tiempo especificado. El valor por defecto es 10s.
codec
Sí
Codec
El codec del preparador de datos que se va a aplicar.
compression
Número
Cadena
Algoritmo de compresión que se va a aplicar: none, gzip, snappy o automatic. El valor por defecto es none.
delete_oci_objects_on_read
Número
Booleano
Cuando true, la exploración de origen de Object Storage intenta suprimir objetos de Object Storage después de que todos los eventos del objeto de Object Storage hayan sido confirmados correctamente por todos los sumideros. acknowledgments debe estar activado al suprimir objetos de Object Storage. El valor por defecto es false. La supresión no funciona si acknowledgments de extremo a extremo no está activado.
oci
Número
OCIO
Configuración de OCI. Consulte la siguiente sección de OCI para obtener más información.
records_to_accumulate
Número
Entero
Número de mensajes que se acumulan antes de escribirse en el buffer. El valor por defecto es 100.
workers
Número
Entero
Configura el número de threads de trabajo que utiliza el origen para leer datos del cubo de OCI. Deje este valor por defecto a menos que los objetos de Object Storage tengan menos de 1 MB. El rendimiento puede disminuir en el caso de objetos de Object Storage de mayor tamaño. El valor por defecto es 1.
A continuación, se muestra un ejemplo de la configuración del pipeline de Object Storage YAML:
A continuación se muestran las opciones de exploración de un solo uso que puede aplicar en el nivel de cubo individual de Object Storage o en el nivel de exploración
A continuación se muestra un ejemplo de los archivos de filtro de la carpeta. Para leer archivos solo de carpetas específicas, utilice el filtro para especificar carpetas. A continuación, se muestra un ejemplo de cómo incluir archivos de folder2 en folder1 mediante include_prefix.
Puede utilizar el servicio OCI Streaming como origen de Kafka para realizar la ingesta en el cluster OpenSearch. Para obtener más información sobre cómo hacerlo, consulte Uso de API de Kafka.