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.
Beispielabfragen
Dieser Abschnitt enthält eine Liste allgemeiner und nützlicher Abfragebefehle, die Sie in der CloudWatch Konsole
Weitere Informationen zur Abfragesyntax finden Sie unterCloudWatch Syntax der Logs Insights-Abfrage.
Themen
- Allgemeine Abfragen
- Abfragen für Lambda-Protokolle
- Abfragen für Amazon VPC Flow-Logs
- Abfragen für Route-53-Protokolle
- Abfragen für Protokolle CloudTrail
- Abfragen für Amazon API Gateway
- Abfragen für das NAT Gateway
- Abfragen für Apache-Serverprotokolle
- Anfragen für Amazon EventBridge
- Beispiele des parse-Befehls
Allgemeine Abfragen
Findet die 25 zuletzt hinzugefügten Protokollereignisse.
fields @timestamp, @message | sort @timestamp desc | limit 25
Ruft eine Liste der Anzahl der Ausnahmen pro Stunde ab.
filter @message like /Exception/ | stats count(*) as exceptionCount by bin(1h) | sort exceptionCount desc
Ruft eine Liste von Protokollereignissen ab, die keine Ausnahmen sind.
fields @message | filter @message not like /Exception/
Ruft das letzte Protokollereignis für jeden eindeutigen Wert des Felds server
ab.
fields @timestamp, server, severity, message | sort @timestamp asc | dedup server
Ruft das letzte Protokollereignis für jeden eindeutigen Wert des Felds server
für jeden severity
-Typ ab.
fields @timestamp, server, severity, message | sort @timestamp desc | dedup server, severity
Abfragen für Lambda-Protokolle
Ermittelt die Menge des zu viel bereitgestellten Speichers.
filter @type = "REPORT" | stats max(@memorySize / 1000 / 1000) as provisonedMemoryMB, min(@maxMemoryUsed / 1000 / 1000) as smallestMemoryRequestMB, avg(@maxMemoryUsed / 1000 / 1000) as avgMemoryUsedMB, max(@maxMemoryUsed / 1000 / 1000) as maxMemoryUsedMB, provisonedMemoryMB - maxMemoryUsedMB as overProvisionedMB
Erstellt einen Latenzbericht.
filter @type = "REPORT" | stats avg(@duration), max(@duration), min(@duration) by bin(5m)
Sucht nach langsamen Funktionsaufrufen und beseitigt doppelte Anfragen, die durch Wiederholungen oder clientseitigen Code entstehen können. In dieser Abfrage ist @duration
in Millisekunden.
fields @timestamp, @requestId, @message, @logStream | filter @type = "REPORT" and @duration > 1000 | sort @timestamp desc | dedup @requestId | limit 20
Abfragen für Amazon VPC Flow-Logs
Findet die Top 15 Paketübertragungen zwischen den Hosts:
stats sum(packets) as packetsTransferred by srcAddr, dstAddr | sort packetsTransferred desc | limit 15
Findet die Top 15 Byte-Übertragungen für Hosts in einem bestimmten Subnetz.
filter isIpv4InSubnet(srcAddr, "192.0.2.0/24") | stats sum(bytes) as bytesTransferred by dstAddr | sort bytesTransferred desc | limit 15
Finden Sie die IP-Adressen, die UDP als Datenübertragungsprotokoll verwendet werden.
filter protocol=17 | stats count(*) by srcAddr
Findet die IP-Adressen, bei denen während des Erfassungsfensters Flussdatensätze übersprungen wurden.
filter logStatus="SKIPDATA" | stats count(*) by bin(1h) as t | sort t
Sucht einen einzelnen Datensatz für jede Verbindung, um Probleme mit der Netzwerkverbindung zu beheben.
fields @timestamp, srcAddr, dstAddr, srcPort, dstPort, protocol, bytes | filter logStream = 'vpc-flow-logs' and interfaceId = 'eni-0123456789abcdef0' | sort @timestamp desc | dedup srcAddr, dstAddr, srcPort, dstPort, protocol | limit 20
Abfragen für Route-53-Protokolle
Findet die Verteilung der Datensätze pro Stunde nach Abfragetyp.
stats count(*) by queryType, bin(1h)
Finden Sie die 10 DNS Resolver mit der höchsten Anzahl an Anfragen.
stats count(*) as numRequests by resolverIp | sort numRequests desc | limit 10
Finden Sie die Anzahl der Datensätze nach Domain und Subdomain, bei denen der Server die Anfrage nicht abschließen konnte. DNS
filter responseCode="SERVFAIL" | stats count(*) by queryName
Abfragen für Protokolle CloudTrail
Ermittelt die Anzahl der Protokolleinträge pro Service, Ereignistyp und AWS -Region.
stats count(*) by eventSource, eventName, awsRegion
Finden Sie die EC2 Amazon-Hosts, die in einer bestimmten AWS Region gestartet oder gestoppt wurden.
filter (eventName="StartInstances" or eventName="StopInstances") and awsRegion="us-east-2"
Finden Sie die AWS Regionen, Benutzernamen und ARNs neu erstellten IAM Benutzer.
filter eventName="CreateUser" | fields awsRegion, requestParameters.userName, responseElements.user.arn
Ermitteln Sie die Anzahl der Datensätze, bei denen beim Aufrufen von eine Ausnahme aufgetreten ist. API UpdateTrail
filter eventName="UpdateTrail" and ispresent(errorCode) | stats count(*) by errorCode, errorMessage
Suchen Sie nach Protokolleinträgen, in denen TLS 1.0 oder 1.1 verwendet wurde
filter tlsDetails.tlsVersion in [ "TLSv1", "TLSv1.1" ] | stats count(*) as numOutdatedTlsCalls by userIdentity.accountId, recipientAccountId, eventSource, eventName, awsRegion, tlsDetails.tlsVersion, tlsDetails.cipherSuite, userAgent | sort eventSource, eventName, awsRegion, tlsDetails.tlsVersion
Finden Sie die Anzahl der Aufrufe pro Dienst heraus, der die TLS Versionen 1.0 oder 1.1 verwendet hat
filter tlsDetails.tlsVersion in [ "TLSv1", "TLSv1.1" ] | stats count(*) as numOutdatedTlsCalls by eventSource | sort numOutdatedTlsCalls desc
Abfragen für Amazon API Gateway
Findet die letzten 10 4XX-Fehler.
fields @timestamp, status, ip, path, httpMethod | filter status>=400 and status<=499 | sort @timestamp desc | limit 10
Identifizieren Sie die 10 am längsten laufenden Amazon API Gateway Anfragen in Ihrer Amazon API Gateway Zugriffs-Log-Gruppe
fields @timestamp, status, ip, path, httpMethod, responseLatency | sort responseLatency desc | limit 10
Gibt die Liste der beliebtesten API Pfade in Ihrer Amazon API Gateway Zugriffs-Log-Gruppe zurück
stats count(*) as requestCount by path | sort requestCount desc | limit 10
Erstellen Sie einen Integrationslatenzbericht für Ihre Amazon API Gateway Zugriffsprotokollgruppe
filter status=200 | stats avg(integrationLatency), max(integrationLatency), min(integrationLatency) by bin(1m)
Abfragen für das NAT Gateway
Wenn Sie feststellen, dass Ihre AWS Rechnung höhere als normale Kosten enthält, können Sie CloudWatch Logs Insights verwenden, um die wichtigsten Beitragszahler zu finden. Weitere Informationen zu den folgenden Abfragebefehlen finden Sie unter Wie finde ich die Hauptverursacher des Datenverkehrs über das NAT Gateway in meinemVPC?
Anmerkung
Ersetzen Sie in den folgenden Abfragebefehlen „x.x.x.x“ durch die private IP Ihres NAT Gateways und „y.y“ durch die ersten beiden X. Ihres Bereichs. VPC CIDR
Finden Sie die Instances, die den meisten Traffic über Ihr Gateway senden. NAT
filter (dstAddr like 'x.x.x.x' and srcAddr like 'y.y.') | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr | sort bytesTransferred desc | limit 10
Ermitteln Sie den Verkehr, der zu und von den Instances in Ihren NAT Gateways fließt.
filter (dstAddr like 'x.x.x.x' and srcAddr like 'y.y.') or (srcAddr like 'xxx.xx.xx.xx' and dstAddr like 'y.y.') | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr | sort bytesTransferred desc | limit 10
Ermitteln Sie die Internetziele, mit denen die Instances in Ihrem System am häufigsten für Uploads und Downloads VPC kommunizieren.
For uploads (Für Uploads)
filter (srcAddr like 'x.x.x.x' and dstAddr not like 'y.y.') | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr | sort bytesTransferred desc | limit 10
Für Downloads
filter (dstAddr like 'x.x.x.x' and srcAddr not like 'y.y.') | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr | sort bytesTransferred desc | limit 10
Abfragen für Apache-Serverprotokolle
Sie können CloudWatch Logs Insights verwenden, um Apache-Serverprotokolle abzufragen. Weitere Informationen zu den folgenden Abfragen finden Sie unter Simplifying Apache Server Logs with CloudWatch Logs Insights
Findet die relevantesten Felder, damit Sie Ihre Zugriffsprotokolle und den Datenverkehr im Pfad /admin Ihrer Anwendung überprüfen können.
fields @timestamp, remoteIP, request, status, filename| sort @timestamp desc | filter filename="/var/www/html/admin" | limit 20
Finden Sie die Anzahl der eindeutigen GET Anfragen heraus, die mit dem Statuscode „200“ (erfolgreich) auf Ihre Hauptseite zugegriffen haben.
fields @timestamp, remoteIP, method, status | filter status="200" and referrer= http://34.250.27.141/ and method= "GET" | stats count_distinct(remoteIP) as UniqueVisits | limit 10
Gibt an, wie oft Ihr Apache-Service neu gestartet wurde.
fields @timestamp, function, process, message | filter message like "resuming normal operations" | sort @timestamp desc | limit 20
Anfragen für Amazon EventBridge
Ruft die Anzahl der EventBridge Ereignisse ab, gruppiert nach Art der Ereignisdetails
fields @timestamp, @message | stats count(*) as numberOfEvents by `detail-type` | sort numberOfEvents desc
Beispiele des parse-Befehls
Verwenden Sie einen globalen Ausdruck zum Extrahieren der Felder @user
, @method
und @latency
aus dem Protokollfeld @message
und zur Rückgabe der durchschnittlichen Latenz für jede eindeutige Kombination aus @method
und @user
.
parse @message "user=*, method:*, latency := *" as @user, @method, @latency | stats avg(@latency) by @method, @user
Verwenden Sie einen regulären Ausdruck zum Extrahieren der Felder @user2
, @method2
und @latency2
aus dem Protokollfeld @message
und zur Rückgabe der durchschnittlichen Latenz für jede eindeutige Kombination aus @method2
und @user2
.
parse @message /user=(?<user2>.*?), method:(?<method2>.*?), latency := (?<latency2>.*?)/ | stats avg(latency2) by @method2, @user2
Extrahiert die Felder loggingTime
, loggingType
und loggingMessage
, filtert nach Protokollereignissen, die die Zeichenfolgen ERROR
oder INFO
enthalten, und zeigt dann nur die Felder loggingMessage
und loggingType
für Ereignisse an, die die Zeichenfolge ERROR
enthalten.
FIELDS @message | PARSE @message "* [*] *" as loggingTime, loggingType, loggingMessage | FILTER loggingType IN ["ERROR", "INFO"] | DISPLAY loggingMessage, loggingType = "ERROR" as isError