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

Beschreibung

Das AWSSupport-DiagnoseEMRLogsWithAthena Runbook hilft bei der Diagnose von Amazon EMR-Protokollen mithilfe von Amazon Athena in Integration mit AWS Glue Data Catalog. Amazon Athena wird verwendet, um die Amazon EMR-Protokolldateien nach Containern, Knotenprotokollen oder beidem abzufragen, mit optionalen Parametern für bestimmte Datumsbereiche oder schlüsselwortbasierte Suchen.

Das Runbook kann automatisch den Amazon EMR-Protokollspeicherort für einen vorhandenen Cluster abrufen, oder Sie können den Amazon S3 S3-Protokollspeicherort angeben. Um die Protokolle zu analysieren, geht das Runbook wie folgt vor:

  • Erstellt eine AWS Glue Datenbank und führt Amazon Athena Data Definition Language (DDL) -Abfragen am Amazon S3-Protokollspeicherort von Amazon EMR aus, um Tabellen für Cluster-Protokolle und eine Liste bekannter Probleme zu erstellen.

  • Führt DML-Abfragen (Data Manipulation Language) aus, um in den Amazon EMR-Protokollen nach bekannten Problemmustern zu suchen. Die Abfragen geben eine Liste der erkannten Probleme, deren Anzahl und die Anzahl der übereinstimmenden Keywords pro Amazon S3 S3-Dateipfad zurück.

  • Die Ergebnisse werden in einen Amazon S3 S3-Bucket hochgeladen, den Sie unter dem Präfix angebensaw_diagnose_EMR_known_issues.

  • Das Runbook gibt die Amazon Athena Athena-Abfrageergebnisse zurück und hebt Ergebnisse, Empfehlungen und Verweise auf Artikel aus dem Amazon Knowledge Center (KC) hervor, die aus einer vordefinierten Untergruppe stammen.

  • Nach Abschluss oder Fehlschlag werden die AWS Glue Datenbank und die Dateien mit bekannten Problemen, die in den Amazon S3 S3-Bucket hochgeladen wurden, gelöscht.

Wie funktioniert das?

AWSSupport-DiagnoseEMRLogsWithAthenaSie führen mithilfe von Amazon Athena Analysen von Amazon EMR-Protokollen durch, um Fehler zu erkennen und Ergebnisse, Empfehlungen und relevante Knowledge Center-Artikel hervorzuheben.

Das Runbook führt die folgenden Schritte aus:

  • Rufen Sie den Amazon EMR-Cluster-Protokollstandort mithilfe der Cluster-ID ab oder geben Sie den Amazon S3 S3-Standort ein, um den Speicherort und die Größe des Protokolls abzurufen.

  • Geben Sie eine Schätzung der Athena-Kosten auf der Grundlage der Größe des Protokollstandorts an.

  • Holen Sie sich die Genehmigung zum Fortfahren, indem Sie die Genehmigung von den zuständigen IAM-Prinzipalen einholen, bevor Sie Athena-Abfragen ausführen und mit den nächsten Schritten fortfahren.

  • Laden Sie bekannte Probleme in den angegebenen Amazon S3 S3-Bucket hoch, erstellt eine AWS Glue Datenbank und Tabellen.

  • Führen Sie Athena-Abfragen an den Amazon EMR-Protokolldaten aus. Abfragen können nach Datumsbereich, Schlüsselwörtern oder beiden Kriterien suchen oder auf der Grundlage der bereitgestellten Eingaben ohne Filter ausgeführt werden.

  • Analysieren Sie die Ergebnisse, um Ergebnisse, Empfehlungen und relevante KC-Artikel hervorzuheben.

  • Ausgabelinks für Amazon Athena DML-Abfrageergebnisse.

  • Bereinigen Sie die Umgebung, indem Sie erstellte Datenbanken, Tabellen und hochgeladene bekannte Probleme entfernen.

Art des Dokuments

Automatisierung

Eigentümer

Amazon

Plattformen

/

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

  • Athene: GetQueryExecution

  • Athene: StartQueryExecution

  • Athene: GetPreparedStatement

  • Athene: CreatePreparedStatement

  • kleben: GetDatabase

  • kleben: CreateDatabase

  • kleben: DeleteDatabase

  • kleben: CreateTable

  • kleben: GetTable

  • kleben: DeleteTable

  • elastisches MapReduce: DescribeCluster

  • s3: ListBucket

  • s3: GetBucketVersioning

  • s3: ListBucketVersions

  • s3: GetBucketPublicAccessBlock

  • s3: GetBucketPolicyStatus

  • s3: GetObject

  • s3: GetBucketLocation

  • Preisgestaltung: GetProducts

  • Preisgestaltung: GetAttributeValues

  • Preisgestaltung: DescribeServices

  • Preisgestaltung: ListPriceLists

