AWSSupport-AnalyzeEMRLogs - AWS Systems Manager Referenz zum Automatisierungs-Runbook

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWSSupport-AnalyzeEMRLogs

Beschreibung

Dieses Runbook hilft bei der Identifizierung von Fehlern bei der Ausführung eines Jobs auf einem Amazon EMR-Cluster. Das Runbook analysiert eine Liste definierter Protokolle im Dateisystem und sucht nach einer Liste mit vordefinierten Schlüsselwörtern. Diese Protokolleinträge werden verwendet, um Amazon CloudWatch Events-Ereignisse zu erstellen, sodass Sie auf der Grundlage der Ereignisse alle erforderlichen Maßnahmen ergreifen können. Optional veröffentlicht das Runbook Protokolleinträge in der Amazon CloudWatch Logs-Protokollgruppe Ihrer Wahl. Dieses Runbook sucht derzeit in Protokolldateien nach den folgenden Fehlern und Mustern:

  • container_out_of_memory — Der YARN-Container hat nicht mehr genügend Speicher, die Ausführung des Jobs kann fehlschlagen.

  • yarn_nodemanager_health: Der CORE- oder TASK-Knoten hat nur noch wenig Speicherplatz zur Verfügung und er kann keine Aufgaben ausführen.

  • node_state_change: Der CORE- oder TASK-Knoten ist vom MASTER-Knoten nicht erreichbar.

  • step_failure: Ein EMR-Schritt ist fehlgeschlagen.

  • no_core_nodes_running: Derzeit laufen keine CORE-Knoten, der Cluster ist fehlerhaft.

  • hdfs_missing_blocks: Es fehlen HDFS-Blöcke, was zu Datenverlust führen könnte.

  • hdfs_high_util: Die HDFS-Auslastung ist hoch, was sich auf Jobs und die Clusterintegrität auswirken kann.

  • instance_controller_restart: Der Instance-Controller-Prozess wurde neu gestartet. Dieser Prozess ist für die Clusterintegrität unerlässlich.

  • instance_controller_restart_legacy: Der Instance-Controller-Prozess wurde neu gestartet. Dieser Prozess ist für die Clusterintegrität unerlässlich.

  • high_load: Es wurde ein hoher Lastdurchschnitt erkannt. Dies kann sich auf die Berichterstattung über den Knotenstatus auswirken oder zu Timeouts oder Verlangsamungen führen.

  • yarn_node_blacklisted: Der CORE- oder TASK-Knoten wurde von YARN für die Ausführung von Aufgaben gesperrt.

  • yarn_node_lost: Der CORE- oder TASK-Knoten wurde von YARN als LOST markiert, mögliche Verbindungsprobleme.

Instanzen, die mit dem von Ihnen angegebenen verknüpft sindClusterID, müssen von verwaltet werden. AWS Systems Manager Sie können diese Automatisierung einmal ausführen, die Automatisierung so planen, dass sie in einem bestimmten Zeitintervall ausgeführt wird, oder einen zuvor durch eine Automatisierung erstellten Zeitplan entfernen. Dieses Runbook unterstützt die Amazon EMR-Release-Versionen 5.20 bis 6.30.

Führen Sie diese Automatisierung aus (Konsole)

Art des Dokuments

Automatisierung

Eigentümer

Amazon

Plattformen

LinuxmacOS, Windows

Parameter

  • AutomationAssumeRole

    Typ: Zeichenfolge

    Beschreibung: (Optional) Der Amazon-Ressourcenname (ARN) der AWS Identity and Access Management (IAM) -Rolle, mit der Systems Manager Automation die Aktionen in Ihrem Namen ausführen kann. Wenn keine Rolle angegeben ist, verwendet Systems Manager Automation die Berechtigungen des Benutzers, der dieses Runbook startet.

  • ClusterID

    Typ: Zeichenfolge

    Beschreibung: (Erforderlich) Die ID des Clusters, dessen Knotenprotokolle Sie analysieren möchten.

  • Operation

    Typ: Zeichenfolge

    Gültige Werte: Einmal ausführen | Zeitplan | Zeitplan entfernen

    Beschreibung: (Erforderlich) Der Vorgang, der auf dem Cluster ausgeführt werden soll.

  • IntervalTime

    Typ: Zeichenfolge

    Gültige Werte: 5 Minuten | 10 Minuten | 15 Minuten

    Beschreibung: (Optional) Die Zeitspanne zwischen der Ausführung der Automatisierung. Dieser Parameter ist nur anwendbar, wenn Sie ihn Schedule für den Operation Parameter angeben.

  • LogToCloudWatchLogs

    Typ: Zeichenfolge

    Gültige Werte: ja | nein

    Beschreibung: (Optional) Wenn Sie yes für den Wert dieses Parameters einen Wert angeben, erstellt die Automatisierung eine CloudWatch Logs-Protokollgruppe mit dem im CloudWatchLogGroup Parameter angegebenen Namen, in der alle übereinstimmenden Protokolleinträge gespeichert werden.

  • CloudWatchLogGroup

    Typ: Zeichenfolge

    Beschreibung: (Optional) Der Name der CloudWatch Logs-Log-Gruppe, in der Sie alle passenden Logeinträge speichern möchten. Dieser Parameter ist nur anwendbar, wenn Sie ihn yes für den LogToCloudWatchLogs Parameter angeben.

  • CreateLogInsightsDashboard

    Typ: Zeichenfolge

    Gültige Werte: ja | nein

    Beschreibung: (Optional) Wenn Sie dies angebenyes, wird das CloudWatch Dashboard erstellt, sofern es noch nicht vorhanden ist. Dieser Parameter ist nur anwendbar, wenn Sie ihn yes für den LogToCloudWatchLogs Parameter angeben.

  • CreateMetricFiltert

    Typ: Zeichenfolge

    Gültige Werte: ja | nein

    Beschreibung: (Optional) Geben Sie an, yes ob Sie Metrikfilter für die Protokollgruppe CloudWatch Logs erstellen möchten. Dieser Parameter ist nur anwendbar, wenn Sie ihn yes für den LogToCloudWatchLogs Parameter angeben.

