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.
Lösung
Einen Überblick über die von Ihnen verwendete Syntax finden Sie unter CloudWatch Logs Insights-Sprachabfragesyntax.
Verwendung von Beispielabfragen
Verwenden Sie die CloudWatch-Konsole, um eine CloudWatch Logs Insights-Beispielabfrage 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.
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:
- Setzen Sie ** Action ** auf ** REJECT, ** damit die Abfrage nur abgelehnte Verbindungen zurückgibt.
- Schließen Sie nur interne Netzwerke in die Abfrage ein.
- Die Liste der Server-IP-Adressen zeigt sowohl eingehende als auch ausgehende Verbindungen (srcAddr und dstAddr).
- Setzen Sie das ** Limit ** auf ** 5, ** sodass die Abfrage nur die ersten fünf Einträge anzeigt.
- 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
Um einen Bericht über eine bestimmte Netzwerkschnittstelle zu erstellen, führen Sie die folgende Abfrage aus:
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ühren Sie die folgende Abfrage aus, um IP-Adressen aufzulisten, die versuchen, eine Verbindung zu einer bestimmten IP-Adresse herzustellen:
fields @timestamp, srcAddr, dstAddr | sort @timestamp desc
| limit 5
| filter srcAddr like "172.31."
Führen Sie die folgende Abfrage aus, um IP-Adressen aufzulisten, die versuchen, eine Verbindung zu einem bestimmten CIDR herzustellen:
fields @timestamp, srcAddr, dstAddr | sort @timestamp desc
| limit 5
| filter isIpv4InSubnet(srcAddr,"172.31.0.0/16")
Weitere Beispielabfragen finden Sie unter Abfragen für Amazon VPC-Flow-Logs.
Ähnliche Informationen
Analyse von Protokolldaten mit CloudWatch Logs Insights
Unterstützte Protokolle und entdeckte Felder