Uso de una canalización OpenSearch de ingestión con Atlassian Services - 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.

Uso de una canalización OpenSearch de ingestión con Atlassian Services

Puedes usar los complementos fuente de Atlassian Jira y Confluence para incorporar datos de los servicios de Atlassian a tu canal de ingestión. OpenSearch Estas integraciones te permiten crear una base de conocimientos unificada y con capacidad de búsqueda al sincronizar proyectos completos de Jira y los espacios de Confluence, a la vez que mantienes la relevancia en tiempo real mediante la supervisión continua y la sincronización automática de las actualizaciones.

Integrating with Jira

Transforma tu experiencia con Jira con potentes funciones de búsqueda contextual integrando tu contenido de Jira en. OpenSearch El complemento fuente de Atlassian Jira para Atlassian de Data Prepper te permite crear una base de conocimientos unificada con capacidad de búsqueda sincronizando proyectos completos de Jira y, al mismo tiempo, manteniendo la relevancia en tiempo real mediante la supervisión continua y la sincronización automática de las actualizaciones. Esta integración permite la sincronización de datos con opciones de filtrado flexibles para proyectos, tipos de problemas y estados específicos, lo que garantiza que solo se importe la información que necesita.

Para garantizar una conectividad segura y confiable, el complemento admite varios métodos de autenticación, incluida la autenticación y OAuth2 la autenticación básicas mediante claves de API, con la seguridad adicional de administrar las credenciales mediante un secreto almacenado en él AWS Secrets Manager. También cuenta con la renovación automática de los tokens para un acceso ininterrumpido, lo que garantiza un funcionamiento continuo. Basada en la versión 2 de la API de Atlassian, esta integración permite a los equipos obtener información valiosa a partir de sus datos de Jira mediante OpenSearch las funciones de búsqueda avanzada de las que dispone.

Integrating with Confluence

Mejora las capacidades de colaboración y gestión del conocimiento de tu equipo integrando el contenido de Confluence de Atlassian mediante el complemento fuente Confluence de Data OpenSearch Prepper. Esta integración te permite crear un repositorio de conocimiento colectivo centralizado y con capacidad de búsqueda, lo que mejora el descubrimiento de información y la productividad del equipo. Al sincronizar el contenido de Confluence y supervisar continuamente las actualizaciones, el complemento garantiza que tu OpenSearch índice siga siendo up-to-date completo.

La integración ofrece opciones de filtrado flexibles, lo que te permite importar contenido de forma selectiva desde espacios o tipos de páginas específicos, adaptando el contenido sincronizado a las necesidades de tu organización. El complemento admite tanto la clave de API básica como los métodos de OAuth2 autenticación, con la opción de gestionar las credenciales de forma segura mediante ellos. AWS Secrets Manager La función de renovación automática de los tokens del plugin garantiza un acceso ininterrumpido y un funcionamiento sin problemas. Esta integración, que se basa en la API Confluence de Atlassian, permite a los equipos aprovechar las funciones de búsqueda avanzada que ofrecen en todo el contenido OpenSearch de Confluence, lo que mejora la accesibilidad y la utilización de la información en la organización.

Requisitos previos

Antes de crear tu canal de OpenSearch ingestión, sigue los siguientes pasos:

  1. Prepara las credenciales de tu sitio de Jira seleccionando una de las siguientes opciones. OpenSearch La ingestión solo requiere la ReadOnly autorización del contenido.

    1. Opción 1: clave de API: inicia sesión en tu cuenta de Atlassian y utiliza la información del siguiente tema para generar tu clave de API:

    2. Opción 2: OAuth2 — Inicia sesión en tu cuenta de Atlassian y utiliza la información en ella. Conexión de una canalización de Amazon OpenSearch Ingestion a Atlassian, Jira o Confluence mediante la versión 2.0 OAuth

  2. Crea una entrada secreta AWS Secrets Manager para almacenar las credenciales creadas en el paso anterior. Realice las siguientes elecciones a medida que sigue el procedimiento:

    • En Secret type (Tipo de secreto), elija Other type of secret (Otro tipo de secreto).

    • Para los pares clave/valor, cree los siguientes pares, según el tipo de autorización que haya seleccionado:

    API key
    { "username": user-name-usualy-email-id, "password": api-key }
    OAuth 2.0
    { "clientId": client-id "clientSecret": client-secret "accessKey": access-key "refreshKey": refresh-key }

    Una vez creado el secreto, copia el nombre de recurso de Amazon (ARN) del secreto. Lo incluirás en la política de permisos de los roles en proceso.

Configura un rol de canalización

