Tutorial: Menelan data ke dalam domain menggunakan Amazon OpenSearch Ingestion - OpenSearch Layanan Amazon

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

Tutorial: Menelan data ke dalam domain menggunakan Amazon OpenSearch Ingestion

Tutorial ini menunjukkan cara menggunakan Amazon OpenSearch Ingestion untuk mengonfigurasi pipeline sederhana dan menyerap data ke dalam domain Layanan Amazon OpenSearch . Pipeline adalah sumber daya yang disediakan dan dikelola oleh OpenSearch Ingestion. Anda dapat menggunakan pipeline untuk memfilter, memperkaya, mengubah, menormalkan, dan mengumpulkan data untuk analitik dan visualisasi hilir di Layanan. OpenSearch

Tutorial ini memandu Anda melalui langkah-langkah dasar untuk mendapatkan pipeline dan berjalan dengan cepat. Untuk informasi selengkapnya, lihat Membuat jaringan pipa.

Anda akan menyelesaikan langkah-langkah berikut dalam tutorial ini:

Dalam tutorial, Anda akan membuat sumber daya berikut:

  • Sebuah pipa bernama ingestion-pipeline

  • Domain bernama ingestion-domain bahwa pipeline akan menulis

  • IAMPeran bernama PipelineRole bahwa pipeline akan mengambil alih untuk menulis ke domain

Izin yang diperlukan

Untuk menyelesaikan tutorial ini, Anda harus memiliki IAM izin yang benar. Pengguna atau peran Anda harus memiliki kebijakan berbasis identitas terlampir dengan izin minimum berikut. Izin ini memungkinkan Anda membuat peran pipeline (iam:Create), membuat atau memodifikasi domain (es:*), dan bekerja dengan pipelines (osis:*).

Selain itu, iam:PassRole izin diperlukan pada sumber daya peran pipa. Izin ini memungkinkan Anda untuk meneruskan peran pipeline ke OpenSearch Ingestion sehingga dapat menulis data ke domain.

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

Langkah 1: Buat peran pipeline

Pertama, buat peran yang akan diasumsikan pipeline untuk mengakses sink domain OpenSearch Service. Anda akan menyertakan peran ini dalam konfigurasi pipeline nanti dalam tutorial ini.

