Menggunakan pipa OpenSearch Ingestion dengan Atlassian Services - OpenSearch Layanan Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan pipa OpenSearch Ingestion dengan Atlassian Services

Anda dapat menggunakan plugin sumber Atlassian Jira dan Confluence untuk menyerap data dari layanan Atlassian ke dalam pipeline Ingestion Anda. OpenSearch Integrasi ini memungkinkan Anda untuk membuat basis pengetahuan terpadu yang dapat dicari dengan menyinkronkan proyek Jira lengkap dan ruang Confluence, sambil mempertahankan relevansi waktu nyata melalui pemantauan berkelanjutan dan sinkronisasi pembaruan otomatis.

Integrating with Jira

Ubah pengalaman Jira Anda dengan kemampuan pencarian kontekstual yang kuat dengan mengintegrasikan konten Jira Anda ke dalamnya. OpenSearch Plugin sumber Data Prepper Atlassian Jira memungkinkan Anda membuat basis pengetahuan terpadu yang dapat dicari dengan menyinkronkan proyek Jira yang lengkap, sambil mempertahankan relevansi waktu nyata melalui pemantauan berkelanjutan dan sinkronisasi pembaruan otomatis. Integrasi ini memungkinkan sinkronisasi data dengan opsi pemfilteran fleksibel untuk proyek tertentu, jenis masalah, dan status, memastikan bahwa hanya informasi yang Anda butuhkan yang diimpor.

Untuk memastikan konektivitas yang aman dan andal, plugin ini mendukung beberapa metode otentikasi, termasuk otentikasi dan OAuth2 otentikasi kunci API dasar, dengan keamanan tambahan untuk mengelola kredensyal menggunakan rahasia yang disimpan di dalamnya. AWS Secrets Manager Ini juga dilengkapi pembaruan token otomatis untuk akses tanpa gangguan, memastikan operasi berkelanjutan. Dibangun di atas API versi 2 Atlassian, integrasi ini memberdayakan tim untuk membuka wawasan berharga dari data Jira mereka melalui OpenSearch kemampuan pencarian lanjutan.

Integrating with Confluence

Tingkatkan kemampuan manajemen pengetahuan dan kolaborasi tim Anda dengan mengintegrasikan konten Atlassian Confluence ke dalam plugin sumber Confluence OpenSearch Data Prepper. Integrasi ini memungkinkan Anda untuk membuat repositori pengetahuan kolektif yang terpusat dan dapat dicari, meningkatkan penemuan informasi dan produktivitas tim. Dengan menyinkronkan konten Confluence dan terus memantau pembaruan, plugin memastikan bahwa OpenSearch indeks Anda tetap up-to-date dan komprehensif.

Integrasi ini menawarkan opsi pemfilteran yang fleksibel, memungkinkan Anda mengimpor konten secara selektif dari spasi atau jenis halaman tertentu, menyesuaikan konten yang disinkronkan dengan kebutuhan organisasi Anda. Plugin ini mendukung kunci API dasar dan metode OAuth2 otentikasi, dengan opsi mengelola kredensil dengan aman. AWS Secrets Manager Fitur pembaruan token otomatis plugin memastikan akses tanpa gangguan dan operasi yang mulus. Dibangun di atas Confluence API Atlassian, integrasi ini memungkinkan tim untuk memanfaatkan OpenSearch kemampuan pencarian lanjutan di seluruh konten Confluence mereka, meningkatkan aksesibilitas informasi dan pemanfaatan dalam organisasi.

Prasyarat

Sebelum Anda membuat pipeline OpenSearch Ingestion Anda, selesaikan langkah-langkah berikut:

  1. Siapkan kredensyal untuk situs Jira Anda dengan memilih salah satu opsi berikut. OpenSearch Konsumsi hanya memerlukan ReadOnly otorisasi untuk konten.

    1. Opsi 1: Kunci API - Masuk ke akun Atlassian Anda dan gunakan informasi dalam topik berikut untuk menghasilkan kunci API Anda:

    2. Opsi 2: OAuth2 — Masuk ke akun Atlassian Anda dan gunakan informasinya. Menghubungkan pipeline Amazon OpenSearch Ingestion ke Atlassian Jira atau Confluence menggunakan 2.0 OAuth

  2. Buat rahasia AWS Secrets Manager untuk menyimpan kredensil yang dibuat pada langkah sebelumnya. Buat pilihan berikut saat Anda mengikuti prosedur:

    • Untuk Tipe rahasia, pilih Tipe rahasia lainnya.

    • Untuk pasangan kunci/nilai, buat pasangan berikut, tergantung pada jenis otorisasi yang Anda pilih:

    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 }

    Setelah Anda membuat rahasia, salin Amazon Resource Name (ARN) dari rahasianya. Anda akan memasukkannya ke dalam kebijakan izin peran pipeline.

