Überwachen Sie die Anwendungsaktivität mithilfe von CloudWatch Logs Insights - AWS Prescriptive Guidance

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.

Überwachen Sie die Anwendungsaktivität mithilfe von CloudWatch Logs Insights

Ram Kandaswamy, Amazon Web Services

Zusammenfassung

Dieses Muster bietet eine Lösung für die automatische Erkennung und Warnung bei Anwendungsausnahmen mithilfe von Amazon CloudWatch Logs Insights. Durch die Implementierung automatisierter Protokollanalysen und Warnmeldungen können Sie Anwendungsprobleme in Ihrer Produktionsumgebung schnell erkennen und darauf reagieren.

Protokolle spielen eine entscheidende Rolle bei der Überwachung des Systemverhaltens, der Identifizierung von Problemen und der Sicherstellung einer optimalen Leistung. Während eines Migrationsprozesses sind Protokolldateien von unschätzbarem Wert, wenn es darum geht, die Funktionsfähigkeit des Systems in der neuen Umgebung zu überprüfen, Kompatibilitätsprobleme zu erkennen und unerwartetes Verhalten zu identifizieren. Probleme können betriebs- oder sicherheitsbedingt sein. Bei sicherheitsrelevanten Problemen ist es wichtig, die frühzeitige Erkennung von unbefugten Zugriffsversuchen oder verdächtigen Aktivitäten zu ermöglichen, um die Sicherheit und die Einhaltung gesetzlicher Vorschriften zu gewährleisten. Diese Fähigkeit ist besonders wichtig, wenn es um sensible Daten oder kritische Systeme geht.

Dieses Muster ist besonders nützlich für Teams, die Folgendes tun müssen:

  • Sorgen Sie für eine hohe Anwendungsverfügbarkeit.

  • Reagieren Sie schnell auf Produktionsprobleme.

  • Analysieren Sie anwendungsspezifische Fehler, die nicht in Protokollen erfasst AWS-Service wurden.

  • Führen Sie Protokollanalysen auf Abruf ohne vorgefertigte Infrastruktur durch.

CloudWatch Logs Insights eignet sich optimal für die Analyse von anwendungsgenerierten Protokollen, bei denen der Fehlerkontext nur innerhalb Ihres Anwendungscodes existiert. CloudWatch Logs Insights zeichnet sich durch die folgenden Aufgaben aus:

  • Fragen Sie unstrukturierte oder halbstrukturierte Protokolldaten ab.

  • Führen Sie bei der Reaktion auf Vorfälle On-Demand-Analysen durch.

  • Korrelieren Sie Ereignisse über mehrere Protokollgruppen hinweg.

  • Erstellen Sie schnelle Visualisierungen ohne externe Tools.

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Eine Produktionsanwendung, die in Active bereitgestellt wird AWS-Konto

  • Grundlegendes Verständnis des Protokollierungsformats und der Ausnahmemuster der Produktionsanwendung

  • Anwendungsprotokolle, die so konfiguriert sind, dass sie zu Amazon CloudWatch Logs gestreamt werden

Einschränkungen

  • Einige AWS-Services sind nicht in allen verfügbar AWS-Regionen. Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie unter AWS Dienste nach Regionen. Informationen zu bestimmten Endpunkten finden Sie unter Dienstendpunkte und Kontingente. Wählen Sie dort den Link für den Dienst aus.

Architektur

Das folgende Diagramm zeigt, wie CloudWatch Logs Insights Ressourcenprotokolle auswertet und eine entsprechende Datenvisualisierung an ein Dashboard sendet. CloudWatch

CloudWatch Logs Insights wertet Ressourcenprotokolle aus und sendet die Datenvisualisierung an das Dashboard.

Das Diagramm zeigt den folgenden Workflow:

  1. Die Ressourcen veröffentlichen Protokolle in CloudWatch Logs. Zu den Ressourcen können AWS Ressourcen wie Amazon Elastic Compute Cloud (Amazon EC2) -Instances oder Amazon Simple Storage Service (Amazon S3) -Buckets gehören. Ein anderes Beispiel sind lokale Systeme, auf denen ein CloudWatch Agent installiert ist und auf denen Protokolle veröffentlicht werden können. CloudWatch

  2. CloudWatch Logs Insights filtert nach der entsprechenden Musterzeichenfolge. Beispiele für Suchmusterzeichenfolgen sind „Fehler“, „Ausnahme“ oder ein bestimmter regulärer Ausdruck.

  3. In der Regel fügen das Produktionsunterstützungsteam oder die Entwickler die Mustervisualisierung dem CloudWatch Dashboard hinzu.

