View a markdown version of this page

AWSSupport-AnalyzeEMRLogs - AWS Systems Manager Referensi Runbook Otomasi

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 cluster Amazon EMR. Runbook menganalisis daftar log yang ditentukan pada sistem file dan mencari daftar kata kunci yang telah ditentukan sebelumnya. Entri log ini digunakan untuk membuat CloudWatch acara Amazon Events sehingga Anda dapat mengambil tindakan yang diperlukan berdasarkan peristiwa tersebut. Secara opsional, runbook menerbitkan entri log ke grup CloudWatch log Amazon Logs pilihan Anda. Runbook ini saat ini mencari kesalahan dan pola berikut dalam file log:

  • container_out_of_memory — Kontainer YARN kehabisan memori, menjalankan pekerjaan mungkin gagal.

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

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

  • step_failure: Langkah EMR 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 memengaruhi pekerjaan dan kesehatan cluster.

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

  • instance_controller_restart_legacy: proses telah dimulai ulang. Instance-Controller 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_blacklists: Node CORE atau TASK telah masuk daftar hitam oleh YARN dari tugas yang sedang berjalan.

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

Instans 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 rilis Amazon EMR versi 5.20 hingga 6.30.

Jalankan Otomatisasi ini (konsol)

Jenis dokumen

Otomatisasi

Pemilik

Amazon

Platform

Linux,macOS, Windows

Parameter

  • AutomationAssumeRole

    Tipe: String

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

  • ID Cluster

    Tipe: String

    Deskripsi: (Diperlukan) ID cluster yang log nodenya ingin Anda analisis.

  • Operasi

    Tipe: String

    Nilai yang valid: Jalankan Sekali | Jadwal | Hapus Jadwal

    Deskripsi: (Diperlukan) Operasi untuk melakukan pada cluster.

  • IntervalTime

    Tipe: 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 untuk Operation parameter.

  • LogToCloudWatchLogs

    Tipe: String

    Nilai yang valid: ya | tidak

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

  • CloudWatchLogGroup

    Tipe: String

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

  • CreateLogInsightsDashboard

    Tipe: 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 untuk LogToCloudWatchLogs parameter.

  • CreateMetricFilters

    Tipe: String

    Nilai yang valid: ya | tidak

    Deskripsi: (Opsional) yes Tentukan apakah Anda ingin membuat filter metrik untuk grup CloudWatch log log. Parameter ini hanya berlaku jika Anda menentukan yes untuk 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-langkah Dokumen

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

  • aws:branch- Cabang berdasarkan masukan.

    • 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 CloudWatch apakah grup 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

GetClusterInformation.ClusterName

GetClusterInformation.ClusterState

ListingClusterInstances.InstanceIDs

CreatingScheduleCloudFormationStack.StackStatus

RemovingScheduleByDeletingScheduleCloudFormationStack.StackStatus

CheckIfLogGroupExists.output

FindLogPatternOnEMRNode.CommandId