Wie kann ich Abfragen von CloudWatch Logs Insights mit meinem VPC-Flow-Protokoll verwenden?

Letzte Aktualisierung: 07.04.2022

Ich möchte Abfragen von Amazon CloudWatch Logs Insights zur Verarbeitung meiner in einer Protokollgruppe befindlichen Flow-Protokolle aus der Amazon Virtual Private Cloud (Amazon VPC) verwenden. Wie kann ich vorgehen?

Kurzbeschreibung

Nachdem Sie VPC-Flow-Protokolle für CloudWatch Logs aktiviert haben, wird für jede Elastic-Network-Schnittstelle ein Protokollstream angezeigt. CloudWatch Logs Insights ist ein Abfragetool, das komplexe Abfragen von Protokollereignissen durchführen kann, die in Protokollgruppen gespeichert sind. Wenn ein Problem auftritt, können Sie mit CloudWatch Logs Insights potenzielle Ursachen ermitteln und bereitgestellte Fehlerbehebungen überprüfen.

Informationen zu unterstützten Protokolltypen finden Sie unter Unterstützte Protokolle und erkannte Felder.

Lösung

Ausführen einer Abfrage

Gehen Sie zum Ausführen einer Abfrage wie folgt vor:

1.    Öffnen Sie die CloudWatch-Konsole.

2.    Wählen Sie Logs, Logs Insights.

3.    Wählen Sie im Logs Insights-Dashboard die Protokollgruppe aus, für die Sie Daten analysieren und visualisieren möchten.

4.    Sie können eine Abfrage erstellen oder eine der bereitgestellten Beispielabfragen für VPC-Flow-Protokolle ausführen. Wenn Sie eine benutzerdefinierte Abfrage erstellen, lesen Sie zunächst die Tutorials in der Amazon CloudWatch-Dokumentation. Informationen zur Abfragesyntax finden Sie unter Abfragesyntax von CloudWatch Logs Insights.

5.    Wählen Sie History aus, um Ihre zuvor ausgeführten Abfragen anzuzeigen. Sie können Abfragen aus History erneut ausführen.

6.    Wählen Sie zum Exportieren Ihrer Ergebnisse Export results und dann ein Format aus.

Beispiele für Abfragen

Szenario 1

Sie haben einen Webserver, einen Anwendungsserver und einen Datenbankserver. Die Anwendung funktioniert nicht wie erwartet. Sie erhalten beispielsweise eine Zeitüberschreitung oder eine HTTP-503-Fehlermeldung und versuchen, die Ursache des Fehlers zu ermitteln.

Beispielvariablen:

  • Action ist auf „REJECT“ gesetzt, sodass nur abgelehnte Verbindungen zurückgegeben werden.
  • Die Abfrage umfasst nur interne Netzwerke.
  • Die Liste der Server-IPs zeigt sowohl eingehende als auch ausgehende Verbindungen (srcAddr und dstAddr).
  • Das Limit ist auf 5 festgelegt, sodass nur die ersten fünf Einträge angezeigt werden.
  • Webserver-IP: 10.0.0.4
  • App-Server-IP: 10.0.0.5
  • Datenbank-Server-IP: 10.0.0.6
filter(
action="REJECT" and
dstAddr like   /^(10\.|192\.168\.)/and
srcAddrlike   /^(10\.|192\.168\.)/ and
(
srcAddr = "10.0.0.4" or
dstAddr = "10.0.0.4" or
srcAddr = "10.0.0.5" or
dstAddr = "10.0.0.5" or
srcAddr = "10.0.0.6" or
dstAddr = "10.0.0.6" or
)
)|
stats count(*) as records by srcAddr,dstAddr,dstPort,protocol |
sort records desc |
limit 5

Szenario 2

Auf einer bestimmten Elastic-Network-Schnittstelle treten von Zeit zu Zeit Timeouts auf. Die folgende Abfrage prüft die Elastic-Network-Schnittstelle über einen bestimmten Zeitraum auf Ablehnungen.

fields @timestamp, interfaceId, srcAddr, dstAddr, action
| filter (interfaceId = 'eni-05012345abcd' and action = 'REJECT')
| sort @timestamp desc
| limit 5

Szenario 3

Im folgenden Abfragebeispiel werden VPC-Flow-Protokolle analysiert, um einen Bericht für eine bestimmte Elastic-Network-Schnittstelle zu erstellen. Die Abfrage überprüft die Menge an Datenverkehr, die an verschiedene Ports gesendet wird.

fields @timestemp, @message
 | stats count(*) as records by dstPort, srcAddr, dstAddr as Destination
 | filter interfaceId="eni-05012345abcd"
 | filter dstPort="80" or dstPort="443" or dstPort="22" or dstPort="25"
 | sort HitCount desc
 | limit 10

Szenario 4

Die folgende Abfrage filtert VPC-Flow-Protokolle, um IP-Adressen aufzulisten, die versuchen, eine Verbindung mit einer bestimmten IP oder CIDR in Ihrer VPC herzustellen.

Für eine bestimmte IP:

fields @timestamp, srcAddr, dstAddr
 | sort @timestamp desc
 | limit 5
 | filter srcAddr like "172.31."

Für ein bestimmtes CIDR:

fields @timestamp, srcAddr, dstAddr
 | sort @timestamp desc
 | limit 5
 | filter isIpv4InSubnet(srcAddr,"172.31.0.0/16)

Hinweis: Weitere Beispiele für Abfragen finden Sie unter Beispiele für Abfragen.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?