Verwenden einer OpenSearch Ingestion-Pipeline mit Atlassian Services - OpenSearch Amazon-Dienst

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden einer OpenSearch Ingestion-Pipeline mit Atlassian Services

Du kannst die Quell-Plugins von Atlassian Jira und Confluence verwenden, um Daten aus Atlassian-Services in deine Ingestion-Pipeline aufzunehmen. OpenSearch Diese Integrationen ermöglichen es dir, eine einheitliche, durchsuchbare Wissensdatenbank zu erstellen, indem du komplette Jira-Projekte und Confluence-Bereiche synchronisierst und gleichzeitig die Relevanz in Echtzeit durch kontinuierliche Überwachung und automatische Synchronisation von Updates aufrechterhältst.

Integrating with Jira

Transformieren Sie Ihr Jira-Erlebnis mit leistungsstarken Funktionen für die kontextbezogene Suche, indem Sie Ihre Jira-Inhalte in integrieren. OpenSearch Mit dem Data Prepper Atlassian Jira Source Plugin kannst du eine einheitliche, durchsuchbare Wissensdatenbank erstellen, indem du komplette Jira-Projekte synchronisierst und gleichzeitig die Relevanz in Echtzeit durch kontinuierliche Überwachung und automatische Synchronisation von Updates sicherstellst. Diese Integration ermöglicht die Datensynchronisierung mit flexiblen Filteroptionen für bestimmte Projekte, Problemtypen und Status, sodass sichergestellt wird, dass nur die Informationen importiert werden, die du benötigst.

Um eine sichere und zuverlässige Konnektivität zu gewährleisten, unterstützt das Plugin mehrere Authentifizierungsmethoden, darunter die grundlegende API-Schlüsselauthentifizierung und OAuth2 -authentifizierung, mit der zusätzlichen Sicherheit, Anmeldeinformationen mithilfe eines in gespeicherten Geheimcodes zu verwalten AWS Secrets Manager. Es bietet auch eine automatische Token-Erneuerung für einen unterbrechungsfreien Zugriff und gewährleistet so einen kontinuierlichen Betrieb. Diese Integration basiert auf der API-Version 2 von Atlassian und ermöglicht es Teams, mithilfe OpenSearch der erweiterten Suchfunktionen wertvolle Erkenntnisse aus ihren Jira-Daten zu gewinnen.

Integrating with Confluence

Verbessern Sie das Wissensmanagement und die Möglichkeiten zur Zusammenarbeit Ihres Teams, indem Sie Inhalte von Atlassian Confluence in OpenSearch das Confluence-Quell-Plugin von Data Prepper integrieren. Diese Integration ermöglicht es dir, ein zentrales, durchsuchbares Repository für kollektives Wissen zu erstellen und so die Informationssuche und die Teamproduktivität zu verbessern. Durch die Synchronisation von Confluence-Inhalten und die kontinuierliche Überwachung auf Updates stellt das Plugin sicher, dass Ihr OpenSearch Index erhalten bleibt und umfassend ist. up-to-date

Die Integration bietet flexible Filteroptionen, mit denen Sie Inhalte aus bestimmten Bereichen oder Seitentypen selektiv importieren und die synchronisierten Inhalte so an die Bedürfnisse Ihres Unternehmens anpassen können. Das Plugin unterstützt sowohl grundlegende API-Schlüssel- als auch OAuth2 Authentifizierungsmethoden mit der Option, Anmeldeinformationen sicher zu verwalten. AWS Secrets Manager Die automatische Token-Erneuerungsfunktion des Plugins gewährleistet einen unterbrechungsfreien Zugriff und einen reibungslosen Betrieb. Diese Integration basiert auf der Confluence-API von Atlassian und ermöglicht es Teams, die erweiterten Suchfunktionen für ihre gesamten Confluence-Inhalte zu nutzen und OpenSearch so die Zugänglichkeit und Nutzung von Informationen innerhalb des Unternehmens zu verbessern.

Voraussetzungen

Bevor du deine OpenSearch Ingestion-Pipeline erstellst, führe die folgenden Schritte durch:

  1. Bereiten Sie die Anmeldeinformationen für Ihre Jira-Site vor, indem Sie eine der folgenden Optionen wählen. OpenSearch Für die Aufnahme ist nur die ReadOnly Autorisierung des Inhalts erforderlich.

    1. Option 1: API-Schlüssel — Melde dich bei deinem Atlassian-Konto an und verwende die Informationen im folgenden Thema, um deinen API-Schlüssel zu generieren:

    2. Option 2: OAuth2 — Melde dich bei deinem Atlassian-Konto an und verwende die Informationen in. Eine Amazon OpenSearch Ingestion-Pipeline mithilfe von 2.0 mit Atlassian Jira oder Confluence verbinden OAuth

  2. Erstelle ein geheimes Konto AWS Secrets Manager, um die im vorherigen Schritt erstellten Anmeldedaten zu speichern. Treffen Sie bei der Ausführung des Verfahrens die folgenden Optionen:

    • Als Secret-Typ wählen Sie Anderer Secret-Typ aus.

    • Erstellen Sie für Schlüssel/Wert-Paare je nach ausgewähltem Autorisierungstyp die folgenden Paare:

    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 }

    Nachdem Sie das Secret erstellt haben, kopieren Sie den Amazon-Ressourcennamen (ARN) des Secrets. Sie werden ihn in die Richtlinie für Berechtigungen für Pipeline-Rollen aufnehmen.

Konfigurieren Sie eine Pipeline-Rolle

Der Rolle, die in der Pipeline übergeben wurde, muss die folgende Richtlinie zum Lesen und Schreiben an den im Abschnitt Voraussetzungen erstellten geheimen Schlüssel angehängt sein.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecretReadWrite", "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:PutSecretValue", "secretsmanager:ListSecretVersionIds" ], "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:secret-name-random-6-characters" } ] }

Der Rolle sollte außerdem eine Richtlinie für den Zugriff und das Schreiben auf die von Ihnen gewählte Senke zugewiesen sein. Wenn Sie beispielsweise OpenSearch als Datenspeicher wählen, sieht die Richtlinie etwa wie folgt aus:

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "OpenSearchWritePolicy", "Effect": "Allow", "Action": "aoss:*", "Resource": "arn:aws:aoss:us-east-1:111122223333:collection/collection-id" } ] }

Konfiguration der Jira-Connector-Pipeline

Du kannst einen vorkonfigurierten Atlassian Jira-Blueprint verwenden, um diese Pipeline zu erstellen. Weitere Informationen finden Sie unter Mit Blueprints arbeiten.

Ersetzen Sie placeholder values durch Ihre Informationen.

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 Komprimieren von HTTP-Anforderungen in 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"

Schlüssel zu den Attributen in der Jira-Quelle:

  1. hosts: Ihre Jira-Cloud- oder On-Premises-URL. Im Allgemeinen sieht es so aus. https://your-domain-name.atlassian.net/

  2. Bestätigungen: Um die Lieferung von Daten bis zur Senke zu garantieren.

  3. Authentifizierung: Beschreibt, wie die Pipeline auf Ihre Jira-Instanz zugreifen soll. Wählen Sie Basic oder OAuth2 und geben Sie die entsprechenden Schlüsselattribute an, die auf die Schlüssel in Ihrem AWS Geheimnis verweisen.

  4. Filter: In diesem Abschnitt können Sie auswählen, welcher Teil Ihrer Jira-Daten extrahiert und synchronisiert werden soll.

    1. Projekt: Listet die Projektschlüssel, die Sie synchronisieren möchten, in dem include Abschnitt auf. Andernfalls listen Sie die Projekte, die Sie ausschließen möchten, in dem exclude Abschnitt auf. Geben Sie jeweils nur eine der Optionen zum Einschließen oder Ausschließen an.

    2. issue_type: Bestimmte Problemtypen, die Sie synchronisieren möchten. Folgen Sie einem ähnlichen exclude Muster include oder einem Muster, das Ihren Bedürfnissen entspricht. Beachten Sie, dass Anlagen als Ankerlinks zum ursprünglichen Anhang angezeigt werden, der Inhalt des Anhangs jedoch nicht extrahiert wird.

    3. Status: Spezifischer Statusfilter, den Sie für die Datenextraktionsabfrage anwenden möchten. Wenn Sie angebeninclude, werden nur Tickets mit diesem Status synchronisiert. Wenn Sie dies angebenexclude, werden alle Tickets mit Ausnahme der Tickets mit dem angegebenen Status „Ausgeschlossen“ synchronisiert.

Konfiguration der Confluence-Connector-Pipeline

Du kannst einen vorkonfigurierten Atlassian Confluence-Blueprint verwenden, um diese Pipeline zu erstellen. Weitere Informationen finden Sie unter Mit Blueprints arbeiten.

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 Komprimieren von HTTP-Anforderungen in 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"

Die wichtigsten Attribute in der Confluence-Quelle:

  1. hosts: Ihre Confluence-Cloud- oder On-Premises-URL. Im Allgemeinen sieht es so aus https://your-domain-name.atlassian.net/

  2. Bestätigungen: Um die Lieferung von Daten bis zur Senke zu garantieren.

  3. Authentifizierung: Beschreibt, wie die Pipeline auf Ihre Confluence-Instanz zugreifen soll. Wählen Sie Basic oder OAuth2 und geben Sie die entsprechenden Schlüsselattribute an, die auf die Schlüssel in Ihrem Secret verweisen. AWS

  4. Filter: In diesem Abschnitt können Sie auswählen, welcher Teil Ihrer Confluence-Daten extrahiert und synchronisiert werden soll.

    1. Leertaste: Listet in dem Abschnitt die Leertaste auf, die include Sie synchronisieren möchten. Andernfalls listen Sie die Leerzeichen, die Sie ausschließen möchten, unter dem exclude Abschnitt auf. Geben Sie jeweils nur eine der Optionen zum Einschließen oder Ausschließen an.

    2. page_type: Bestimmte Seitentypen (wie Seite, Blogpost oder Anlagen), die du synchronisieren möchtest. Folgen Sie dem ähnlichen exclude Muster include oder dem Muster, das Ihren Bedürfnissen entspricht. Beachten Sie, dass Anlagen als Ankerlinks zum ursprünglichen Anhang angezeigt werden, der Inhalt des Anhangs jedoch nicht extrahiert wird.

