Musteranalyse - CloudWatch Amazon-Protokolle

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.

Musteranalyse

CloudWatch Logs Insights verwendet Algorithmen für maschinelles Lernen, um Muster zu finden, wenn Sie Ihre Logs abfragen. Ein Muster ist eine gemeinsame Textstruktur, die sich in Ihren Protokollfeldern wiederholt. Wenn Sie sich die Ergebnisse einer Abfrage ansehen, können Sie die Registerkarte Muster wählen, um sich die Muster anzusehen, die CloudWatch Logs anhand einer Stichprobe Ihrer Ergebnisse gefunden hat. Alternativ können Sie den pattern Befehl an Ihre Abfrage anhängen, um die Muster im gesamten Satz übereinstimmender Protokollereignisse zu analysieren.

Muster sind nützlich für die Analyse großer Protokollsätze, da eine große Anzahl von Protokollereignissen häufig zu wenigen Mustern komprimiert werden kann.

Betrachten Sie das folgende Beispiel mit drei Protokollereignissen.

2023-01-01 19:00:01 [INFO] Calling DynamoDB to store for resource id 12342342k124-12345 2023-01-01 19:00:02 [INFO] Calling DynamoDB to store for resource id 324892398123-12345 2023-01-01 19:00:03 [INFO] Calling DynamoDB to store for resource id 3ff231242342-12345

Im vorherigen Beispiel folgen alle drei Protokollereignisse einem Muster:

<*> <*> [INFO] Calling DynamoDB to store for resource id <*>

Felder innerhalb eines Musters werden als Token bezeichnet. Felder, die innerhalb eines Musters variieren, z. B. eine Anforderungs-ID oder ein Zeitstempel, sind dynamische Token. Jedes dynamische Token wird dadurch dargestellt, dass es <*> in CloudWatch Logs angezeigt wird.

Zu den häufigsten Beispielen für dynamische Token gehören Fehlercodes, Zeitstempel und Anforderungs-IDs. Ein Tokenwert steht für einen bestimmten Wert eines dynamischen Tokens. Wenn ein dynamisches Token beispielsweise einen HTTP-Fehlercode darstellt, könnte dies ein Tokenwert sein501.

Die Mustererkennung wird auch im CloudWatch Logs-Anomaliedetektor und in den Vergleichsfunktionen verwendet. Weitere Informationen finden Sie unter Erkennung von Protokollanomalien und Vergleiche (Diff) mit früheren Zeitbereichen.

Erste Schritte mit der Musteranalyse

Die Mustererkennung wird automatisch in jeder CloudWatch Logs Insights-Abfrage durchgeführt. Bei Abfragen, die den pattern Befehl nicht enthalten, werden sowohl Ereignisse als auch Muster in den Ergebnissen protokolliert.

Wenn Sie den pattern Befehl in Ihre Abfrage aufnehmen, wird die Musteranalyse für den gesamten Satz übereinstimmender Protokollereignisse durchgeführt. Dadurch erhalten Sie genauere Musterergebnisse, aber die unverarbeiteten Protokollereignisse werden nicht zurückgegeben, wenn Sie den pattern Befehl verwenden. Wenn eine Abfrage keine Daten enthältpattern, basieren die Musterergebnisse entweder auf den ersten 1000 zurückgegebenen Protokollereignissen oder auf dem Grenzwert, den Sie in Ihrer Abfrage verwendet haben. Wenn Sie pattern in die Abfrage einbeziehen, werden die auf der Registerkarte Muster angezeigten Ergebnisse aus allen Protokollereignissen abgeleitet, denen die Abfrage entspricht.