El rol transferido en la canalización debe incluir la siguiente política de lectura y escritura en el secreto creado en la sección de requisitos previos.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecretReadWrite", "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:PutSecretValue", "secretsmanager:ListSecretVersionIds" ], "Resource": "secret-arn-created-in-step-2" } ] }

El rol también debe incluir una política de acceso y escritura en el servidor que elijas. Por ejemplo, si eliges OpenSearch como destino, la política es similar a la siguiente:

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "OpenSearchWritePolicy", "Effect": "Allow", "Action": "aoss:*", "Resource": "aoss-collection-arn" } ] }

Configuración de canalización de conectores de Jira

Puedes usar un blueprint de Atlassian Jira preconfigurado para crear esta canalización. Para obtener más información, consulte ¿Trabajando con planos.

Reemplace los placeholder values con su propia información.

version: "2" extension: aws: secrets: jira-account-credentials: secret_id: "secret-arn" region: "secret-region" sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role" atlassian-jira-pipeline: source: jira: # We only support one host url for now hosts: ["jira-host-url"] acknowledgments: true authentication: # Provide one of the authentication method to use. Supported methods are 'basic' and 'oauth2'. # For basic authentication, password is the API key that you generate using your jira account basic: username: ${{aws_secrets:jira-account-credentials:username}} password: ${{aws_secrets:jira-account-credentials:password}} # For OAuth2 based authentication, we require the following 4 key values stored in the secret # Follow atlassian instructions at the below link to generate these keys. # https://developer.atlassian.com/cloud/confluence/oauth-2-3lo-apps/ # If you are using OAuth2 authentication, we also require, write permission to your AWS secret to # be able to write the renewed tokens back into the secret. # oauth2: # client_id: ${{aws_secrets:jira-account-credentials:clientId}} # client_secret: ${{aws_secrets:jira-account-credentials:clientSecret}} # access_token: ${{aws_secrets:jira-account-credentials:accessToken}} # refresh_token: ${{aws_secrets:jira-account-credentials:refreshToken}} filter: project: key: include: # This is not project name. # It is an alphanumeric project key that you can find under project details in Jira. - "project-key" - "project-key" # exclude: # - "project-key" # - "project-key" issue_type: include: - "issue-type" # - "Story" # - "Bug" # - "Task" # exclude: # - "Epic" status: include: - "ticket-status" # - "To Do" # - "In Progress" # - "Done" # exclude: # - "Backlog" sink: - opensearch: # Provide an Amazon OpenSearch Service domain endpoint hosts: [ "https://search-mydomain-1a2a3a4a5a6a7a8a9a0a9a8a7a.us-east-1.es.amazonaws.com" ] index: "index_${getMetadata(\"project\")}" # Ensure adding unique document id which is the unique ticket id in this case document_id: '${/id}' aws: # Provide a Role ARN with access to the domain. This role should have a trust relationship with osis-pipelines.amazonaws.com sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role" # Provide the region of the domain. region: "us-east-1" # Enable the 'serverless' flag if the sink is an Amazon OpenSearch Serverless collection serverless: false # serverless_options: # Specify a name here to create or update network policy for the serverless collection # network_policy_name: "network-policy-name" # Enable the 'distribution_version' setting if the Amazon OpenSearch Service domain is of version Elasticsearch 6.x # distribution_version: "es6" # Enable and switch the 'enable_request_compression' flag if the default compression setting is changed in the domain. # See Compresión de solicitudes HTTP en Amazon OpenSearch Service # enable_request_compression: true/false # Optional: Enable the S3 DLQ to capture any failed requests in an S3 bucket. Delete this entire block if you don't want a DLQ. dlq: s3: # Provide an S3 bucket bucket: "your-dlq-bucket-name" # Provide a key path prefix for the failed requests # key_path_prefix: "kinesis-pipeline/logs/dlq" # Provide the region of the bucket. region: "us-east-1" # Provide a Role ARN with access to the bucket. This role should have a trust relationship with osis-pipelines.amazonaws.com sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role"

