AWSSupport-AnalyzeEMRLogs - 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-AnalyzeEMRLogs

Deskripsi

Runbook ini membantu mengidentifikasi kesalahan saat menjalankan pekerjaan di klaster EMR Amazon. Runbook menganalisis daftar log yang ditentukan pada sistem file dan mencari daftar kata kunci yang telah ditentukan. Entri log ini digunakan untuk membuat CloudWatch peristiwa Amazon Events sehingga Anda dapat mengambil tindakan apa pun yang diperlukan berdasarkan peristiwa. Secara opsional, runbook menerbitkan entri log ke grup CloudWatch log Amazon Logs yang Anda pilih. Runbook ini saat ini mencari kesalahan dan pola berikut dalam file log:

  • container_out_of_memory - wadah YARN kehabisan memori, menjalankan pekerjaan mungkin gagal.

  • yarn_nodemanager_health: CORE atau TASK node kehabisan ruang disk dan tidak akan dapat menjalankan tugas.

  • node_state_change: CORE atau TASK node tidak dapat dijangkau oleh node MASTER.

  • step_failure: Langkah EMR telah gagal.

  • no_core_nodes_running: Tidak ada node CORE yang sedang berjalan, cluster tidak sehat.

  • hdfs_missing_blocks: Ada blok HDFS yang hilang yang dapat menyebabkan hilangnya data.

  • hdfs_high_util: Pemanfaatan HDFS tinggi, yang dapat mempengaruhi pekerjaan dan kesehatan cluster.

  • instance_controller_restart: Proses Instance-Controller telah dimulai ulang. Proses ini sangat penting untuk kesehatan cluster.

  • instance_controller_restart_legacy: Proses Instance-Controller telah dimulai ulang. Proses ini sangat penting untuk kesehatan cluster.

  • high_load: Rata-rata Beban Tinggi terdeteksi, dapat memengaruhi pelaporan kesehatan node atau mengakibatkan batas waktu atau perlambatan.

  • yarn_node_blacklisted: CORE atau TASK node telah masuk daftar hitam oleh YARN dari menjalankan tugas.

  • yarn_node_lost: CORE atau TASK node telah ditandai sebagai LOST oleh YARN, kemungkinan masalah konektivitas.

Contoh yang terkait dengan ClusterID yang Anda tentukan harus dikelola oleh AWS Systems Manager. Anda dapat menjalankan otomatisasi ini sekali, menjadwalkan otomatisasi untuk berjalan pada interval waktu tertentu, atau menghapus jadwal yang dibuat sebelumnya oleh otomatisasi. Runbook ini mendukung versi rilis Amazon EMR 5.20 hingga 6.30.

Jalankan Otomasi ini (konsol)

Jenis dokumen

Otomatisasi

Pemilik

Amazon

Platform

Linux,macOS, Windows

Parameter

  • AutomationAssumeRole

    Jenis: String

    Deskripsi: (Opsional) Nama Sumber Daya Amazon (ARN) 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

    Jenis: String

    Deskripsi: (Wajib) ID cluster yang node log Anda ingin menganalisis.

  • Operasi

    Jenis: String

    Nilai yang valid: Jalankan Sekali | Jadwal | Hapus Jadwal

    Deskripsi: (Wajib) Operasi untuk melakukan pada cluster.

  • IntervalTime

    Jenis: String

    Nilai yang valid: 5 menit | 10 menit | 15 menit

    Deskripsi: (Opsional) Durasi waktu antara menjalankan otomatisasi. Parameter ini hanya berlaku jika Anda menentukan Schedule Operation parameter.

  • LogToCloudWatchLog

    Jenis: String

    Nilai yang valid: ya | tidak

    Deskripsi: (Opsional) Jika Anda menentukan yes nilai parameter ini, otomatisasi membuat grup CloudWatch log Log dengan nama yang ditentukan dalam CloudWatchLogGroup parameter untuk menyimpan entri log yang cocok.

  • CloudWatchLogGroup

    Jenis: String

    Deskripsi: (Opsional) Nama grup CloudWatch log Log tempat Anda ingin menyimpan entri log yang cocok. Parameter ini hanya berlaku jika Anda menentukan yes LogToCloudWatchLogs parameter.

  • CreateLogInsightsDashboard

    Jenis: String

    Nilai yang valid: ya | tidak

    Deskripsi: (Opsional) Jika Anda menentukanyes, CloudWatch dasbor dibuat jika belum ada. Parameter ini hanya berlaku jika Anda menentukan yes LogToCloudWatchLogs parameter.

  • CreateMetricFilter

    Jenis: String

    Nilai yang valid: ya | tidak

    Deskripsi: (Opsional) Tentukan yes apakah Anda ingin membuat filter metrik untuk grup CloudWatch log Log. Parameter ini hanya berlaku jika Anda menentukan yes LogToCloudWatchLogs parameter.