Untuk membuat peran pipeline
  1. Buka AWS Identity and Access Management konsol di https://console.aws.amazon.com/iamv2/.

  2. Pilih Kebijakan, lalu pilih Buat kebijakan.

  3. Dalam tutorial ini, Anda akan menelan data ke dalam domain yang disebutingestion-domain, yang akan Anda buat di langkah berikutnya. Pilih JSONdan tempel kebijakan berikut ke editor. Ganti {your-account-id} dengan ID akun Anda, dan ubah Wilayah jika perlu.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:us-east-1:your-account-id:domain/ingestion-domain" }, { "Effect": "Allow", "Action": "es:ESHttp*", "Resource": "arn:aws:es:us-east-1:your-account-id:domain/ingestion-domain/*" } ] }

    Jika Anda ingin menulis data ke domain yang ada, ganti ingestion-domain dengan nama domain Anda.

    catatan

    Untuk kesederhanaan dalam tutorial ini, kami menggunakan kebijakan akses yang cukup luas. Namun, di lingkungan produksi, kami menyarankan Anda menerapkan kebijakan akses yang lebih ketat ke peran pipeline Anda. Untuk contoh kebijakan yang memberikan izin minimum yang diperlukan, lihatMemberikan akses saluran pipa Amazon OpenSearch Ingestion ke domain.

  4. Pilih Berikutnya, pilih Berikutnya, dan beri nama kebijakan pipeline kebijakan Anda.

  5. Pilih Buat kebijakan.

  6. Selanjutnya, buat peran dan lampirkan kebijakan padanya. Pilih Peran, lalu pilih Buat peran.

  7. Pilih Kebijakan kepercayaan khusus dan tempelkan kebijakan berikut ke editor:

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"osis-pipelines.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
  8. Pilih Berikutnya. Kemudian cari dan pilih pipeline-policy (yang baru saja Anda buat).

  9. Pilih Berikutnya dan beri nama peran PipelineRole.

  10. Pilih Buat peran.

Ingat Nama Sumber Daya Amazon (ARN) dari peran (misalnya,arn:aws:iam::your-account-id:role/PipelineRole). Anda akan membutuhkannya saat membuat pipeline Anda.

Langkah 2: Buat domain

Selanjutnya, buat domain bernama ingestion-domain untuk menyerap data ke dalam.

Arahkan ke konsol OpenSearch Layanan Amazon di https://console.aws.amazon.com/aos/rumah dan buat domain yang memenuhi persyaratan berikut:

  • Menjalankan OpenSearch 1.0 atau yang lebih baru, atau Elasticsearch 7.4 atau yang lebih baru

  • Menggunakan akses publik

  • Tidak menggunakan kontrol akses berbutir halus

catatan

Persyaratan ini dimaksudkan untuk memastikan kesederhanaan dalam tutorial ini. Di lingkungan produksi, Anda dapat mengonfigurasi domain dengan VPC akses dan/atau menggunakan kontrol akses berbutir halus. Untuk menggunakan kontrol akses berbutir halus, lihat Memetakan peran pipeline.

Domain harus memiliki kebijakan akses yang memberikan izinPipelineRole, yang Anda buat pada langkah sebelumnya. Pipeline akan mengambil peran ini (bernama sts_role_arn dalam konfigurasi pipeline) untuk mengirim data ke sink domain Service. OpenSearch

Pastikan domain memiliki kebijakan akses tingkat domain berikut, yang memberikan PipelineRole akses ke domain. Ganti Region dan ID akun dengan milik Anda sendiri:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::your-account-id:role/PipelineRole" }, "Action": "es:*", "Resource": "arn:aws:es:us-east-1:your-account-id:domain/ingestion-domain/*" } ] }

Untuk informasi selengkapnya tentang membuat kebijakan akses tingkat domain, lihat Kebijakan akses berbasis sumber daya.

Jika Anda sudah memiliki domain yang dibuat, ubah kebijakan akses yang ada untuk memberikan izin di atas. PipelineRole

catatan

Ingat titik akhir domain (misalnya,https://search-ingestion-domain.us-east-1.es.amazonaws.com). Anda akan menggunakannya di langkah berikutnya untuk mengonfigurasi pipeline Anda.

Langkah 3: Buat pipeline

Sekarang setelah Anda memiliki domain dan peran dengan hak akses yang sesuai, Anda dapat membuat pipeline.

Untuk membuat pipa
  1. Di dalam konsol OpenSearch Layanan Amazon, pilih Pipelines dari panel navigasi kiri.

  2. Pilih Buat pipeline.

  3. Pilih pipeline kosong, lalu pilih Select blueprint.

  4. Beri nama pipeline ingestion-pipeline dan pertahankan pengaturan kapasitas sebagai defaultnya.

  5. Dalam tutorial ini, Anda akan membuat sub-pipeline sederhana yang disebut log-pipeline yang menggunakan plugin sumber Http. Plugin ini menerima data log dalam format JSON array. Anda akan menentukan satu domain OpenSearch Layanan sebagai wastafel, dan menyerap semua data ke dalam application_logs indeks.

    Di bawah konfigurasi Pipeline, tempelkan YAML konfigurasi berikut ke editor:

    version: "2" log-pipeline: source: http: path: "/${pipelineName}/test_ingestion_path" processor: - date: from_time_received: true destination: "@timestamp" sink: - opensearch: hosts: [ "https://search-ingestion-domain.us-east-1.es.amazonaws.com" ] index: "application_logs" aws: sts_role_arn: "arn:aws:iam::your-account-id:role/PipelineRole" region: "us-east-1"
    catatan

    pathOpsi menentukan URI jalur untuk konsumsi. Opsi ini diperlukan untuk sumber berbasis tarik. Untuk informasi selengkapnya, lihat Menentukan jalur konsumsi.

  6. Ganti hosts URL dengan titik akhir domain yang Anda buat (atau modifikasi) di bagian sebelumnya. Ganti sts_role_arn parameter dengan ARN dariPipelineRole.

  7. Pilih Validasi pipeline dan pastikan validasi berhasil.

  8. Untuk kesederhanaan dalam tutorial ini, konfigurasikan akses publik untuk pipeline. Di bawah Jaringan, pilih Akses publik.

    Untuk informasi tentang mengonfigurasi VPC akses, lihatMengkonfigurasi akses VPC untuk saluran pipa Amazon Ingestion OpenSearch .

  9. Tetap aktifkan penerbitan log jika Anda mengalami masalah saat menyelesaikan tutorial ini. Untuk informasi selengkapnya, lihat Memantau log.

    Tentukan nama grup log berikut: /aws/vendedlogs/OpenSearchIngestion/ingestion-pipeline/audit-logs

  10. Pilih Berikutnya. Tinjau konfigurasi pipeline Anda dan pilih Create pipeline. Pipa membutuhkan waktu 5-10 menit untuk menjadi aktif.

Langkah 4: Menelan beberapa data sampel

Ketika status pipelineActive, Anda dapat mulai menelan data ke dalamnya. Anda harus menandatangani semua HTTP permintaan ke pipeline menggunakan Signature Version 4. Gunakan HTTP alat seperti Postman atau awscurl untuk mengirim beberapa data ke pipeline. Seperti halnya pengindeksan data langsung ke domain, memasukkan data ke dalam pipeline selalu memerlukan IAM peran atau kunci IAM akses dan kunci rahasia.

catatan

Kepala sekolah yang menandatangani permintaan harus memiliki osis:Ingest IAM izin.

Pertama, dapatkan konsumsi URL dari halaman pengaturan Pipeline:

Pipeline settings page showing ingestion URL for an active ingestion pipeline.

Kemudian, konsumsi beberapa data sampel. Permintaan berikut menggunakan awscurl untuk mengirim satu file log ke indeks: application_logs

awscurl --service osis --region us-east-1 \ -X POST \ -H "Content-Type: application/json" \ -d '[{"time":"2014-08-11T11:40:13+00:00","remote_addr":"122.226.223.69","status":"404","request":"GET http://www.k2proxy.com//hello.html HTTP/1.1","http_user_agent":"Mozilla/4.0 (compatible; WOW64; SLCC2;)"}]' \ https://pipeline-endpoint.us-east-1.osis.amazonaws.com/log-pipeline/test_ingestion_path

Anda harus melihat 200 OK tanggapan. Jika Anda mendapatkan kesalahan otentikasi, itu mungkin karena Anda menelan data dari akun terpisah daripada pipeline. Lihat Memperbaiki masalah izin.

Sekarang, kueri application_logs indeks untuk memastikan bahwa entri log Anda berhasil dicerna:

awscurl --service es --region us-east-1 \ -X GET \ https://search-ingestion-domain.us-east-1.es.amazonaws.com/application_logs/_search | json_pp

Sampel respon:

{ "took":984, "timed_out":false, "_shards":{ "total":1, "successful":5, "skipped":0, "failed":0 }, "hits":{ "total":{ "value":1, "relation":"eq" }, "max_score":1.0, "hits":[ { "_index":"application_logs", "_type":"_doc", "_id":"z6VY_IMBRpceX-DU6V4O", "_score":1.0, "_source":{ "time":"2014-08-11T11:40:13+00:00", "remote_addr":"122.226.223.69", "status":"404", "request":"GET http://www.k2proxy.com//hello.html HTTP/1.1", "http_user_agent":"Mozilla/4.0 (compatible; WOW64; SLCC2;)", "@timestamp":"2022-10-21T21:00:25.502Z" } } ] } }

Memperbaiki masalah izin

Jika Anda mengikuti langkah-langkah dalam tutorial dan Anda masih melihat kesalahan otentikasi ketika Anda mencoba untuk menelan data, itu mungkin karena peran yang menulis ke pipeline berbeda Akun AWS dari pipeline itu sendiri. Dalam hal ini, Anda perlu membuat dan mengambil peran yang secara khusus memungkinkan Anda untuk menelan data. Untuk petunjuk, silakan lihat Menyediakan akses konsumsi lintas akun.

Sumber daya terkait

Tutorial ini menyajikan kasus penggunaan sederhana menelan satu dokumen. HTTP Dalam skenario produksi, Anda akan mengonfigurasi aplikasi klien Anda (seperti Fluent Bit, Kubernetes, atau OpenTelemetry Collector) untuk mengirim data ke satu atau beberapa pipeline. Saluran pipa Anda kemungkinan akan lebih kompleks daripada contoh sederhana dalam tutorial ini.

Untuk mulai mengonfigurasi klien Anda dan menelan data, lihat sumber daya berikut: