Verbindungsprotokolle für Ihren Application Load Balancer - Elastic Load Balancing

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.

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, - auf gesetzt. TLS

tls_cipher

[HTTPSListener] DasSSL/TLS-Protokoll, das bei Handshakes verwendet wird. Dieses Feld ist für Anfragen, die nichtSSL/enthalten, - auf gesetzt. TLS

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: -

  • Die eingehende Anfrage ist keine SSL TLS //-Anfrage.

  • Der Handshake wurde nicht erfolgreich eingerichtet.

leaf_client_cert_subject

[HTTPSlistener] Der Betreffname des Leaf-Client-Zertifikats. Dieses Feld ist auf Folgendes gesetzt-:

  • Die eingehende Anfrage ist keine SSL TLS //-Anfrage.

  • Der Load Balancer-Listener ist nicht mit aktiviertem m TLS konfiguriert.

  • Der Server ist nicht in der Lage, das Leaf-Client-Zertifikat zu laden/zu analysieren.

leaf_client_cert_validity

[HTTPSlistener] Die Gültigkeit des Leaf-Client-Zertifikats mit not-before und not-after im ISO 8601-Format. Dieses Feld ist auf Folgendes gesetzt-:

  • Die eingehende Anfrage ist keine SSL TLS //-Anfrage.

  • Der Load Balancer-Listener ist nicht mit aktiviertem m TLS konfiguriert.

  • Der Server ist nicht in der Lage, das Leaf-Client-Zertifikat zu laden/zu analysieren.

leaf_client_cert_serial_number

[HTTPSlistener] Die Seriennummer des Leaf-Client-Zertifikats. Dieses Feld ist auf Folgendes gesetzt-:

  • Die eingehende Anfrage ist keine SSL TLS //-Anfrage.

  • Der Load Balancer-Listener ist nicht mit aktiviertem m TLS konfiguriert.

  • Der Server ist nicht in der Lage, das Leaf-Client-Zertifikat zu laden/zu analysieren.

tls_verify_status

[HTTPSListener] Der Status der Verbindungsanfrage. Dieser Wert gibt anSuccess, ob die Verbindung erfolgreich hergestellt wurde. Bei einer erfolglosen Verbindung ist der WertFailed:$error_code.

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

ClientCertMaxChainDepthExceeded

Die maximale Tiefe der Client-Zertifikatskette wurde überschritten

ClientCertMaxSizeExceeded

Die maximale Größe des Client-Zertifikats wurde überschritten

ClientCertCrlHit

Das Client-Zertifikat wurde von der CA gesperrt

ClientCertCrlProcessingError

CRLFehler bei der Verarbeitung

ClientCertUntrusted

Das Client-Zertifikat ist nicht vertrauenswürdig

ClientCertNotYetValid

Das Client-Zertifikat ist noch nicht gültig

ClientCertExpired

Das Client-Zertifikat ist abgelaufen

ClientCertTypeUnsupported

Der Typ des Client-Zertifikats wird nicht unterstützt

ClientCertInvalid

Das Client-Zertifikat ist ungültig

ClientCertPurposeInvalid

Der Zweck des Client-Zertifikats ist ungültig

ClientCertRejected

Das Client-Zertifikat wurde durch die benutzerdefinierte Servervalidierung abgelehnt

UnmappedConnectionError

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.

  • Loggly

  • Splunk

  • Sumo Logic