AWSSupport-DiagnoseEMRLogsWithAthena - AWS Systems Manager Referensi buku runbook otomatisasi

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

AWSSupport-DiagnoseEMRLogsWithAthena

Deskripsi

AWSSupport-DiagnoseEMRLogsWithAthenaRunbook membantu mendiagnosis EMR log Amazon menggunakan Amazon Athena dalam integrasi AWS Glue dengan Katalog Data. Amazon Athena digunakan untuk menanyakan file EMR log Amazon untuk wadah, log node, atau keduanya, dengan parameter opsional untuk rentang tanggal tertentu atau pencarian berbasis kata kunci.

Runbook dapat secara otomatis mengambil lokasi EMR log Amazon untuk klaster yang ada, atau Anda dapat menentukan lokasi log Amazon S3. Untuk menganalisis log, runbook:

  • Membuat AWS Glue database dan mengeksekusi kueri Amazon Athena Data Definition Language DDL () di lokasi log Amazon EMR S3 Amazon untuk membuat tabel untuk log klaster dan daftar masalah yang diketahui.

  • Menjalankan kueri Data Manipulation Language (DML) untuk mencari pola masalah yang diketahui di log AmazonEMR. Kueri menampilkan daftar masalah yang terdeteksi, jumlah kemunculannya, dan jumlah kata kunci yang cocok menurut jalur file Amazon S3.

  • Hasilnya diunggah ke bucket Amazon S3 yang Anda tentukan di bawah awalan. saw_diagnose_EMR_known_issues

  • Runbook mengembalikan hasil kueri Amazon Athena, menyoroti temuan, rekomendasi, dan referensi ke artikel Pusat Pengetahuan Amazon (KC) yang bersumber dari subset yang telah ditentukan.

  • Setelah selesai atau gagal, AWS Glue database dan file masalah yang diketahui yang diunggah ke bucket Amazon S3 akan dihapus.

Bagaimana cara kerjanya?

AWSSupport-DiagnoseEMRLogsWithAthenaMelakukan analisis EMR log Amazon menggunakan Amazon Athena untuk mendeteksi kesalahan dan menyoroti temuan, rekomendasi, dan artikel Pusat Pengetahuan yang relevan.

Runbook melakukan langkah-langkah berikut:

  • Dapatkan lokasi log EMR klaster Amazon menggunakan ID cluster atau masukan lokasi Amazon S3 untuk mengambil lokasi dan ukuran log.

  • Berikan perkiraan biaya Athena berdasarkan ukuran lokasi log.

  • Dapatkan persetujuan untuk melanjutkan dengan meminta persetujuan dari IAM kepala sekolah yang ditunjuk sebelum menjalankan pertanyaan Athena dan melanjutkan ke langkah berikutnya.

  • Unggah masalah yang diketahui ke bucket Amazon S3 yang ditentukan, buat AWS Glue database dan tabel.

  • Jalankan kueri Athena pada data log AmazonEMR. Kueri dapat mencari berdasarkan rentang tanggal, kata kunci, kedua kriteria, atau berjalan tanpa filter berdasarkan input yang disediakan.

  • Menganalisis hasil untuk menyoroti temuan, rekomendasi, dan artikel KC yang relevan.

  • Tautan keluaran untuk hasil DML kueri Amazon Athena.

  • Bersihkan lingkungan dengan menghapus database yang dibuat, tabel, dan masalah yang diketahui yang diunggah.

Jenis dokumen

Otomatisasi

Pemilik

Amazon

Platform

/

AutomationAssumeRole Parameter memerlukan tindakan berikut agar berhasil menggunakan runbook:

  • Athena: GetQueryExecution

  • Athena: StartQueryExecution

  • Athena: GetPreparedStatement

  • Athena: CreatePreparedStatement

  • lem: GetDatabase

  • lem: CreateDatabase

  • lem: DeleteDatabase

  • lem: CreateTable

  • lem: GetTable

  • lem: DeleteTable

  • elasticmapreduce: DescribeCluster

  • s3: ListBucket

  • s3: GetBucketVersioning

  • s3: ListBucketVersions

  • s3: GetBucketPublicAccessBlock

  • s3: GetBucketPolicyStatus

  • s3: GetObject

  • s3: GetBucketLocation

  • harga: GetProducts

  • harga: GetAttributeValues

  • harga: DescribeServices

  • harga: ListPriceLists

penting