Mengonfigurasi peran alur

Peran yang diteruskan dalam pipeline harus memiliki kebijakan berikut yang dilampirkan untuk membaca dan menulis ke rahasia yang dibuat di bagian prasyarat.

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" } ] }

Peran tersebut juga harus memiliki kebijakan yang dilampirkan untuk mengakses dan menulis ke wastafel pilihan Anda. Misalnya, jika Anda memilih OpenSearch sebagai wastafel, kebijakan terlihat mirip dengan yang berikut:

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

Konfigurasi pipa konektor Jira

Anda dapat menggunakan cetak biru Atlassian Jira yang telah dikonfigurasi sebelumnya untuk membuat pipeline ini. Untuk informasi selengkapnya, lihat Bekerja dengan cetak biru.

Ganti placeholder values dengan informasi Anda sendiri.

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 Mengompresi permintaan HTTP di Amazon Service OpenSearch # 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"

Kunci atribut di sumber Jira:

  1. host: Cloud Jira atau URL lokal Anda. Umumnya, sepertinyahttps://your-domain-name.atlassian.net/.

  2. ucapan terima kasih: Untuk menjamin pengiriman data sampai ke wastafel.

  3. otentikasi: Menjelaskan bagaimana Anda ingin pipeline mengakses instance Jira Anda. Pilih Basic atau OAuth2 dan tentukan atribut kunci yang sesuai yang mereferensikan kunci dalam AWS rahasia Anda..

  4. filter: Bagian ini membantu Anda memilih bagian mana dari data Jira Anda untuk mengekstrak dan menyinkronkan.

    1. project: Buat daftar kunci proyek yang ingin Anda sinkronkan di include bagian. Jika tidak, daftarkan proyek yang ingin Anda kecualikan di bawah exclude bagian. Berikan hanya salah satu opsi sertakan atau kecualikan pada waktu tertentu.

    2. issue_type: Jenis masalah khusus yang ingin Anda sinkronkan. Ikuti exclude pola serupa include atau yang sesuai dengan kebutuhan Anda. Perhatikan bahwa lampiran akan muncul sebagai tautan jangkar ke lampiran asli, tetapi konten lampiran tidak akan diekstraksi.

    3. status: Filter status tertentu yang ingin Anda terapkan untuk kueri ekstraksi data. Jika Anda menentukaninclude, hanya tiket dengan status tersebut yang akan disinkronkan. Jika Anda menentukanexclude, maka semua tiket kecuali yang memiliki status dikecualikan yang terdaftar akan disinkronkan.

Konfigurasi pipa konektor pertemuan

Anda dapat menggunakan cetak biru Atlassian Confluence yang telah dikonfigurasi sebelumnya untuk membuat pipeline ini. Untuk informasi selengkapnya, lihat Bekerja dengan cetak biru.

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 Mengompresi permintaan HTTP di Amazon Service OpenSearch . # 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"

Atribut kunci dalam sumber Confluence:

  1. host: Cloud Confluence atau URL lokal Anda. Secara umum, sepertinya https://your-domain-name.atlassian.net/

  2. ucapan terima kasih: Untuk menjamin pengiriman data sampai ke wastafel.

  3. otentikasi: Menjelaskan bagaimana Anda ingin pipeline mengakses instance Confluence Anda. Pilih Basic atau OAuth2 dan tentukan atribut kunci yang sesuai yang mereferensikan kunci dalam AWS rahasia Anda.

  4. filter: Bagian ini membantu Anda memilih bagian mana dari data Confluence Anda untuk mengekstrak dan menyinkronkan.

    1. spasi: Buat daftar tombol spasi yang ingin Anda sinkronkan di include bagian tersebut. Jika tidak, cantumkan spasi yang ingin Anda kecualikan di bawah exclude bagian. Berikan hanya salah satu opsi sertakan atau kecualikan pada waktu tertentu.

    2. page_type: Jenis halaman tertentu (seperti halaman, blogpost, atau lampiran) yang ingin Anda sinkronkan. Ikuti exclude pola serupa include atau yang sesuai dengan kebutuhan Anda. Perhatikan bahwa lampiran akan muncul sebagai tautan jangkar ke lampiran asli, tetapi konten lampiran tidak akan diekstraksi.

