Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWSSupport-DiagnoseEMRLogsWithAthena
Deskripsi
AWSSupport-DiagnoseEMRLogsWithAthena
Runbook membantu mendiagnosis log EMR Amazon menggunakan Amazon Athena dalam integrasi dengan Katalog Data. AWS Glue Amazon Athena digunakan untuk menanyakan file log EMR 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 log EMR 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 Amazon S3 Amazon untuk membuat tabel untuk log cluster dan daftar masalah yang diketahui.
-
Menjalankan kueri Data Manipulation Language (DHTML) untuk mencari pola masalah yang diketahui di log EMR Amazon. 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-DiagnoseEMRLogsWithAthena
Melakukan analisis log EMR 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 klaster EMR 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 kepala sekolah IAM 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 EMR Amazon. 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 kueri DMLAmazon 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 peran IAM 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:
-
Navigasikan AWSSupport-DiagnoseEMRLogsWithAthena
di AWS Systems Manager bawah Dokumen. -
Pilih Jalankan otomatisasi.
-
Untuk parameter input masukkan yang berikut ini:
-
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 cluster EMR Amazon.
-
S3 LogLocation (Opsional):
Lokasi log EMR Amazon S3 Amazon. Masukkan URL gaya Path-style lokasi Amazon S3, misalnya:.
s3://amzn-s3-demo-bucket/myfolder/j-1K48XXXXXXHCB/
Berikan parameter ini jika klaster EMR Amazon telah dihentikan selama lebih dari beberapa hari.30
-
S3 BucketName (Diperlukan):
Nama bucket Amazon S3 untuk mengunggah daftar masalah yang diketahui, dan keluaran kueri Amazon Athena. Bucket harus mengaktifkan Blokir Akses Publik dan berada di AWS wilayah dan akun yang sama dengan kluster EMR Amazon.
-
Penyetuju (Wajib):
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, ARN pengguna, ARN peran IAM, atau IAM berperan ARN. Jumlah maksimum pemberi persetujuan adalah 10.
-
FetchNodeLogsOnly (Opsional):
Jika disetel ke
true
, otomatisasi mendiagnosis log wadah aplikasi Amazon EMR. Nilai default-nya adalahfalse
. -
FetchContainersLogsOnly(Opsional):
Jika disetel ke
true
, otomatisasi mendiagnosis log kontainer EMR Amazon. Nilai default-nya adalahfalse
. -
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 adalah30
hari. Nilai default-nya adalah1
. -
SearchKeywords (Opsional):
Daftar kata kunci untuk mencari di log, dipisahkan dengan koma. Kata kunci tidak dapat berisi tanda kutip tunggal atau ganda.
-
-
Pilih Jalankan.
-
Otomatisasi dimulai.
-
Dokumen melakukan langkah-langkah berikut:
-
getLogLocation:
Mengambil lokasi log Amazon S3 dengan menanyakan ID Cluster EMR Amazon yang ditentukan. Jika otomatisasi tidak dapat menanyakan lokasi log dari ID cluster EMR Amazon, runbook menggunakan parameter input.
S3LogLocation
-
branchOnValidLog:
Memverifikasi lokasi log EMR Amazon. Jika lokasinya valid, lanjutkan untuk memperkirakan biaya potensial Amazon Athena saat menjalankan kueri di log EMR Amazon.
-
estimateAthenaCosts:
Menentukan ukuran log EMR 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.
-
Menyetujui Otomasi:
Menunggu persetujuan kepala IAM yang ditunjuk untuk melanjutkan 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
Kueri DMLAmazon Athena mencari kesalahan dan pengecualian di log klaster Amazon EMR. -
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. Kueri DMLAmazon Athena menganalisis hasil dari kueri DML sebelumnya. Kueri analisis ini akan mengembalikan pengecualian yang cocok dengan resolusi dan artikel KC -
getAnalyzeResultsExecutionStatusKueri2:
Menunggu sampai eksekusi kueri dalam
SUCCEEDED
status. Kueri DMLAmazon Athena menganalisis hasil dari kueri DML sebelumnya. Kueri analisis ini akan menampilkan daftar pengecualian/kesalahan yang terdeteksi di setiap jalur log Amazon S3. -
printAthenaQueriesPesan:
Mencetak tautan untuk hasil kueri DMLAmazon Athena.
-
CleanUpresources:
Membersihkan sumber daya dengan menghapus AWS Glue database yang dibuat dan menghapus file masalah yang diketahui yang dibuat di bucket log EMR Amazon.
-
-
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 klaster EMR Amazon, bersama dengan lokasi log yang sesuai (awalan Amazon S3).
-
Ringkasan pengecualian unik yang diketahui cocok di log EMR 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
-
Lihat Pemecahan Masalah Amazon EMR Cluster untuk informasi lebih lanjut