Um mit der Musteranalyse in CloudWatch Logs Insights zu beginnen
  1. Öffnen Sie die CloudWatch Konsole unter https://console.aws.amazon.com/cloudwatch/.

  2. Wählen Sie im Navigationsbereich Logs, Logs Insights aus.

    Auf der Logs-Insights-Seite enthält der Abfrage-Editor eine Standardabfrage, die die 20 letzten Protokollereignisse zurückgibt.

  3. Entfernen Sie die | limit 20 Zeile im Abfragefeld, sodass die Abfrage wie folgt aussieht:

    fields @timestamp, @message, @logStream, @log | sort @timestamp desc
  4. Wählen Sie in der Dropdownliste Protokollgruppe (n) auswählen eine oder mehrere Protokollgruppen für die Abfrage aus.

  5. (Optional) Verwenden Sie die Zeitintervallauswahl, um einen Zeitraum auszuwählen, den Sie abfragen möchten.

    Sie können zwischen Intervallen von 5 Minuten und 30 Minuten, Intervallen von 1 Stunde, 3 Stunden und 12 Stunden oder einem benutzerdefinierten Zeitrahmen wählen.

  6. Wählen Sie Abfrage ausführen, um die Abfrage zu starten.

    Wenn die Ausführung der Abfrage abgeschlossen ist, wird auf der Registerkarte Protokolle eine Tabelle mit den von der Abfrage zurückgegebenen Protokollereignissen angezeigt. Über der Tabelle befindet sich eine Meldung darüber, wie viele Datensätze der Abfrage entsprachen, ähnlich der Meldung 1000 von 71.101 übereinstimmenden Datensätzen anzeigen.

  7. Wählen Sie die Registerkarte Muster.

  8. In der Tabelle werden jetzt die in der Abfrage gefundenen Muster angezeigt. Da die Abfrage den pattern Befehl nicht enthielt, werden auf dieser Registerkarte nur die Muster angezeigt, die unter den 1000 Protokollereignissen entdeckt wurden, die in der Tabelle auf der Registerkarte Protokolle angezeigt wurden.

    Für jedes Muster werden die folgenden Informationen angezeigt:

    • Das Muster, wobei jedes dynamische Token als angezeigt wird<*>.

    • Die Anzahl der Ereignisse, d. h. die Häufigkeit, mit der das Muster in den abgefragten Protokollereignissen auftauchte. Wählen Sie die Spaltenüberschrift „Anzahl der Ereignisse“, um die Muster nach Häufigkeit zu sortieren.

    • Die Ereignisquote, d. h. der Prozentsatz der abgefragten Protokollereignisse, die dieses Muster enthalten.

    • Der Schweregradtyp, der einer der folgenden sein wird:

      • FEHLER, wenn das Muster das Wort Error enthält.

      • WARN, wenn das Muster das Wort Warn, aber nicht das Wort Error enthält.

      • INFO, wenn das Muster weder Warn noch Error enthält.

      Wählen Sie die Spaltenüberschrift Schweregrad aus, um die Muster nach Schweregrad zu sortieren.

  9. Ändern Sie jetzt die Abfrage. Ersetzen Sie die | sort @timestamp desc Zeile in der Abfrage durch| pattern @message, sodass die vollständige Abfrage wie folgt lautet:

    fields @timestamp, @message, @logStream, @log | pattern @message
  10. Wählen Sie Abfrage ausführen.

    Wenn die Abfrage abgeschlossen ist, werden auf der Registerkarte Protokolle keine Ergebnisse angezeigt. Auf der Registerkarte Muster ist jedoch wahrscheinlich eine größere Anzahl von Mustern aufgeführt, je nachdem, wie viele Protokollereignisse insgesamt abgefragt wurden.

  11. Unabhängig davon, ob Sie sie pattern in Ihre Abfrage aufgenommen haben, können Sie die Muster, die die Abfrage zurückgibt, genauer untersuchen. Wählen Sie dazu das Symbol in der Spalte Inspizieren für eines der Muster aus.

    Das Fenster „Muster prüfen“ wird geöffnet und enthält Folgendes:

    • Das Muster. Wählen Sie ein Token innerhalb des Musters aus, um die Werte dieses Tokens zu analysieren.

    • Ein Histogramm, das die Anzahl der Vorkommen des Musters im abgefragten Zeitraum zeigt. Dies kann Ihnen helfen, interessante Trends zu identifizieren, z. B. eine plötzliche Zunahme des Auftretens eines Musters.

    • Auf der Registerkarte Protokollbeispiele werden einige der Protokollereignisse angezeigt, die dem ausgewählten Muster entsprechen.

    • Auf der Registerkarte Token-Werte werden die Werte des ausgewählten dynamischen Tokens angezeigt, sofern Sie eines ausgewählt haben.

      Anmerkung

      Für jedes Token werden maximal 10 Token-Werte erfasst. Die Token-Anzahl ist möglicherweise nicht genau. CloudWatch Logs verwendet einen probabilistischen Zähler, um die Tokenanzahl zu generieren, nicht den absoluten Wert.

    • Auf der Registerkarte Verwandte Muster werden andere Muster angezeigt, die häufig fast zur gleichen Zeit wie das Muster aufgetreten sind, das Sie untersuchen. Wenn beispielsweise ein Muster für eine ERROR Nachricht normalerweise von einem anderen Protokollereignis begleitet wurde, das als INFO mit zusätzlichen Details gekennzeichnet war, wird dieses Muster hier angezeigt.

Details zum Pattern-Befehl

Dieser Abschnitt enthält weitere Informationen über den pattern Befehl und seine Verwendung.

  • Im vorherigen Tutorial haben wir den sort Befehl entfernt, als wir ihn hinzugefügt habenpattern, weil eine Abfrage nicht gültig ist, wenn sie einen pattern Befehl nach einem sort Befehl enthält. Es ist gültig, ein pattern vor einem zu habensort.

    Weitere Informationen zur pattern Syntax finden Sie unterpattern.

  • Wenn Sie pattern in einer Abfrage verwenden, @message muss eines der Felder im pattern Befehl ausgewählt sein.

  • Sie können den filter Befehl vor einem pattern Befehl einfügen, damit nur der gefilterte Satz von Protokollereignissen als Eingabe für die Musteranalyse verwendet wird.

  • Um Musterergebnisse für ein bestimmtes Feld anzuzeigen, z. B. ein aus dem parse Befehl abgeleitetes Feld, verwenden Siepattern @fieldname.

  • Abfragen, bei denen es sich nicht um eine Protokollausgabe handelt, wie z. B. Abfragen mit dem stats Befehl, geben keine Musterergebnisse zurück.