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 der allgemeinen und nützlichen Abfragebefehle, die Sie in der CloudWatchKonsole
Weitere Informationen zur Abfragesyntax finden Sie unterCloudWatch Syntax der Sprachabfrage in Logs Insights.
Themen
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 Flussprotokolle von Amazon-VPC
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
Findet die IP-Adressen, die UDP als Datenübertragungsprotokoll verwenden.
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)
Findet die 10 DNS-Resolver mit der höchsten Anzahl von Anforderungen.
stats count(*) as numRequests by resolverIp | sort numRequests desc | limit 10
Ermittelt die Anzahl der Datensätze nach Domain und Subdomain, bei denen der Server die DNS-Anforderung nicht abgeschlossen hat.
filter responseCode="SERVFAIL" | stats count(*) by queryName
Abfragen für CloudTrail Protokolle
Ermittelt die Anzahl der Protokolleinträge pro Service, Ereignistyp und AWS -Region.
stats count(*) by eventSource, eventName, awsRegion
Findet die EC2 Amazon-Hosts, die in einer bestimmten AWS -Region gestartet oder angehalten wurden.
filter (eventName="StartInstances" or eventName="StopInstances") and awsRegion="us-east-2"
Findet die AWS -Regionen, Benutzernamen und ARNs der neu erstellten IAM-Benutzer.
filter eventName="CreateUser" | fields awsRegion, requestParameters.userName, responseElements.user.arn
Ermittelt die Anzahl der Datensätze, bei denen beim Aufruf des API-UpdateTrail
eine Ausnahme aufgetreten ist.
filter eventName="UpdateTrail" and ispresent(errorCode) | stats count(*) by errorCode, errorMessage
Findet Protokolleinträge, 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
Ermittelt die Anzahl der Anrufe pro Service, die die TLS-Versionen 1.0 oder 1.1 verwendet haben.
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
Identifiziert die 10 Amazon API Gateway -Anforderungen mit der längsten Ausführungszeit in Ihrer Amazon API Gateway -Zugriffsprotokollgruppe.
fields @timestamp, status, ip, path, httpMethod, responseLatency | sort responseLatency desc | limit 10
Gibt die Liste der beliebtesten API-Pfade in Ihrer Amazon API Gateway -Zugriffsprotokollgruppe zurück.
stats count(*) as requestCount by path | sort requestCount desc | limit 10
Erstellt 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 NAT-Gateway
Wenn Sie höhere Kosten als normal in Ihrer AWS -Rechnung feststellen, können Sie mit CloudWatch Logs Insights die wichtigsten Ursachen dafür herausfinden. Weitere Informationen über die folgenden Abfragebefehle finden Sie unter Wie finde ich die wichtigsten Ursachen für den Datenverkehr durch das NAT-Gateway in meiner VPC?
Anmerkung
Ersetzen Sie in den folgenden Abfragebefehlen „x.x.x.x“ durch die private IP Ihres NAT-Gateways und ersetzen Sie „y.y“ durch die ersten beiden Oktette Ihres VPC-CIDR-Bereichs.
Findet die Instances, die den meisten Datenverkehr über Ihr NAT-Gateway senden.
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
Bestimmt den Datenverkehr, der bei den Instances in Ihren NAT-Gateways ein- bzw. ausgeht.
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
Bestimmt die Internetziele, mit denen die Instances in Ihrer VPC am häufigsten für Uploads und Downloads 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
Dank CloudWatch Logs Insights können Sie Apache-Serverprotokolle abfragen. Weitere Informationen über die folgenden Abfragen finden Sie unter Vereinfachen von Apache-Serverprotokollen mit 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
Ermittelt die Anzahl der eindeutigen GET-Anforderungen, die auf Ihre Hauptseite mit dem Statuscode „200“ (Erfolg) 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 Ereignisdetailtyp.
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