Wichtig

Um den Zugriff nur auf die Ressourcen zu beschränken, die für diese Automatisierung benötigt werden, fügen Sie der IAM-Rolle, die dem SSM-Dienst vertraut, die folgende Richtlinie hinzu. Ersetzen Sie Partition, Region und Konto durch die entsprechenden Werte für die Partition, Region und Kontonummer, auf der das Runbook ausgeführt wird.

{ "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" ] } ] }

Anweisungen

Gehen Sie wie folgt vor, um die Automatisierung zu konfigurieren:

  1. Navigieren Sie AWSSupport-DiagnoseEMRLogsWithAthenaim AWS Systems Manager Bereich Dokumente.

  2. Wählen Sie Execute automation (Automatisierung ausführen).

  3. Geben Sie für die Eingabeparameter Folgendes ein:

    • AutomationAssumeRole (Fakultativ):

      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 (erforderlich):

      Die Amazon EMR-Cluster-ID.

    • S3 LogLocation (optional):

      Der Amazon S3 S3-Speicherort für Amazon EMR-Protokolle. Geben Sie die URL des Amazon S3 S3-Speicherorts im Path-Stil ein, zum Beispiel:. s3://amzn-s3-demo-bucket/myfolder/j-1K48XXXXXXHCB/ Geben Sie diesen Parameter an, wenn der Amazon EMR-Cluster für mehr als 30 Tage beendet wurde.

    • S3 BucketName (erforderlich):

      Der Amazon S3 S3-Bucket-Name zum Hochladen einer Liste bekannter Probleme und der Ausgabe von Amazon Athena Athena-Abfragen. Für den Bucket sollte Block Public Access aktiviert sein und sich in derselben AWS Region und demselben Konto wie der Amazon EMR-Cluster befinden.

    • Genehmiger (erforderlich):

      Die Liste der AWS authentifizierten Principals, die die Aktion entweder genehmigen oder ablehnen können. Sie können Prinzipale angeben, indem Sie eines der folgenden Formate verwenden: Benutzername, Benutzer-ARN, IAM-Rollen-ARN oder IAM Assume Role ARN. Die maximale Anzahl an Genehmigern ist 10.

    • FetchNodeLogsOnly (Optional):

      Wenn auf gesetzttrue, diagnostiziert die Automatisierung die Protokolle des Amazon EMR-Anwendungscontainers. Der Standardwert ist false.

    • FetchContainersLogsOnly(Fakultativ):

      Wenn auf gesetzttrue, diagnostiziert die Automatisierung die Amazon EMR-Container-Protokolle. Der Standardwert ist false.

    • EndSearchDate (Fakultativ):

      Das Enddatum für Protokollsuchen. Falls angegeben, sucht die Automatisierung ausschließlich nach Protokollen, die bis zum angegebenen Datum im Format generiert wurden YYYY-MM-DD (zum Beispiel:2024-12-30).

    • DaysToCheck (Fakultativ):

      Wenn angegeben, EndSearchDate ist dieser Parameter erforderlich, um die Anzahl der Tage zu bestimmen, für die rückwirkend nach Protokollen aus den angegebenen Daten gesucht werden soll. EndSearchDate Der Höchstwert beträgt 30 Tage. Der Standardwert ist 1.

    • SearchKeywords (Fakultativ):

      Die Liste der Schlüsselwörter, nach denen in den Protokollen gesucht werden soll, getrennt durch Kommas. Die Schlüsselwörter dürfen keine einfachen oder doppelten Anführungszeichen enthalten.

    Input parameters form for AWS Systems Manager Automation with various fields and options.
  4. Wählen Sie Ausführen aus.

  5. Die Automatisierung wird eingeleitet.

  6. Das Dokument führt die folgenden Schritte aus:

    • getLogLocation:

      Ruft den Amazon S3 S3-Protokollspeicherort ab, indem die angegebene Amazon EMR-Cluster-ID abgefragt wird. Wenn die Automatisierung den Protokollspeicherort nicht anhand der Amazon EMR-Cluster-ID abfragen kann, verwendet das Runbook den S3LogLocation Eingabeparameter.

    • branchOnValidProtokoll:

      Überprüft den Speicherort der Amazon EMR-Protokolle. Wenn der Standort gültig ist, fahren Sie mit der Schätzung der potenziellen Kosten von Amazon Athena bei der Ausführung von Abfragen in den Amazon EMR-Protokollen fort.

    • estimateAthenaCosts:

      Ermittelt die Größe der Amazon EMR-Protokolle und bietet eine Kostenschätzung für die Ausführung von Athena-Scans für den Protokolldatensatz. Für nicht kommerzielle Regionen (keine AWS Partitionen) wird in diesem Schritt lediglich die Protokollgröße angegeben, ohne die Kosten zu schätzen. Die Kosten können anhand der Athena-Preisdokumentation in der angegebenen Region berechnet werden.

    • Automatisierung genehmigen:

      Wartet auf die Genehmigung durch die designierten IAM-Prinzipale, um mit den nächsten Schritten der Automatisierung fortzufahren. Die Genehmigungsbenachrichtigung enthält die geschätzten Kosten für den Amazon Athena Athena-Scan in den Amazon EMR-Protokollen sowie Einzelheiten zu den Ressourcen, die durch die Automatisierung bereitgestellt werden.

    • uploadKnownIssuesExecuteAthenaQueries:

      Lädt die vordefinierten bekannten Probleme in den im S3BucketName Parameter angegebenen Amazon S3 S3-Bucket hoch. Erstellt eine AWS Glue Datenbank und Tabellen. Führt Amazon Athena Athena-Abfragen in der AWS Glue Datenbank auf der Grundlage der Eingabeparameter aus.

    • getQueryExecutionStatus:

      Wartet, bis die Ausführung der Amazon Athena Athena-Abfrage im SUCCEEDED Status ist. Die Amazon Athena DML-Abfrage sucht nach Fehlern und Ausnahmen in Amazon EMR-Clusterprotokollen.

    • analyzeAthenaResults:

      Analysiert die Amazon Athena Athena-Ergebnisse, um Ergebnisse, Empfehlungen und Knowledge Center-Artikel (KC) bereitzustellen, die aus einem vordefinierten Satz von Zuordnungen stammen.

    • getAnalyzeResultsAbfrage 1: ExecutionStatus

      Wartet, bis die Abfrageausführung im Status ist. SUCCEEDED Die Amazon Athena DML-Abfrage analysiert die Ergebnisse der vorherigen DML-Abfrage. Diese Analyseabfrage gibt übereinstimmende Ausnahmen mit Lösungen und KC-Artikeln zurück

    • getAnalyzeResultsAbfrage 2ExecutionStatus:

      Wartet, bis die Abfrageausführung im Status ist. SUCCEEDED Die Amazon Athena DML-Abfrage analysiert die Ergebnisse der vorherigen DML-Abfrage. Diese Analyseabfrage gibt eine Liste der Ausnahmen/Fehler zurück, die in jedem Amazon S3 S3-Protokollpfad erkannt wurden.

    • printAthenaQueriesNachricht:

      Druckt Links für die Ergebnisse der Amazon Athena DML-Abfragen.

    • Ressourcen bereinigen:

      Bereinigt Ressourcen, indem die erstellte AWS Glue Datenbank und Dateien mit bekannten Problemen gelöscht werden, die im Amazon EMR-Protokoll-Bucket erstellt wurden.

  7. Wenn der Vorgang abgeschlossen ist, finden Sie im Abschnitt „Ausgaben“ die detaillierten Ergebnisse der Ausführung:

    Output bietet drei Links für Athena-Abfrageergebnisse:

    • Liste aller Fehler und häufig aufgetretenen Ausnahmen, die in den Amazon EMR-Clusterprotokollen gefunden wurden, zusammen mit den entsprechenden Protokollspeicherorten (Amazon S3 S3-Präfix).

    • Zusammenfassung der eindeutigen bekannten Ausnahmen, die in den Amazon EMR-Protokollen gefunden wurden, zusammen mit empfohlenen Lösungen und KC-Artikeln zur Unterstützung bei der Fehlerbehebung.

    • Details darüber, wo bestimmte Fehler und Ausnahmen in den Amazon S3 S3-Protokollpfaden auftreten, um weitere Diagnosen zu unterstützen.

    Output section showing query links for exception summaries and analysis in AWS logs.

Referenzen

Systems Manager Automation

AWS Servicedokumentation