Konsistensi data

Berdasarkan filter yang ditentukan dalam pipa YAMB, proyek (atau spasi) yang dipilih akan diekstraksi sekali dan disinkronkan sepenuhnya ke wastafel target. Kemudian pemantauan perubahan berkelanjutan akan menangkap perubahan saat terjadi dan memperbarui data di wastafel. Satu pengecualian adalah bahwa pemantauan perubahan hanya disinkronkan create dan update tindakan, bukan delete tindakan.

Batasan

  • Tindakan menghapus pengguna tidak akan disinkronkan. Data yang pernah direkam di wastafel akan tetap berada di wastafel. Pembaruan akan menimpa konten yang ada dengan perubahan baru jika pemetaan ID ditentukan dalam pengaturan sink.

  • Instans lokal yang menggunakan perangkat lunak Atlassian versi lama yang tidak mendukung hal berikut tidak APIs kompatibel dengan sumber ini:

    • Jira Search API versi 3

      • rest/api/3/search

      • rest/api/3/issue

    • Confluence

      • wiki/rest/api/content/search

      • wiki/rest/api/content

      • wiki/rest/api/settings/systemInfo

Metrik CloudWatch untuk konektor Atlassian

Jenis: Metrik konektor Jira

Sumber Metrik Jenis Metrik
acknowledgementSetSuccesses.menghitung Penghitung Jika ucapan terima kasih diaktifkan, metrik ini memberikan jumlah tiket yang berhasil disinkronkan.
acknowledgementSetFailures.menghitung Penghitung Jika ucapan terima kasih diaktifkan, metrik ini memberikan jumlah tiket yang gagal disinkronkan.
Crawlingtime.avg Timer Waktu yang dibutuhkan untuk merangkak melalui semua perubahan baru.
ticketFetchLatency.avg Timer Rata-rata latensi API pengambilan tiket.
ticketFetchLatency.maks Timer Maksimum latensi API pengambilan tiket.
TicketsRequested.count Penghitung Jumlah permintaan pengambilan tiket yang dibuat.
ticketRequestedFailed.menghitung Penghitung Jumlah permintaan pengambilan tiket gagal.
ticketRequestedSuccess.menghitung Penghitung Jumlah permintaan pengambilan tiket berhasil.
searchCallLatency.avg Timer Cari rata-rata latensi panggilan API.
searchCallLatency.maks Timer Cari latensi panggilan API maksimum.
searchResultsFound.menghitung Penghitung Jumlah item yang ditemukan dalam panggilan pencarian tertentu.
searchRequestFailed.menghitung Penghitung Kegagalan panggilan API pencarian dihitung.
AuthFailures.count Penghitung Jumlah kegagalan otentikasi.

Jenis: Metrik konektor pertemuan

Sumber Metrik Jenis Metrik
acknowledgementSetSuccesses.menghitung Penghitung Jika ucapan terima kasih diaktifkan, metrik ini memberikan jumlah halaman yang berhasil disinkronkan.
acknowledgementSetFailures.menghitung Penghitung Jika ucapan terima kasih diaktifkan, metrik ini memberikan jumlah halaman yang gagal disinkronkan.
Crawlingtime.avg Timer Waktu yang dibutuhkan untuk merangkak melalui semua perubahan baru.
pageFetchLatency.avg Timer Latensi API pengambilan konten (rata-rata).
pageFetchLatency.maks Timer Latensi API pengambilan konten (maksimum).
PagesRequested.count Penghitung Jumlah pemanggilan API pengambilan konten.
pageRequestFailed.menghitung Penghitung Jumlah permintaan API pengambilan konten yang gagal.
pageRequestedSuccess.menghitung Penghitung Jumlah permintaan API pengambilan konten yang berhasil.
searchCallLatency.avg Timer Cari rata-rata latensi panggilan API.
searchCallLatency.maks Timer Cari latensi panggilan API maks.
searchResultsFound.menghitung Penghitung Jumlah item yang ditemukan dalam panggilan pencarian tertentu.
searchRequestsFailed.menghitung Penghitung Kegagalan panggilan API pencarian dihitung.
AuthFailures.count Penghitung Jumlah kegagalan otentikasi.