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.
Verbindungsprotokolle für Ihren Application Load Balancer
Elastic Load Balancing stellt Verbindungsprotokolle bereit, die detaillierte Informationen über Anfragen erfassen, die an Ihren Load Balancer gesendet wurden. Jedes Protokoll enthält Informationen wie die IP-Adresse und den Port des Clients, den Listener-Port, die verwendete TLS Chiffre und das verwendete Protokoll, die TLS Handshake-Latenz, den Verbindungsstatus und Details zum Client-Zertifikat. Sie können diese Verbindungsprotokolle verwenden, um Anforderungsmuster zu analysieren und Probleme zu beheben.
Verbindungsprotokolle sind eine optionale Funktion von Elastic Load Balancing, die standardmäßig deaktiviert ist. Nachdem Sie Verbindungsprotokolle für Ihren Load Balancer aktiviert haben, erfasst Elastic Load Balancing die Protokolle und speichert sie in dem von Ihnen angegebenen Amazon S3 S3-Bucket als komprimierte Dateien. Sie können Verbindungsprotokolle jederzeit deaktivieren.
Sie zahlen Speicherkosten für Amazon S3, aber Sie zahlen nicht für die Bandbreite, die von Elastic Load Balancing zum Senden von Protokolldateien an Amazon S3 verwendet wird. Weitere Information zu Speicherkosten finden Sie unter Amazon S3 – Preise
Inhalt
Verbindungsprotokolldateien
Elastic Load Balancing veröffentlicht alle 5 Minuten eine Protokolldatei für jeden Load-Balancer-Knoten. Die Protokollbereitstellung ist letztendlich konsistent. Der Load Balancer kann mehrere Protokolle für denselben Zeitraum bereitstellen. Dies passiert in der Regel, wenn die Website hohen Datenverkehr aufweist.
Die Dateinamen der Verbindungsprotokolle verwenden das folgende Format:
bucket
[/prefix
]/AWSLogs/aws-account-id
/elasticloadbalancing/region
/yyyy
/mm
/dd
/conn_log.aws-account-id
_elasticloadbalancing_region
_app.load-balancer-id
_end-time
_ip-address
_random-string
.log.gz
- bucket
-
Der Name des S3-Buckets.
- prefix
-
(Optional) Das Präfix (logische Hierarchie) für den Bucket. Das von Ihnen angegebene Präfix darf die Zeichenfolge
AWSLogs
nicht enthalten. Weitere Informationen finden Sie unter Organisieren von Objekten mit Präfixen. AWSLogs
-
Wir fügen den Teil des Dateinamens hinzu, der mit
AWSLogs
nach dem von Ihnen angegebenen Bucket-Namen und dem optionalen Präfix beginnt. - aws-account-id
-
Die AWS Konto-ID des Besitzers.
- Region
-
Die Region für Ihren Load Balancer und den S3-Bucket.
- JJJJ/MM/TT
-
Das Datum, an dem das Protokoll übermittelt wurde.
- load-balancer-id
-
Die Ressourcen-ID des Load Balancer. Wenn die Ressourcen-ID Schrägstriche (/) enthält, werden sie durch Punkte (.) ersetzt.
- end-time
-
Das Datum und die Uhrzeit, an dem das Protokollierungsintervall endete. Beispielsweise enthält die Endzeit 20140215T2340Z Einträge für Anfragen, die zwischen 23:35 und 23:40 Uhr oder Zulu-Zeit gestellt wurden. UTC
- ip-address
-
Die IP-Adresse des Load Balancer-Knotens, der die Anforderung verarbeitet hat. Für einen internen Load Balancer handelt es sich hierbei um eine private IP-Adresse.
- random-string
-
Eine vom System generierte zufällige Zeichenfolge.
Im Folgenden finden Sie ein Beispiel für einen Protokolldateinamen mit Präfix:
s3://amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2022/05/01/conn_log.123456789012_elasticloadbalancing_us-east-2_app.my-loadbalancer.1234567890abcdef_20220215T2340Z_172.160.001.192_20sg8hgm.log.gz
Im Folgenden finden Sie ein Beispiel für einen Protokolldateinamen ohne Präfix:
s3://amzn-s3-demo-logging-bucket/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2022/05/01/conn_log.123456789012_elasticloadbalancing_us-east-2_app.my-loadbalancer.1234567890abcdef_20220215T2340Z_172.160.001.192_20sg8hgm.log.gz
Sie können Ihre Protokolldateien beliebig lange im Bucket speichern. Sie können aber auch Amazon S3-Lebenszyklusregeln aufstellen, anhand derer die Protokolldateien automatisch archiviert oder gelöscht werden. Weitere Informationen finden Sie unter Objekt-Lebenszyklusmanagement im Benutzerhandbuch zu Amazon Simple Storage Service.
Verbindungsprotokolleinträge
Jeder Verbindungsversuch hat einen Eintrag in einer Verbindungsprotokolldatei. Wie Client-Anfragen gesendet werden, hängt davon ab, ob die Verbindung persistent oder nicht persistent ist. Nicht persistente Verbindungen haben eine einzige Anfrage, wodurch ein einziger Eintrag im Zugriffs- und Verbindungsprotokoll erstellt wird. Persistente Verbindungen haben mehrere Anfragen, wodurch mehrere Einträge im Zugriffsprotokoll und ein einziger Eintrag im Verbindungsprotokoll erstellt werden.
Syntax
Die Einträge im Verbindungsprotokoll verwenden das folgende Format:
[timestamp] [client_ip] [client_port] [listener_port] [tls_protocol] [tls_cipher] [tls_handshake_latency] [leaf_client_cert_subject] [leaf_client_cert_validity] [leaf_client_cert_serial_number] [tls_verify_status]
In der folgenden Tabelle werden die Felder eines Verbindungsprotokolleintrags der Reihe nach beschrieben. Alle Felder werden durch Leerzeichen voneinander getrennt. Wenn neue Felder eingeführt werden, werden sie am Ende des Protokolleintrags hinzugefügt. Sie sollten alle Felder am Ende des Protokolleintrags ignorieren, die Sie nicht erwartet haben.
Feld | Beschreibung |
---|---|
Zeitstempel |
Der Zeitpunkt im ISO 8601-Format, zu dem der Load Balancer erfolgreich eine Verbindung hergestellt hat oder nicht hergestellt werden konnte. |
client_ip |
Die IP-Adresse des anfragenden Clients. |
client_port |
Der Port des anfragenden Clients. |
listener_port |
Der Port des Load Balancer-Listeners, der die Client-Anfrage empfängt. |
tls_protocol |
[HTTPSlistener] DasSSL/TLS-Protokoll, das bei Handshakes verwendet wird. Dieses Feld ist für Anfragen, die nichtSSL/enthalten, |
tls_cipher |
[HTTPSListener] DasSSL/TLS-Protokoll, das bei Handshakes verwendet wird. Dieses Feld ist für Anfragen, die nichtSSL/enthalten, |
tls_handshake_latency |
[HTTPSlistener] Die Gesamtzeit in Sekunden, mit einer Genauigkeit von Millisekunden, die beim Herstellen eines erfolgreichen Handshakes verstrichen ist. Dieses Feld ist auf Folgendes gesetzt:
|
leaf_client_cert_subject |
[HTTPSlistener] Der Betreffname des Leaf-Client-Zertifikats. Dieses Feld ist auf Folgendes gesetzt
|
leaf_client_cert_validity |
[HTTPSlistener] Die Gültigkeit des Leaf-Client-Zertifikats mit
|
leaf_client_cert_serial_number |
[HTTPSlistener] Die Seriennummer des Leaf-Client-Zertifikats. Dieses Feld ist auf Folgendes gesetzt
|
tls_verify_status |
[HTTPSListener] Der Status der Verbindungsanfrage. Dieser Wert gibt an |
conn_trace_id |
Die Verbindungsrückverfolgbarkeits-ID ist eine eindeutige undurchsichtige ID, die zur Identifizierung jeder Verbindung verwendet wird. Nachdem eine Verbindung mit einem Client hergestellt wurde, enthalten nachfolgende Anfragen von diesem Client diese ID in ihren jeweiligen Zugriffsprotokolleinträgen. Diese ID fungiert als Fremdschlüssel, um eine Verbindung zwischen den Verbindungs- und Zugriffsprotokollen herzustellen. |
Codes für die Fehlerursache
Wenn der Load Balancer keine Verbindung herstellen kann, speichert der Load Balancer einen der folgenden Ursachencodes im Verbindungsprotokoll.
Code | Beschreibung |
---|---|
|
Die maximale Tiefe der Client-Zertifikatskette wurde überschritten |
|
Die maximale Größe des Client-Zertifikats wurde überschritten |
|
Das Client-Zertifikat wurde von der CA gesperrt |
|
CRLFehler bei der Verarbeitung |
|
Das Client-Zertifikat ist nicht vertrauenswürdig |
|
Das Client-Zertifikat ist noch nicht gültig |
|
Das Client-Zertifikat ist abgelaufen |
|
Der Typ des Client-Zertifikats wird nicht unterstützt |
|
Das Client-Zertifikat ist ungültig |
|
Der Zweck des Client-Zertifikats ist ungültig |
|
Das Client-Zertifikat wurde durch die benutzerdefinierte Servervalidierung abgelehnt |
|
Fehler bei der Verbindung zur Laufzeit bei nicht zugeordneter Zuordnung |
Beispiel-Protokolleinträge
Im Folgenden finden Sie Beispiele für Verbindungsprotokolleinträge.
Im Folgenden finden Sie ein Beispiel für einen Protokolleintrag für eine erfolgreiche Verbindung mit einem HTTPS Listener, bei dem der Modus für die gegenseitige TLS Überprüfung auf Port 443 aktiviert ist:
2023-10-04T17:05:15.514108Z 203.0.113.1 36280 443 TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 4.036 "CN=amazondomains.com,O=endEntity,L=Seattle,ST=Washington,C=US" NotBefore=2023-09-21T22:43:21Z;NotAfter=2026-06-17T22:43:21Z FEF257372D5C14D4 Success
Im Folgenden finden Sie ein Beispiel für einen Protokolleintrag für eine fehlgeschlagene Verbindung mit einem HTTPS Listener, bei dem der Modus für die gegenseitige TLS Überprüfung auf Port 443 aktiviert ist. :
2023-10-04T17:05:15.514108Z 203.0.113.1 36280 443 TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 - "CN=amazondomains.com,O=endEntity,L=Seattle,ST=Washington,C=US" NotBefore=2023-09-21T22:43:21Z;NotAfter=2026-06-17T22:43:21Z FEF257372D5C14D4 Failed:ClientCertUntrusted
Verbindungsprotokolldateien werden verarbeitet
Die Verbindungsprotokolldateien sind komprimiert. Wenn Sie die Dateien mithilfe der Amazon-S3-Konsole öffnen, werden sie dekomprimiert und die Informationen werden angezeigt. Wenn Sie die Dateien herunterladen, müssen Sie sie dekomprimieren, um die Informationen anzuzeigen.
Falls es viele Zugriff auf Ihre Website gibt, kann der Load Balancer Protokolldateien mit mehreren Gigabyte an Daten generieren. Möglicherweise sind Sie nicht in der Lage, eine so große Datenmenge mithilfe von line-by-line Processing zu verarbeiten. Daher müssen Sie möglicherweise Tools zur Datenanalyse verwenden, die parallele Verarbeitungslösungen bieten. Sie können beispielsweise die folgenden Analysetools verwenden, um Verbindungsprotokolle zu analysieren und zu verarbeiten:
-
Amazon Athena ist ein interaktiver Abfrageservice, der es einfach macht, Daten in Amazon S3 mithilfe von Standards SQL zu analysieren.