Untuk membatasi akses hanya ke sumber daya yang dibutuhkan oleh otomatisasi ini, lampirkan kebijakan berikut ke IAM peran yang mempercayai Layanan. SSM Ganti Partisi, Wilayah, dan Akun dengan nilai yang sesuai untuk partisi, wilayah, dan nomor akun tempat buku run dijalankan.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "glue:GetDatabase", "athena:GetQueryExecution", "athena:StartQueryExecution", "athena:GetPreparedStatement", "athena:CreatePreparedStatement", "s3:ListBucket", "s3:GetBucketVersioning", "s3:ListBucketVersions", "s3:GetBucketPublicAccessBlock", "s3:GetBucketPolicyStatus", "s3:GetObject", "s3:GetBucketLocation", "pricing:GetProducts", "pricing:GetAttributeValues", "pricing:DescribeServices", "pricing:ListPriceLists" ], "Resource": "*" }, { "Sid": "RestrictPutObjects", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:{Partition}:s3:::*/*/results/*", "arn:{partition}:s3:::*/*/saw_diagnose_emr_known_issues/*" ] }, { "Sid": "RestrictDeleteAccess", "Effect": "Allow", "Action": [ "s3:DeleteObject", "s3:DeleteObjectVersion" ], "Resource": [ "arn:{Partition}:s3:::*/*/saw_diagnose_emr_known_issues/*" ] }, { "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:CreateDatabase", "glue:DeleteDatabase" ], "Resource": [ "arn:{Partition}:glue:{Region}:{Account}:database/saw_diagnose_emr_database_*", "arn:{Partition}:glue:{Region}:{Account}:table/saw_diagnose_emr_database_*/*", "arn:{Partition}:glue:{Region}:{Account}:userDefinedFunction/saw_diagnose_emr_database_*/*", "arn:{Partition}:glue:{Region}:{Account}:catalog" ] }, { "Effect": "Allow", "Action": [ "glue:CreateTable", "glue:GetTable", "glue:DeleteTable" ], "Resource": [ "arn:{Partition}:glue:{Region}:{Account}:table/saw_diagnose_emr_database_*/saw_diagnose_emr_known_issues", "arn:{Partition}:glue:{Region}:{Account}:table/saw_diagnose_emr_database_*/saw_diagnose_emr_logs_table", "arn:{Partition}:glue:{Region}:{Account}:table/saw_diagnose_emr_database_*/j_*", "arn:{Partition}:glue:{Region}:{Account}:database/saw_diagnose_emr_database_*", "arn:{Partition}:glue:{Region}:{Account}:catalog" ] } ] }

Instruksi

Ikuti langkah-langkah ini untuk mengonfigurasi otomatisasi:

  1. Navigasikan AWSSupport-D iagnoseEMRLogs WithAthena di AWS Systems Manager bawah Dokumen.

  2. Pilih Jalankan otomatisasi.

  3. Untuk parameter input masukkan yang berikut:

    • AutomationAssumeRole (Opsional):

      Nama Sumber Daya Amazon (ARN) dari peran AWS Identity and Access Management (IAM) yang memungkinkan Otomasi Systems Manager untuk melakukan tindakan atas nama Anda. Jika tidak ada peran yang ditentukan, Systems Manager Automation menggunakan izin pengguna yang memulai runbook ini.

    • ClusterId (Diperlukan):

      ID EMR cluster Amazon.

    • S3 LogLocation (Opsional):

      Lokasi EMR log Amazon S3 Amazon. Masukkan lokasi Amazon URL S3 bergaya Path, misalnya:. s3://amzn-s3-demo-bucket/myfolder/j-1K48XXXXXXHCB/ Berikan parameter ini jika EMR klaster Amazon telah dihentikan selama lebih dari 30 beberapa hari.

    • S3 BucketName (Diperlukan):

      Nama bucket Amazon S3 untuk mengunggah daftar masalah yang diketahui, dan keluaran kueri Amazon Athena. Bucket harus memiliki Blokir Akses Publik Diaktifkan dan berada di AWS wilayah dan akun yang sama dengan EMR cluster Amazon.

    • Penyetuju (Diperlukan):

      Daftar kepala sekolah yang AWS diautentikasi yang dapat menyetujui atau menolak tindakan tersebut. Anda dapat menentukan prinsipal dengan menggunakan salah satu format berikut: nama pengguna, pengguna, IAM peran ARNARN, atau IAM peran peran. ARN Jumlah maksimum pemberi persetujuan adalah 10.

    • FetchNodeLogsOnly (Opsional):

      Jika disetel ketrue, otomatisasi mendiagnosis log wadah EMR aplikasi Amazon. Nilai default-nya adalah false.

    • FetchContainersLogsOnly(Opsional):

      Jika disetel ketrue, otomatisasi mendiagnosis log EMR kontainer Amazon. Nilai default-nya adalah false.

    • EndSearchDate (Opsional):

      Tanggal akhir untuk pencarian log. Jika disediakan, otomatisasi akan secara eksklusif mencari log yang dihasilkan hingga tanggal yang ditentukan dalam format YYYY -MM-DD (misalnya:). 2024-12-30

    • DaysToCheck (Opsional):

      Ketika EndSearchDate disediakan, parameter ini diperlukan untuk menentukan jumlah hari untuk secara retrospektif mencari log dari yang ditentukan. EndSearchDate Nilai maksimumnya adalah 30 hari. Nilai default-nya adalah 1.

    • SearchKeywords (Opsional):

      Daftar kata kunci untuk mencari di log, dipisahkan dengan koma. Kata kunci tidak dapat berisi tanda kutip tunggal atau ganda.

  4. Pilih Jalankan.

  5. Otomatisasi dimulai.

  6. Dokumen melakukan langkah-langkah berikut:

    • getLogLocation:

      Mengambil lokasi log Amazon S3 dengan menanyakan ID Cluster Amazon EMR yang ditentukan. Jika otomatisasi tidak dapat menanyakan lokasi log dari ID EMR cluster Amazon, runbook menggunakan parameter S3LogLocation input.

    • branchOnValidLog:

      Memverifikasi lokasi EMR log Amazon. Jika lokasinya valid, lanjutkan untuk memperkirakan biaya potensial Amazon Athena saat menjalankan kueri di log Amazon. EMR

    • estimateAthenaCosts:

      Menentukan ukuran EMR log Amazon dan memberikan perkiraan biaya untuk mengeksekusi pemindaian Athena pada kumpulan data log. Untuk wilayah non-komersial (AWS non-partisi), langkah ini hanya menyediakan ukuran log tanpa memperkirakan biaya. Biaya dapat dihitung menggunakan dokumentasi harga Athena di wilayah yang ditentukan.

    • approveAutomation:

      Menunggu persetujuan IAM kepala sekolah yang ditunjuk untuk melanjutkan dengan langkah otomatisasi selanjutnya. Pemberitahuan persetujuan berisi perkiraan biaya pemindaian Amazon Athena di log EMR Amazon, dan detail tentang sumber daya yang disediakan oleh otomatisasi.

    • uploadKnownIssuesExecuteAthenaQueries:

      Mengunggah masalah yang telah ditentukan sebelumnya ke bucket Amazon S3 yang ditentukan dalam parameter. S3BucketName Membuat AWS Glue database dan tabel. Menjalankan kueri Amazon Athena dalam AWS Glue database berdasarkan parameter input.

    • getQueryExecutionStatus:

      Menunggu hingga eksekusi kueri Amazon Athena dalam status. SUCCEEDED DMLKueri Amazon Athena mencari kesalahan dan pengecualian di log klaster AmazonEMR.

    • analyzeAthenaResults:

      Menganalisis hasil Amazon Athena untuk memberikan temuan, rekomendasi, dan artikel Pusat Pengetahuan (KC) yang bersumber dari serangkaian pemetaan yang telah ditentukan sebelumnya.

    • getAnalyzeResultsExecutionStatusKueri1:

      Menunggu sampai eksekusi kueri dalam SUCCEEDED status. DMLKueri Amazon Athena menganalisis hasil dari kueri sebelumnya. DML Kueri analisis ini akan mengembalikan pengecualian yang cocok dengan resolusi dan artikel KC

    • getAnalyzeResultsExecutionStatusKueri2:

      Menunggu sampai eksekusi kueri dalam SUCCEEDED keadaan. DMLKueri Amazon Athena menganalisis hasil dari kueri sebelumnya. DML Kueri analisis ini akan menampilkan daftar pengecualian/kesalahan yang terdeteksi di setiap jalur log Amazon S3.

    • printAthenaQueriesPesan:

      Mencetak tautan untuk hasil DML kueri Amazon Athena.

    • cleanupResources:

      Membersihkan sumber daya dengan menghapus AWS Glue database yang dibuat dan menghapus file masalah yang diketahui yang dibuat di bucket log AmazonEMR.

  7. Setelah selesai, tinjau bagian Output untuk hasil eksekusi yang terperinci:

    Output menyediakan tiga tautan untuk hasil kueri Athena:

    • Daftar semua kesalahan dan pengecualian yang sering terjadi ditemukan di log EMR klaster Amazon, bersama dengan lokasi log yang sesuai (awalan Amazon S3).

    • Ringkasan pengecualian unik yang diketahui cocok di EMR log Amazon, bersama dengan resolusi yang direkomendasikan dan artikel KC untuk membantu dalam pemecahan masalah.

    • Detail tentang di mana kesalahan dan pengecualian tertentu muncul di jalur log Amazon S3, untuk mendukung diagnosis lebih lanjut.

Referensi

Otomatisasi Systems Manager

AWS dokumentasi layanan