Wie kann ich CloudWatch Logs Insights-Abfragen mit meinem VPC-Ablaufprotokoll verwenden?

Lesedauer: 3 Minute
0

Ich möchte Amazon CloudWatch Logs Insights-Abfragen verwenden, um meine Amazon Virtual Private Cloud (Amazon VPC)-Ablaufprotokolle zu verarbeiten, die sich in einer Protokollgruppe befinden.

Kurzbeschreibung

Wenn du VPC-Ablaufprotokolle aktivierst, die auf CloudWatch Logs abzielen, wird ein Protokollstream für jede Elastic Network-Schnittstelle angezeigt. Wenn ein Problem auftritt, verwende CloudWatch Logs Insights, um mögliche Ursachen zu identifizieren und bereitgestellte Fixes zu validieren.

Weitere Informationen zu den Protokolltypen, die CloudWatch Logs Insights unterstützt, findest du unter Unterstützte Protokolle und erkannte Felder.

Lösung

Ausführen einer Abfrage

Verwende die CloudWatch-Konsole, um entweder eine Beispielabfrage oder eine benutzerdefinierte Abfrage auszuführen. Um eine Abfrage auszuführen, die du zuvor ausgeführt hast, wähle Verlauf. Um die Ergebnisse zu exportieren, wähle Ergebnisse exportieren und wähle dann ein Format aus.

Beispielabfragen

Szenario 1

Du hast einen Webserver, einen Anwendungsserver und einen Datenbankserver. Du erhältst einen Timeout- oder HTTP 503-Fehler und möchtest die Ursache des Fehlers ermitteln.

Führe eine Abfrage mit den folgenden Beispielvariablen aus:

  • Aktion ist auf REJECT gesetzt, sodass nur abgelehnte Verbindungen zurückgegeben werden.
  • Die Abfrage umfasst nur interne Netzwerke.
  • Die Liste der Server-IP-Adressen zeigt sowohl eingehende als auch ausgehende Verbindungen (srcAddr und dstAddr).
  • Das Limit ist auf 5 gesetzt, sodass nur die ersten fünf Einträge angezeigt werden.
  • Die IP-Adresse des Webservers lautet 10.0.0.4.
  • Die IP-Adresse des App-Servers lautet 10.0.0.5.
  • Die IP-Adresse des Datenbankservers lautet 10.0.0.6.

Beispielabfrage:

filter(
   action="REJECT" and
   dstAddr like /^(10\.|192\.168\.)/ and  
   srcAddr like /^(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")
)
| stats count(*) as records by srcAddr,dstAddr,dstPort,protocol
| sort records desc
| limit 5

Szenario 2

Auf einer Netzwerkschnittstelle treten zeitweise Timeouts auf. Führe die folgende Abfrage aus, um die Netzwerkschnittstelle über einen bestimmten Zeitraum auf Ablehnungen zu überprüfen:

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

Szenario 3

Führe die folgende Abfrage aus, um VPC-Ablaufprotokolle zu analysieren und einen Bericht über eine bestimmte Netzwerkschnittstelle zu erstellen:

fields @timestamp, @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

Die vorhergehende Abfrage überprüft die Menge des Datenverkehrs, der an verschiedene Ports gesendet wird.

Szenario 4

Führe eine der folgenden Abfragen aus, um VPC-Ablaufprotokolle zu filtern und IP-Adressen aufzulisten, die versuchen, eine Verbindung zu einer bestimmten IP-Adresse oder ein CIDR in der VPC herzustellen.

Spezifische IP-Adresse:

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

Spezifisches CIDR:

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

Weitere Beispielabfragen findest du unter Beispielabfragen.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 4 Monaten