Erforderliche IAM-Berechtigungen

Der AutomationAssumeRole Parameter erfordert die folgenden Aktionen, um das Runbook erfolgreich zu verwenden.

  • 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

Dokumentschritte

  • aws:executeAwsApi- Sammelt Informationen über den im Parameter angegebenen Amazon EMR-Cluster. ClusterID

  • aws:branch— Verzweigungen auf der Grundlage von Eingaben.

    • Wenn die angegebene Operation Run Once oder istSchedule:

      • aws:assertAwsResourceProperty- Überprüft, ob der Cluster verfügbar ist.

      • aws:executeAwsApi- Sammelt die IDs aller Instanzen, die im Cluster ausgeführt werden.

      • aws:assertAwsResourceProperty- Überprüft, ob der SSM-Agent auf allen Instanzen im Cluster ausgeführt wird.

      • aws:branch- Verzweigt je nachdem, ob Sie angegeben haben, dass die Automatisierung einmal oder nach einem Zeitplan ausgeführt werden soll.

        • Wenn der bereitgestellte Vorgang wie folgt lautetRun Once:

          • aws:branch- Verzweigt auf der Grundlage des im LogToCloudWatchLogs Parameter angegebenen Werts.

            • Wenn LogToCloudWatchLogs der Wert istyes:

              • aws:executeScript- Prüft, ob eine CloudWatch Logs-Log-Gruppe mit dem im Parameter angegebenen Namen CloudWatchLogGroup bereits existiert. Wenn nicht, wird die Gruppe mit dem angegebenen Namen erstellt.

              • aws:branch- Verzweigt auf der Grundlage des im CreateMetricFilters Parameter angegebenen Werts.

                • Wenn CreateMetricFilters der Wert istyes:

                  • aws:executeAwsApi- Für jeden metrischen Filter werden 12 Schritte ausgeführt

                  • aws:branch- Verzweigungen, die auf dem im CreateLogInsightsDashboard Parameter angegebenen Wert basieren.

                    • Wenn CreateLogInsightsDashboard der Wert istyes:

                      • aws:executeAwsApi- Erstellt ein CloudWatch Dashboard mit demselben Namen, der im CloudWatchLogGroup Parameter angegeben ist, falls es noch nicht existiert.

                    • Wenn CreateLogInsightsDashboard der Wert istno:

                      • aws:runCommand- Führt ein Shell-Skript aus, um Protokollmuster auf jeder Instanz im Cluster zu finden.

                • Wenn CreateMetricFilters der Wert istno:

                  • aws:branch- Verzweigt auf der Grundlage des im CreateLogInsightsDashboard Parameter angegebenen Werts.

                    • Wenn CreateLogInsightsDashboard der Wert istyes:

                      • aws:executeAwsApi- Erstellt ein CloudWatch Dashboard mit demselben Namen, der im CloudWatchLogGroup Parameter angegeben ist, falls es noch nicht existiert.

                    • Wenn CreateLogInsightsDashboard der Wert istno:

                      • aws:runCommand- Führt ein Shell-Skript aus, um Protokollmuster auf jeder Instanz im Cluster zu finden.

            • Wenn LogToCloudWatchLogs der Wert istno:

              • aws:executeAwsApi- Führt ein Shell-Skript aus, um Protokollmuster auf jeder Instanz im Cluster zu finden.

        • Wenn die bereitgestellte Operation wie folgt lautetSchedule:

          • aws:createStack— Erstellt ein EventBridge Amazon-Ereignis, das auf dieses Runbook abzielt.

    • Wenn die angegebene Operation wie folgt lautetRemove Schedule:

      • aws:executeAwsApi- Überprüft, ob ein Zeitplan für den Cluster existiert.

      • aws:deleteStack- Löscht den Zeitplan.

Ausgaben

GetClusterInformationen. ClusterName

GetClusterInformationen. ClusterState

ListingClusterinstanzen.instanceIds

CreatingScheduleCloudFormationStapel. StackStatus

RemovingScheduleByDeletingScheduleCloudFormationStack.StackStatus

CheckIfLogGroupExistiert.Ausgabe

FindLogPatternOnEMR-Knoten. CommandId