Automatisierung und Skalierung

Entwickler können die Lösung dieses Musters automatisieren, indem sie das AWS Cloud Development Kit (AWS CDK),, oder verwenden AWS CloudFormation, AWS SDKs um mehrere Zeichenkettenmuster zu verarbeiten. Teams können diese Automatisierung in ihre kontinuierlichen Integrations- und Bereitstellungsprozesse (CI/CD) DevOps integrieren.

Tools

AWS-Services

  • Amazon CloudWatch Logs hilft Ihnen dabei, die Protokolle all Ihrer Systeme und Anwendungen zu zentralisieren, AWS-Services sodass Sie sie überwachen und sicher archivieren können.

  • AWS Identity and Access Management (IAM) hilft Ihnen dabei, den Zugriff auf Ihre AWS Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, sie zu verwenden.

  • AWS Key Management Service (AWS KMS) hilft Ihnen dabei, kryptografische Schlüssel zu erstellen und zu kontrollieren, um Ihre Daten zu schützen.

Best Practices

Effizienz bei Abfragen

  • Definieren und konfigurieren Sie Protokollgruppen, um relevante Protokolldaten zu analysieren.

  • Verwenden Sie Feld-Explorer, um die Struktur und die Felder zu verstehen, die in Ihren Protokolldaten verfügbar sind.

  • Schreiben Sie effiziente Abfragen mithilfe der CloudWatch Logs Insights-Abfragesyntax.

  • Passen Sie Beispielabfragen für eine schnellere Analyse an Ihre spezifischen Anforderungen an.

  • Begrenzen Sie die Abfragezeiträume, um die Anzahl der gescannten Daten zu reduzieren und die Leistung zu verbessern.

  • Speichern Sie Abfragen für die future Verwendung, um Zeit zu sparen und eine konsistente Analyse sicherzustellen.

Sicherheit

Kostenoptimierung

  • CloudWatch Logs Insights berechnet pro GB gescannter Daten pro Abfrage. Schränken Sie die Zeiträume ein und konzentrieren Sie sich auf bestimmte Protokollgruppen, um die Kosten zu senken.

  • Konfigurieren Sie geeignete Richtlinien zur Aufbewahrung von Protokollen, um die Speicherkosten im Griff zu behalten.

  • Für die häufige Analyse großer historischer Datensätze sollten Sie den Export von Protokollen nach Amazon S3 und die Verwendung von Amazon Athena in Betracht ziehen.

  • Sehen Sie sich die CloudWatch Preise an, um mehr über die Auswirkungen auf die Kosten für Ihren Anwendungsfall zu erfahren.

Epen

AufgabeDescriptionErforderliche Fähigkeiten

Konfigurieren Sie IAM-Berechtigungen.

Gehen Sie wie folgt vor, um IAM-Berechtigungen zu konfigurieren:

  1. Identifizieren Sie die IAM-Rollen, die von Ihrer Anwendung zum Schreiben von Protokollen und von Benutzern oder Diensten verwendet werden, die Dashboards, Abfragen und Alarme erstellen.

  2. Fügen Sie für die Anwendungsrolle die folgenden API-Aktionen und Ressourcen zu einer Richtlinie hinzu:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
  3. Um CloudWatch Ressourcen zu verwalten, fügen Sie einer Richtlinie Folgendes hinzu:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutDashboard", "cloudwatch:GetDashboard", "logs:StartQuery", "logs:StopQuery", "logs:GetQueryResults", "cloudwatch:PutMetricAlarm" ], "Resource": "*" } ] }

Informationen zum Erstellen von IAM-Richtlinien oder zum Hinzufügen von Berechtigungen zu vorhandenen Richtlinien finden Sie unter Definieren benutzerdefinierter IAM-Berechtigungen mit vom Kunden verwalteten Richtlinien und Bearbeiten von IAM-Richtlinien im IAM-Benutzerhandbuch. Weitere Informationen finden Sie unter Identitäts- und Zugriffsmanagement für Amazon CloudWatch Logs und Referenz zu CloudWatch Logs-Berechtigungen im Amazon CloudWatch Logs-Benutzerhandbuch.

AWS-Administrator DevOps, AWS, AWS-Systemadministrator, Cloud-Administrator, Cloud-Architekt, DevOps Ingenieur

Erstellen Sie eine -Protokollgruppe.