Datenkonsistenz

Basierend auf den in der Pipeline-YAML-Pipeline angegebenen Filtern werden ausgewählte Projekte (oder Bereiche) einmal extrahiert und vollständig mit der Zielsenke synchronisiert. Anschließend erfasst die kontinuierliche Änderungsüberwachung die Änderungen, sobald sie auftreten, und aktualisiert die Daten in der Senke. Eine Ausnahme besteht darin, dass bei der Änderungsüberwachung nur update Aktionen create und keine delete Aktionen synchronisiert werden.

Einschränkungen

  • Aktionen zum Löschen von Benutzern werden nicht synchronisiert. Daten, die einmal in der Senke aufgezeichnet wurden, verbleiben in der Senke. Aktualisierungen überschreiben den vorhandenen Inhalt mit neuen Änderungen, wenn die ID-Zuordnung in den Senkeneinstellungen angegeben ist.

  • Lokale Instanzen, die ältere Versionen der Atlassian-Software verwenden und Folgendes nicht unterstützen, APIs sind mit dieser Quelle nicht kompatibel:

    • Jira Search API, Version 3

      • rest/api/3/search

      • rest/api/3/issue

    • Confluence

      • wiki/rest/api/content/search

      • wiki/rest/api/content

      • wiki/rest/api/settings/systemInfo

Metriken CloudWatch für Atlassian-Konnektoren

Typ: Metriken für den Jira-Konnektor

Quelle Metrik Metrik: Typ
acknowledgementSetSuccesses.count Zähler Wenn Bestätigungen aktiviert sind, gibt diese Metrik die Anzahl der erfolgreich synchronisierten Tickets an.
acknowledgementSetFailures.count Zähler Wenn Bestätigungen aktiviert sind, gibt diese Metrik die Anzahl der Tickets an, die nicht synchronisiert werden konnten.
CrawlingTime.avg Timer Die Zeit, die benötigt wurde, um alle neuen Änderungen zu durchforsten.
ticketFetchLatency.avg Timer Die durchschnittliche Latenz der API zum Abrufen von Tickets.
ticketFetchLatency.max Timer Die maximale Latenz der API zum Abrufen von Tickets.
Anzahl der angeforderten Tickets Zähler Anzahl der gestellten Anfragen zum Abrufen von Tickets.
ticketRequestedFailed. Anzahl Zähler Anzahl der Anfragen zum Abrufen von Tickets ist fehlgeschlagen.
ticketRequestedSuccess.count Zähler Anzahl der erfolgreichen Anfragen zum Abrufen von Tickets.
searchCallLatency.avg Timer Durchschnittliche Latenz bei Aufrufen der Such-API.
searchCallLatency.max Timer Maximale Latenz bei Aufrufen der Such-API.
searchResultsFound. Anzahl Zähler Anzahl der Artikel, die bei einem bestimmten Suchaufruf gefunden wurden.
searchRequestFailed. Anzahl Zähler Anzahl fehlgeschlagener Such-API-Aufrufe.
authFailures.Count Zähler Anzahl der Authentifizierungsfehler.

Typ: Confluence-Connector-Metriken

Quelle Metrik Metrik: Typ
acknowledgementSetSuccesses.count Zähler Wenn Bestätigungen aktiviert sind, gibt diese Metrik die Anzahl der erfolgreich synchronisierten Seiten an.
acknowledgementSetFailures.count Zähler Wenn Bestätigungen aktiviert sind, gibt diese Metrik die Anzahl der Seiten an, die nicht synchronisiert werden konnten.
CrawlingTime.avg Timer Die Zeit, die benötigt wurde, um alle neuen Änderungen zu durchforsten.
pageFetchLatency.avg Timer API-Latenz beim Abrufen von Inhalten (durchschnittlich).
pageFetchLatency.max Timer API-Latenz beim Abrufen von Inhalten (maximal).
Anzahl der angeforderten Seiten Zähler Anzahl der Aufrufe der API zum Abrufen von Inhalten.
pageRequestFailed. Anzahl Zähler Anzahl der fehlgeschlagenen Anfragen der API zum Abrufen von Inhalten.
pageRequestedSuccess.count Zähler Anzahl erfolgreicher Anfragen der API zum Abrufen von Inhalten.
searchCallLatency.avg Timer Durchschnittliche Latenz bei Aufrufen der Such-API.
searchCallLatency.max Timer Max. Latenz bei Aufrufen der Such-API
searchResultsFound. Anzahl Zähler Anzahl der Artikel, die bei einem bestimmten Suchaufruf gefunden wurden.
searchRequestsFailed. Anzahl Zähler Anzahl fehlgeschlagener Such-API-Aufrufe.
authFailures.Count Zähler Anzahl der Authentifizierungsfehler.