Los atributos clave de la fuente de Jira son:

  1. hosts: tu URL local o en la nube de Jira. En general, se ve así. https://your-domain-name.atlassian.net/

  2. agradecimientos: para garantizar la entrega de los datos hasta el sumidero.

  3. autenticación: describe cómo quieres que la canalización acceda a tu instancia de Jira. Elige Basic o especifica OAuth2 los atributos clave correspondientes que hagan referencia a las claves de tu AWS secreto.

  4. filtro: esta sección te ayuda a seleccionar qué parte de tus datos de Jira deseas extraer y sincronizar.

    1. proyecto: enumera las claves del proyecto que quieres sincronizar en la include sección. De lo contrario, enumera los proyectos que deseas excluir en la exclude sección. Proporcione solo una de las opciones de inclusión o exclusión en un momento dado.

    2. issue_type: tipos de problemas específicos que quieres sincronizar. Sigue un exclude patrón similar include o que se adapte a tus necesidades. Tenga en cuenta que los archivos adjuntos aparecerán como enlaces de anclaje al archivo adjunto original, pero el contenido del archivo adjunto no se extraerá.

    3. estado: filtro de estado específico que desea aplicar a la consulta de extracción de datos. Si lo especificainclude, solo se sincronizarán los tickets con esos estados. Si lo especificasexclude, se sincronizarán todos los billetes, excepto los que tengan los estados de exclusión enumerados.

Configuración de canalización del conector de Confluence

Puedes usar un plano de Atlassian Confluence preconfigurado para crear esta canalización. Para obtener más información, consulte ¿Trabajando con planos.

version: "2" extension: aws: secrets: confluence-account-credentials: secret_id: "secret-arn" region: "secret-region" sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role" atlassian-confluence-pipeline: source: confluence: # We currently support only one host URL. hosts: ["confluence-host-url"] acknowledgments: true authentication: # Provide one of the authentication method to use. Supported methods are 'basic' and 'oauth2'. # For basic authentication, password is the API key that you generate using your Confluence account basic: username: ${{aws_secrets:confluence-account-credentials:confluenceId}} password: ${{aws_secrets:confluence-account-credentials:confluenceCredential}} # For OAuth2 based authentication, we require the following 4 key values stored in the secret # Follow atlassian instructions at the following link to generate these keys: # https://developer.atlassian.com/cloud/confluence/oauth-2-3lo-apps/ # If you are using OAuth2 authentication, we also require write permission to your AWS secret to # be able to write the renewed tokens back into the secret. # oauth2: # client_id: ${{aws_secrets:confluence-account-credentials:clientId}} # client_secret: ${{aws_secrets:confluence-account-credentials:clientSecret}} # access_token: ${{aws_secrets:confluence-account-credentials:accessToken}} # refresh_token: ${{aws_secrets:confluence-account-credentials:refreshToken}} filter: space: key: include: # This is not space name. # It is a space key that you can find under space details in Confluence. - "space key" - "space key" # exclude: # - "space key" # - "space key" page_type: include: - "content type" # - "page" # - "blogpost" # - "comment" # exclude: # - "attachment" sink: - opensearch: # Provide an Amazon OpenSearch Service domain endpoint hosts: [ "https://search-mydomain-1a2a3a4a5a6a7a8a9a0a9a8a7a.us-east-1.es.amazonaws.com" ] index: "index_${getMetadata(\"space\")}" # Ensure adding unique document id which is the unique ticket ID in this case. document_id: '${/id}' aws: # Provide the Amazon Resource Name (ARN) for a role with access to the domain. This role should have a trust relationship with osis-pipelines.amazonaws.com. sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role" # Provide the Region of the domain. region: "us-east-1" # Enable the 'serverless' flag if the sink is an Amazon OpenSearch Serverless collection serverless: false # serverless_options: # Specify a name here to create or update network policy for the serverless collection. # network_policy_name: "network-policy-name" # Enable the 'distribution_version' setting if the Amazon OpenSearch Service domain is of version Elasticsearch 6.x # distribution_version: "es6" # Enable and switch the 'enable_request_compression' flag if the default compression setting is changed in the domain. # For more information, see Compresión de solicitudes HTTP en Amazon OpenSearch Service. # enable_request_compression: true/false # Optional: Enable the S3 DLQ to capture any failed requests in an S3 bucket. Delete this entire block if you don't want a DLQ. dlq: s3: # Provide an S3 bucket bucket: "your-dlq-bucket-name" # Provide a key path prefix for the failed requests # key_path_prefix: "kinesis-pipeline/logs/dlq" # Provide the Rregion of the bucket. region: "us-east-1" # Provide the Amazon Resource Name (ARN) for a role with access to the bucket. This role should have a trust relationship with osis-pipelines.amazonaws.com sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role"