Izin IAM yang diperlukan

AutomationAssumeRoleParameter memerlukan tindakan berikut untuk menggunakan runbook dengan sukses.

  • ssm:StartAutomationExecution

  • ssm:GetDocument

  • ssm:ListDocuments

  • ssm:DescribeAutomationExecutions

  • ssm:DescribeAutomationStepExecutions

  • ssm:GetAutomationExecution

  • ssm:DescribeInstanceInformation

  • ssm:ListCommandInvocations

  • ssm:ListCommands

  • ssm:SendCommand

  • iam:CreateRole

  • iam:DeleteRole

  • iam:GetRolePolicy

  • iam:PutRolePolicy

  • iam:DeleteRolePolicy

  • iam:passrole

  • cloudformation:DescribeStacks

  • cloudformation:DeleteStack

  • cloudformation:CreateStack

  • events:DeleteRule

  • events:RemoveTargets

  • events:PutTargets

  • events:PutRule

  • events:DescribeRule

  • logs:DescribeLogGroups

  • logs:CreateLogGroup

  • logs:PutMetricFilter

  • cloudwatch:PutDashboard

  • elasticmapreduce:ListInstances

  • elasticmapreduce:DescribeCluster

Langkah Dokumen

  • aws:executeAwsApi- Mengumpulkan informasi tentang cluster EMR Amazon yang ditentukan dalam ClusterID parameter.

  • aws:branch- Cabang berdasarkan input.

    • Jika operasi yang disediakan adalah Run Once atauSchedule:

      • aws:assertAwsResourceProperty- Memverifikasi cluster tersedia.

      • aws:executeAwsApi- Mengumpulkan ID dari semua instance yang berjalan di cluster.

      • aws:assertAwsResourceProperty- Memverifikasi Agen SSM berjalan pada semua instance di cluster.

      • aws:branch- Cabang berdasarkan apakah Anda menentukan untuk menjalankan otomatisasi sekali atau sesuai jadwal.

        • Jika operasi yang disediakan adalahRun Once:

          • aws:branch- Cabang berdasarkan nilai yang ditentukan dalam LogToCloudWatchLogs parameter.

            • Jika LogToCloudWatchLogs nilainya adalahyes:

              • aws:executeScript- Memeriksa apakah grup CloudWatch log Log dengan nama yang ditentukan dalam parameter CloudWatchLogGroup sudah ada. Jika tidak, grup dibuat dengan nama yang ditentukan.

              • aws:branch- Cabang berdasarkan nilai yang ditentukan dalam CreateMetricFilters parameter.

                • Jika CreateMetricFilters nilainya adalahyes:

                  • aws:executeAwsApi- 12 langkah dijalankan untuk setiap filter metrik

                  • aws:branch- Cabang berdasarkan nilai yang ditentukan dalam CreateLogInsightsDashboard parameter.

                    • Jika CreateLogInsightsDashboard nilainya adalahyes:

                      • aws:executeAwsApi- Membuat CloudWatch dasbor dengan nama yang sama yang ditentukan dalam CloudWatchLogGroup parameter, jika belum ada.

                    • Jika CreateLogInsightsDashboard nilainya adalahno:

                      • aws:runCommand- Menjalankan skrip shell untuk menemukan pola log pada setiap instance di cluster.

                • Jika CreateMetricFilters nilainya adalahno:

                  • aws:branch- Cabang berdasarkan nilai yang ditentukan dalam CreateLogInsightsDashboard parameter.

                    • Jika CreateLogInsightsDashboard nilainya adalahyes:

                      • aws:executeAwsApi- Membuat CloudWatch dasbor dengan nama yang sama yang ditentukan dalam CloudWatchLogGroup parameter, jika belum ada.

                    • Jika CreateLogInsightsDashboard nilainya adalahno:

                      • aws:runCommand- Menjalankan skrip shell untuk menemukan pola log pada setiap instance di cluster.

            • Jika LogToCloudWatchLogs nilainya adalahno:

              • aws:executeAwsApi- Menjalankan skrip shell untuk menemukan pola log pada setiap instance di cluster.

        • Jika operasi yang disediakan adalahSchedule:

          • aws:createStack- Membuat EventBridge acara Amazon yang menargetkan runbook ini.

    • Jika operasi yang disediakan adalahRemove Schedule:

      • aws:executeAwsApi- Memverifikasi jadwal yang ada untuk cluster.

      • aws:deleteStack- Menghapus jadwal.

Keluaran

GetClusterInformasi. ClusterName

GetClusterInformasi. ClusterState

ListingClusterinstances.instanceIds

CreatingScheduleCloudFormationTumpukan. StackStatus

RemovingScheduleByDeletingScheduleCloudFormationStack.StackStatus

CheckIfLogGroupada.Output

FindLogPatternOnEMRNode. CommandId