Verwenden Sie eine der folgenden Optionen, um eine Protokollgruppe zu erstellen:

  • Erstellen oder öffnen Sie eine CloudFormation Vorlagendatei (YAML- oder JSON-Format) mit der .json Erweiterung .yaml oder. (Der folgende Code verwendet das YAML-Format.) Fügen Sie dem Abschnitt Ressourcen Ihrer Vorlage die folgende Ressourcendefinition hinzu:

    MyLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: my-log-group

    Weitere Informationen finden Sie unter Schnellstart: Verwenden Sie für AWS CloudFormation die ersten Schritte mit CloudWatch Logs im Amazon CloudWatch Logs-Benutzerhandbuch.

AWS-Administrator DevOps, AWS, AWS-Systemadministrator, Cloud-Administrator, Cloud-Architekt, DevOps Ingenieur

Generieren Sie eine CloudWatch Logs Insights-Abfrage.

Gehen Sie wie folgt vor, um eine CloudWatch Logs Insights-Abfrage zu erstellen und zu speichern:

  1. Öffnen Sie die CloudWatch Konsole.

  2. Navigieren Sie zu Logs Insights.

  3. Erstellen Sie Ihre Abfrage mit einer der folgenden Methoden:

    • Beginnen Sie mit einer Beispielabfrage aus dem Abschnitt Abfragen.

    • Schreiben Sie eine benutzerdefinierte Abfrage.

    • Ändern Sie die folgende Beispielabfrage:

      fields @timestamp, @message | filter @message like /(?i)exception/|stats count() by bin(30s)

      Diese Abfrage überprüft die Protokolldatei, extrahiert den Zeitstempel und den Nachrichteninhalt, filtert nach dem Wort „Ausnahme“ (ohne Berücksichtigung von Groß- und Kleinschreibung) und zählt Ereignisse in 30-Sekunden-Intervallen.

AWS-Administrator DevOps, AWS, AWS-Systemadministrator, Cloud-Administrator, Cloud-Architekt, DevOps Ingenieur

Erstellen Sie eine Visualisierung in einem CloudWatch Dashboard.

Gehen Sie wie folgt vor, um ein CloudWatch Dashboard zum Erstellen einer Visualisierung zu verwenden:

  1. Öffnen Sie die CloudWatch Konsole und erstellen Sie ein CloudWatch Dashboard (falls Sie noch keines haben) oder öffnen Sie ein vorhandenes Dashboard.

  2. Fügen Sie Ihre Visualisierung für die Ausnahmeüberwachung hinzu. Balken-, Linien- und Kreisdiagramme sind je nach Ihren Geschäftsanforderungen verfügbar. Weitere Informationen finden Sie unter Verwenden von Widgets auf CloudWatch Dashboards im Amazon CloudWatch Logs-Benutzerhandbuch. Für Datenvisualisierungen in Echtzeit können Sie ein Widget an Ihre Anforderungen anpassen.

Weitere Informationen zu Dashboard-Optionen und -Funktionen finden Sie unter Verwenden von CloudWatch Amazon-Dashboards und Erstellen flexibler CloudWatch Dashboards mit Dashboard-Variablen im Amazon CloudWatch Logs-Benutzerhandbuch.

AWS-Administrator DevOps, AWS, AWS-Systemadministrator, Cloud-Administrator, Cloud-Architekt, DevOps Ingenieur

Fehlerbehebung

ProblemLösung

Die Abfrageergebnisse können nicht angezeigt werden oder die Abfrage scheint defekt zu sein

Beginnen Sie mit einer funktionierenden Abfrage, die anhand einer Beispielabfrage geändert wurde. Nehmen Sie kleine inkrementelle Änderungen an Teilen der Abfrage vor (z. B. an einem Filter oder Feld) und nutzen Sie die Funktion zum Generieren von CloudWatch Protokollabfragen.

Protokollgruppen, die keine Protokolldatenströme erstellen

Stellen Sie in der IAM-Richtlinie sicher, dass die Ressource für die CreateLogStreamund die CreateLogGroupOperationen mit einem Platzhalterzeichen versehen ist. (*) Ohne diese Platzhalterberechtigung ist der create Vorgang nicht erfolgreich.

Zeitlimit für Abfragen oder langsame Leistung

Reduzieren Sie den Zeitraum, zielen Sie auf bestimmte Protokollgruppen ab oder vereinfachen Sie die Abfrage. Komplexe Muster für reguläre Ausdrücke (regex) und große Zeitbereiche erhöhen die Abfragezeit.

Für einen gültigen Zeitraum wurden keine Daten zurückgegeben

Überprüfen Sie die Auswahl der Protokollgruppe und stellen Sie sicher, dass Protokolle aufgenommen werden (überprüfen Sie die Protokollstreams), und stellen Sie sicher, dass das Filtermuster Ihrem Protokollformat entspricht.

Zugehörige Ressourcen