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 EMR Amazon-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: CORE oder der TASK Knoten hat wenig Speicherplatz und kann keine Aufgaben ausführen.

  • node_state_change: oder der Knoten ist für den Knoten nicht erreichbar. CORE TASK MASTER

  • step_failure: Ein Schritt ist fehlgeschlagen. EMR

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

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

  • hdfs_high_util: HDFS Die Auslastung ist hoch, was sich auf Jobs und den Zustand des Clusters 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: CORE oder der Knoten wurde von laufenden Aufgaben auf die schwarze Liste gesetzt. TASK YARN

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

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 EMR Amazon-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 Rolle AWS Identity and Access Management (IAM), der es Systems Manager Automation ermöglicht, die Aktionen in Ihrem Namen durchzuführen. 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.

  • CreateMetricFilters

    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 EMR Amazon-Cluster, der im ClusterID Parameter angegeben ist.

  • aws:branch- Verzweigt 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 alle Instanzen, IDs die im Cluster ausgeführt werden.

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

      • aws:branch— Verzweigt je nachdem, ob Sie angegeben haben, dass die Automatisierung einmalig 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

GetClusterInformation.ClusterName

GetClusterInformation.ClusterState

ListingClusterInstancesIch. nstanceIDs

CreatingScheduleCloudFormationStack.StackStatus

RemovingScheduleByDeletingScheduleCloudFormationStack.StackStatus

CheckIfLogGroupExists. Ausgabe

FindLogPatternOnEMRNode.CommandId