Atributos clave de la fuente de Confluence:

  1. hosts: tu URL local o en la nube de Confluence. En general, tiene el siguiente aspecto https://your-domain-name.atlassian.net/

  2. agradecimientos: para garantizar la entrega de los datos hasta el sumidero.

  3. autenticación: describe cómo quieres que la canalización acceda a tu instancia de Confluence. Elige Basic o especifica OAuth2 los atributos clave correspondientes que hacen referencia a las claves de tu AWS secreto.

  4. filtro: esta sección te ayuda a seleccionar qué parte de tus datos de Confluence deseas extraer y sincronizar.

    1. espacio: muestra las teclas de espacio que quieres sincronizar en la include sección. De lo contrario, enumera los espacios que deseas excluir en la exclude sección. Proporcione solo una de las opciones de inclusión o exclusión en un momento dado.

    2. page_type: tipos de página específicos (como página, entrada de blog o archivos adjuntos) que deseas sincronizar. Sigue un exclude patrón similar include o que se adapte a tus necesidades. Tenga en cuenta que los archivos adjuntos aparecerán como enlaces de anclaje al archivo adjunto original, pero el contenido del archivo adjunto no se extraerá.

Coherencia de datos

Según los filtros especificados en el YAML de la canalización, los proyectos (o espacios) seleccionados se extraerán una vez y se sincronizarán completamente con el receptor de destino. Luego, la supervisión continua de los cambios capturará los cambios a medida que se produzcan y actualizará los datos del sumidero. Una excepción es que la supervisión de cambios sincroniza solo update las acciones create y no las delete acciones.

Limitaciones

  • Las acciones de eliminación de usuarios no se sincronizarán. Una vez registrados en el sumidero, los datos permanecerán en el sumidero. Las actualizaciones sobrescribirán el contenido existente con nuevos cambios si se especifica la asignación de ID en la configuración del receptor.

  • Las instancias locales que utilizan versiones anteriores del software de Atlassian que no son compatibles con lo siguiente no APIs son compatibles con esta fuente:

    • API de búsqueda de Jira, versión 3

      • rest/api/3/search

      • rest/api/3/issue

    • Confluence

      • wiki/rest/api/content/search

      • wiki/rest/api/content

      • wiki/rest/api/settings/systemInfo

Las métricas están disponibles CloudWatch para los conectores de Atlassian

Tipo: métricas del conector Jira

Origen Métrica Tipo de métrica
acknowledgementSetSuccesses.contar Contador Si las confirmaciones están habilitadas, esta métrica proporciona la cantidad de tickets que se sincronizaron correctamente.
acknowledgementSetFailures... recuento Contador Si las confirmaciones están habilitadas, esta métrica proporciona la cantidad de tickets que no se pudieron sincronizar.
Tiempo de rastreo. Promedio Timer El tiempo que se tardó en revisar todos los cambios nuevos.
ticketFetchLatency.avg Timer El promedio de latencia de la API de búsqueda de tickets.
ticketFetchLatency.max Timer La latencia máxima de la API de obtención de tickets.
Entradas solicitadas. Recuento Contador Número de solicitudes de recogida de entradas realizadas.
ticketRequestedFailed... recuento Contador Número de solicitudes de recuperación de tickets fallidas.
ticketRequestedSuccess... recuento Contador Número de solicitudes de búsqueda de entradas realizadas correctamente.
searchCallLatency.avg Timer Latencia media de llamadas a la API de búsqueda.
searchCallLatency.max Timer Latencia máxima de llamadas a la API de búsqueda.
searchResultsFound.count Contador Número de artículos encontrados en una llamada de búsqueda determinada.
searchRequestFailed.contar Contador Los errores en las llamadas a la API de búsqueda cuentan.
AuthFailures.count Contador Recuento de errores de autenticación.

Tipo: métricas del conector de Confluence

Origen Métrica Tipo de métrica
acknowledgementSetSuccesses.contar Contador Si las confirmaciones están habilitadas, esta métrica proporciona el número de páginas que se sincronizaron correctamente.
acknowledgementSetFailures... recuento Contador Si las confirmaciones están habilitadas, esta métrica proporciona el número de páginas que no se pudieron sincronizar.
Tiempo de rastreo. Avg Timer El tiempo que se tardó en revisar todos los cambios nuevos.
pageFetchLatency.avg Timer Latencia de la API de obtención de contenido (media).
pageFetchLatency.max Timer Latencia de la API de obtención de contenido (máxima).
Páginas solicitadas. Recuento Contador Número de invocaciones de la API de obtención de contenido.
pageRequestFailed.recuento Contador Número de solicitudes fallidas de la API de obtención de contenido.
pageRequestedSuccess.count Contador Número de solicitudes satisfactorias de la API de obtención de contenido.
searchCallLatency.avg Timer Latencia media de llamadas a la API de búsqueda.
searchCallLatency.max Timer Latencia máxima de llamadas a la API de búsqueda
searchResultsFound.count Contador Número de artículos encontrados en una llamada de búsqueda determinada.
searchRequestsFailed.contar Contador Los errores en las llamadas a la API de búsqueda cuentan.
AuthFailures.count Contador Recuento de errores de autenticación.