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.
Konfigurieren der Standardprotokollierung (v2)
Sie können Zugriffsprotokolle (Standardprotokolle) aktivieren, wenn Sie eine Distribution erstellen oder aktualisieren. Die Standardprotokollierung (v2) umfasst die folgenden Funktionen:
-
Senden Sie Zugriffsprotokolle an Amazon CloudWatch Logs, Amazon Data Firehose und Amazon Simple Storage Service (Amazon S3).
-
Auswahl der gewünschten Protokollfelder. Sie können auch eine Teilmenge von Echtzeitzugriffsprotokollfeldern auswählen.
-
Auswahl zusätzlicher Ausgabe-Protokolldateiformate
Wenn Sie Amazon S3 verwenden, verfügen Sie über die folgenden optionalen Funktionen:
-
Senden Sie Protokolle, um sich anzumelden. AWS-Regionen
-
Organisieren Ihrer Protokolle anhand von Partitionierung
-
Aktivieren von Hive-kompatiblen Dateinamen
Weitere Informationen finden Sie unter Senden von Protokollen an Amazon S3.
Führen Sie für den Einstieg in die Standardprotokollierung die folgenden Schritte aus:
-
Richten Sie Ihre erforderlichen Berechtigungen für die angegebenen Personen ein AWS-Service , die Ihre Protokolle erhalten sollen.
-
Konfigurieren Sie die Standardprotokollierung CloudFront über die Konsole oder die CloudWatch API.
-
Zeigen Sie Ihre Zugriffsprotokolle an.
Anmerkung
-
Wenn Sie die Standardprotokollierung (v2) aktivieren, hat dies keine Auswirkungen auf die Standardprotokollierung (Legacy) und verändert sie nicht. Sie können zusätzlich zur Standardprotokollierung (v2) weiterhin die Standardprotokollierung (Legacy) für Ihre Distribution verwenden. Weitere Informationen finden Sie unter Konfigurieren der Standardprotokollierung (Legacy).
-
Wenn Sie die Standardprotokollierung (Legacy) bereits aktiviert haben und die Standardprotokollierung (v2) für Amazon S3 aktivieren möchten, empfehlen wir Ihnen, einen anderen Amazon-S3-Bucket anzugeben oder einen separaten Pfad in demselben Bucket zu verwenden (z. B. ein Protokollpräfix oder eine Partitionierung zu verwenden). Auf diese Weise behalten Sie den Überblick darüber, welche Protokolldateien mit welcher Distribution verknüpft sind, und es wird verhindert, dass sich Protokolldateien gegenseitig überschreiben.
Berechtigungen
CloudFront verwendet CloudWatch bereitgestellte Protokolle zur Bereitstellung von Zugriffsprotokollen. Dazu benötigen Sie Berechtigungen für die angegebenen Daten, AWS-Service sodass Sie die Übermittlung von Protokollen aktivieren können.
Um die erforderlichen Berechtigungen für jedes Protokollierungsziel zu sehen, wählen Sie eines der folgenden Themen im Amazon CloudWatch Logs-Benutzerhandbuch aus.
Nachdem Sie die Berechtigungen für Ihr Protokollierungsziel eingerichtet haben, können Sie die Standardprotokollierung für Ihre Distribution aktivieren.
Anmerkung
CloudFront unterstützt das Senden von Zugriffsprotokollen an verschiedene AWS-Konten (kontenübergreifende). Um die kontoübergreifende Bereitstellung zu ermöglichen, müssen beide Konten (Ihr Konto und das Empfängerkonto) über die erforderlichen Berechtigungen verfügen. Weitere Informationen finden Sie im Aktivieren der Standardprotokollierung für die kontoübergreifende Bereitstellung Abschnitt oder im Beispiel für die kontoübergreifende Lieferung im Amazon CloudWatch Logs-Benutzerhandbuch.
Aktivieren der Standardprotokollierung
Um die Standardprotokollierung zu aktivieren, können Sie die CloudFront Konsole oder die CloudWatch API verwenden.
Inhalt
Aktivieren Sie die Standardprotokollierung (CloudFrontKonsole)
Um die Standardprotokollierung für eine CloudFront Distribution zu aktivieren (Konsole)
-
Verwenden Sie die CloudFront Konsole, um eine bestehende Distribution zu aktualisieren.
-
Wählen Sie die Registerkarte Logging (Protokollierung) aus.
Wählen Sie Hinzufügen und anschließend den Service aus, der Ihre Protokolle erhalten soll:
-
CloudWatch Logs
-
Firehose
-
Amazon S3
-
-
Wählen Sie als Ziel die Ressource für Ihren Service aus. Wenn Sie Ihre Ressource noch nicht erstellt haben, können Sie Erstellen auswählen oder sich die folgende Dokumentation ansehen.
-
Geben Sie für CloudWatch Logs den Namen der Protokollgruppe ein.
-
Geben Sie für Firehose den Firehose-Bereitstellungsdatenstrom ein.
-
Geben Sie für Amazon S3 den Bucket-Namen ein.
Tipp
Um ein Präfix anzugeben, geben Sie das Präfix nach dem Bucket-Namen ein, z. B.
amzn-s3-demo-bucket.s3.amazonaws.com/. Wenn Sie kein Präfix angeben, CloudFront wird automatisch eines für Sie hinzugefügt. Weitere Informationen finden Sie unter Senden von Protokollen an Amazon S3.MyLogPrefix
-
-
Für Zusätzliche Einstellungen – optional können Sie die folgenden Optionen angeben:
-
Wählen Sie unter Feldauswahl die Namen der Protokollfelder aus, die Sie an Ihr Ziel senden möchten. Sie können Zugriffsprotokollfelder und eine Teilmenge von Echtzeitzugriffsprotokollfeldern auswählen.
-
(Nur Amazon S3) Geben Sie für die Partitionierung den Pfad zur Partitionierung Ihrer Protokolldateidaten an.
-
(Nur Amazon S3) Für ein Hive-kompatibles Dateiformat können Sie das Kontrollkästchen aktivieren, um Hive-kompatible S3-Pfade zu verwenden. Dies vereinfacht das Laden neuer Daten in Ihre Hive-kompatiblen Tools.
-
Geben Sie unter Ausgabeformat Ihr bevorzugtes Format an.
Anmerkung
Wenn Sie sich für Parquet entscheiden, fallen für diese Option CloudWatch Gebühren für die Konvertierung Ihrer Zugriffsprotokolle in Apache Parquet an. Weitere Informationen zur Preisgestaltung finden Sie im Abschnitt Vending Logs
. CloudWatch -
Geben Sie unter Feldtrennzeichen an, wie Protokollfelder getrennt werden sollen.
-
-
Führen Sie die Schritte zum Aktualisieren oder Erstellen Ihrer Distribution aus.
-
Um ein weiteres Ziel hinzuzufügen, wiederholen Sie die Schritte 3–6.
-
Vergewissern Sie sich auf der Seite Protokolle, dass der Status der Standardprotokolle neben der Distribution aktiviert lautet.
(Optional) Um die Cookie-Protokollierung zu aktivieren, wählen Sie Verwalten und dann Einstellungen aus, aktivieren Sie die Cookie-Protokollierung und bestätigen Sie Ihre Auswahl anschließend mit Änderungen speichern.
Tipp
Die Cookie-Protokollierung ist eine globale Einstellung, die für die gesamte Standardprotokollierung für Ihre Distribution gilt. Sie können diese Einstellung nicht für separate Bereitstellungsziele überschreiben.
Weitere Informationen zur standardmäßigen Bereitstellung der Protokollierung und den Protokollfeldern finden Sie in der Referenz zur Standardprotokollierung.
Aktivieren Sie die Standardprotokollierung (CloudWatchAPI)
Sie können die CloudWatch API auch verwenden, um die Standardprotokollierung für Ihre Distributionen zu aktivieren.
Hinweise
-
Wenn Sie die CloudWatch API aufrufen, um die Standardprotokollierung zu aktivieren, müssen Sie die Region USA Ost (Nord-Virginia) (
us-east-1) angeben, auch wenn Sie die regionsübergreifende Zustellung an ein anderes Ziel aktivieren möchten. Wenn Sie beispielsweise Ihre Zugriffsprotokolle an einen S3-Bucket in der Region Europa (Irland) () senden möchten, verwenden Sie die CloudWatch API in derus-east-1Region.eu-west-1 -
Es gibt eine zusätzliche Option, um Cookies in die Standardprotokollierung aufzunehmen. In der CloudFront API ist dies der
IncludeCookiesParameter. Wenn Sie die Zugriffsprotokollierung mithilfe der CloudWatch API konfigurieren und angeben, dass Sie Cookies einbeziehen möchten, müssen Sie die CloudFront Konsole oder CloudFront API verwenden, um Ihre Distribution so zu aktualisieren, dass sie Cookies enthält. Andernfalls CloudFront können keine Cookies an Ihr Protokollziel gesendet werden. Weitere Informationen finden Sie unter Protokollierung von Cookies.
Um die Standardprotokollierung für eine Distribution (CloudWatch API) zu aktivieren
-
Nachdem Sie eine Distribution erstellt haben, rufen Sie den Amazon-Ressourcennamen (ARN) ab.
Sie finden den ARN auf der Verteilungsseite in der CloudFront Konsole oder Sie können den GetDistributionAPI-Vorgang verwenden. Ein Distributions-ARN folgt dem Format:
arn:aws:cloudfront::123456789012:distribution/d111111abcdef8 -
Verwenden Sie als Nächstes den CloudWatch PutDeliverySourceAPI-Vorgang, um eine Lieferquelle für die Verteilung zu erstellen.
-
Geben Sie einen Namen für die Bereitstellungsquelle ein.
-
Übergeben Sie den
resourceArnder Distribution. -
Geben Sie unter
logTypeals Typ der erfassten ProtokolleACCESS_LOGSan. -
Beispiel für einen AWS CLI put-delivery-source Befehl
Im Folgenden finden Sie ein Beispiel für die Konfiguration einer Bereitstellungsquelle für eine Distribution.
aws logs put-delivery-source --name S3-delivery --resource-arn arn:aws:cloudfront::123456789012:distribution/d111111abcdef8 --log-type ACCESS_LOGSAusgabe
{ "deliverySource": { "name": "S3-delivery", "arn": "arn:aws:logs:us-east-1:123456789012:delivery-source:S3-delivery", "resourceArns": [ "arn:aws:cloudfront::123456789012:distribution/d111111abcdef8" ], "service": "cloudfront", "logType": "ACCESS_LOGS" } }
-
-
Verwenden Sie den PutDeliveryDestinationAPI-Vorgang, um zu konfigurieren, wo Ihre Protokolle gespeichert werden sollen.
-
Geben Sie unter
destinationResourceArnden ARN des Ziels an. Dies kann eine CloudWatch Logs-Protokollgruppe, ein Firehose-Lieferstream oder ein Amazon S3 S3-Bucket sein. -
Geben Sie unter
outputFormatdas Ausgabeformat für Ihre Protokolle an. -
Beispiel für AWS CLI put-delivery-destination einen Befehl
Im Folgenden finden Sie ein Beispiel für die Konfiguration eines Bereitstellungsziels für einen Amazon-S3-Bucket.
aws logs put-delivery-destination --name S3-destination --delivery-destination-configuration destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucketAusgabe
{ "name": "S3-destination", "arn": "arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination", "deliveryDestinationType": "S3", "deliveryDestinationConfiguration": { "destinationResourceArn": "arn:aws:s3:::amzn-s3-demo-bucket" } }
Anmerkung
Wenn Sie Protokolle kontoübergreifend bereitstellen, müssen Sie den PutDeliveryDestinationPolicyAPI-Vorgang verwenden, um dem Zielkonto eine AWS Identity and Access Management (IAM-) Richtlinie zuzuweisen. Die IAM-Richtlinie ermöglicht die Bereitstellung von einem Konto in einem anderen Konto.
-
-
Verwenden Sie den CreateDeliveryAPI-Vorgang, um die Lieferquelle mit dem Ziel zu verknüpfen, das Sie in den vorherigen Schritten erstellt haben. Diese API-Operation verknüpft die Bereitstellungsquelle mit dem Endziel.
-
Geben Sie unter
deliverySourceNameden Quellnamen an. -
Geben Sie unter
deliveryDestinationArnden ARN für das Bereitstellungsziel an. -
Geben Sie unter
fieldDelimiterdie Zeichenfolge zur Trennung der Protokollfelder an. -
Geben Sie unter
recordFieldsdie gewünschten Protokollfelder an. -
Wenn Sie S3 verwenden, geben Sie an, ob
enableHiveCompatiblePathundsuffixPathverwendet werden sollen.
Beispiel für einen AWS CLI Create-Delivery-Befehl
Im Folgenden finden Sie ein Beispiel für die Erstellung einer Bereitstellung:
aws logs create-delivery --delivery-source-name cf-delivery --delivery-destination-arn arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destinationAusgabe
{ "id": "abcNegnBoTR123", "arn": "arn:aws:logs:us-east-1:123456789012:delivery:abcNegnBoTR123", "deliverySourceName": "cf-delivery", "deliveryDestinationArn": "arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination", "deliveryDestinationType": "S3", "recordFields": [ "date", "time", "x-edge-location", "sc-bytes", "c-ip", "cs-method", "cs(Host)", "cs-uri-stem", "sc-status", "cs(Referer)", "cs(User-Agent)", "cs-uri-query", "cs(Cookie)", "x-edge-result-type", "x-edge-request-id", "x-host-header", "cs-protocol", "cs-bytes", "time-taken", "x-forwarded-for", "ssl-protocol", "ssl-cipher", "x-edge-response-result-type", "cs-protocol-version", "fle-status", "fle-encrypted-fields", "c-port", "time-to-first-byte", "x-edge-detailed-result-type", "sc-content-type", "sc-content-len", "sc-range-start", "sc-range-end", "c-country", "cache-behavior-path-pattern" ], "fieldDelimiter": "" } -
-
Vergewissern Sie sich in der CloudFront Konsole auf der Seite Logs, dass der Status der Standardprotokolle neben der Distribution auf Aktiviert steht.
Weitere Informationen zur standardmäßigen Bereitstellung der Protokollierung und den Protokollfeldern finden Sie in der Referenz zur Standardprotokollierung.
Anmerkung
Um die Standardprotokollierung (v2) für die CloudFront Verwendung zu aktivieren AWS CloudFormation, können Sie die folgenden CloudWatch Protokolleigenschaften verwenden:
Das ResourceArn ist die CloudFront Distribution und LogType muss ACCESS_LOGS der unterstützte Protokolltyp sein.
Aktivieren der Standardprotokollierung für die kontoübergreifende Bereitstellung
Wenn Sie die Standardprotokollierung für Ihr Konto aktivieren AWS-Konto und Ihre Zugriffsprotokolle an ein anderes Konto weitergeben möchten, stellen Sie sicher, dass Sie das Quellkonto und das Zielkonto korrekt konfigurieren. Das Quellkonto mit der CloudFront Verteilung sendet seine Zugriffsprotokolle an das Zielkonto.
In diesem Beispielverfahren sendet das Quellkonto 111111111111 () seine Zugriffsprotokolle an einen Amazon S3 S3-Bucket im Zielkonto (222222222222). Um Zugriffsprotokolle an einen Amazon-S3-Bucket im Zielkonto zu senden, verwenden Sie die AWS CLI.
Konfigurieren des Zielkontos
Führen Sie für das Zielkonto das folgende Verfahren aus.
So konfigurieren Sie das Zielkonto
-
Um das Ziel für die Protokollbereitstellung zu erstellen, können Sie den folgenden AWS CLI -Befehl eingeben. In diesem Beispiel wird die Zeichenfolge
verwendet, um ein Präfix für Ihre Zugriffsprotokolle zu erstellen.MyLogPrefixaws logs put-delivery-destination --namecloudfront-delivery-destination--delivery-destination-configuration "destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs/MyLogPrefix"Ausgabe
{ "deliveryDestination": { "name": "cloudfront-delivery-destination", "arn": "arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination", "deliveryDestinationType": "S3", "deliveryDestinationConfiguration": {"destinationResourceArn": "arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs/"} } }MyLogPrefixAnmerkung
Wenn Sie einen S3-Bucket ohne Präfix angeben, CloudFront wird automatisch das
AWSLogs/als Präfix angehängt, das<account-ID>/CloudFrontsuffixPathim S3-Lieferziel erscheint. Weitere Informationen finden Sie unter S3 DeliveryConfiguration. -
Fügen Sie die Ressourcenrichtlinie für das Protokollbereitstellungsziel hinzu, um dem Quellkonto die Protokollbereitstellung zu ermöglichen.
Ersetzen Sie in der folgenden Richtlinie
111111111111durch die Quellkonto-ID und geben Sie den Lieferziel-ARN aus der Ausgabe in Schritt 1 an. -
Speichern Sie die Datei, z. B.
deliverypolicy.json. -
Geben Sie den folgenden AWS CLI Befehl ein, um die vorherige Richtlinie an das Lieferziel anzuhängen.
aws logs put-delivery-destination-policy --delivery-destination-namecloudfront-delivery-destination--delivery-destination-policy file://deliverypolicy.json -
Fügen Sie die folgende Erklärung zur Richtlinie des Ziel-Buckets in Amazon S3 hinzu und ersetzen Sie dabei den Ressourcen-ARN und die Quellkonto-ID. Diese Richtlinie ermöglicht es dem Service-Prinzipal
delivery.logs.amazonaws.com, die Aktions3:PutObjectauszuführen.{ "Sid": "AWSLogsDeliveryWrite", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": "111111111111" }, "ArnLike": {"aws:SourceArn": "arn:aws:logs:us-east-1:111111111111:delivery-source:*"} } } -
Wenn Sie dies AWS KMS für Ihren Bucket verwenden, fügen Sie der KMS-Schlüsselrichtlinie die folgende Anweisung hinzu, um dem
delivery---logs.amazonaws.com.rproxy.govskope.caDienstprinzipal Berechtigungen zu erteilen.{ "Sid": "Allow Logs Delivery to use the key", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": {"aws:SourceAccount": "111111111111"}, "ArnLike": {"aws:SourceArn": "arn:aws:logs:us-east-1:111111111111:delivery-source:*"} } }
Konfigurieren des Quellkontos
Gehen Sie nach der Konfiguration des Zielkontos wie folgt vor, um die Bereitstellungsquelle zu erstellen und die Protokollierung für die Distribution im Quellkonto zu aktivieren.
So konfigurieren Sie das Quellkonto
-
Erstellen Sie eine Zustellungsquelle für die CloudFront Standardprotokollierung, sodass Sie Protokolldateien an CloudWatch Logs senden können.
Sie können den folgenden AWS CLI Befehl eingeben und dabei den Namen und den ARN Ihrer Distribution ersetzen.
aws logs put-delivery-source --names3-cf-delivery--resource-arn arn:aws:cloudfront::111111111111:distribution/E1TR1RHV123ABC--log-type ACCESS_LOGSAusgabe
{ "deliverySource": { "name": "s3-cf-delivery", "arn": "arn:aws:logs:us-east-1:111111111111:delivery-source:s3-cf-delivery", "resourceArns": ["arn:aws:cloudfront::111111111111:distribution/E1TR1RHV123ABC"], "service": "cloudfront", "logType": "ACCESS_LOGS" } } -
Erstellen Sie eine Bereitstellung, um die Protokollbereitstellungsquelle des Quellkontos dem Protokollbereitstellungsziel des Zielkontos zuzuordnen.
Geben Sie im folgenden AWS CLI Befehl den Lieferziel-ARN aus der Ausgabe in Schritt 1: Zielkonto konfigurieren an.
aws logs create-delivery --delivery-source-names3-cf-delivery--delivery-destination-arn arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destinationAusgabe
{ "delivery": { "id": "OPmOpLahVzhx1234", "arn": "arn:aws:logs:us-east-1:111111111111:delivery:OPmOpLahVzhx1234", "deliverySourceName": "s3-cf-delivery", "deliveryDestinationArn": "arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination", "deliveryDestinationType": "S3", "recordFields": [ "date", "time", "x-edge-location", "sc-bytes", "c-ip", "cs-method", "cs(Host)", "cs-uri-stem", "sc-status", "cs(Referer)", "cs(User-Agent)", "cs-uri-query", "cs(Cookie)", "x-edge-result-type", "x-edge-request-id", "x-host-header", "cs-protocol", "cs-bytes", "time-taken", "x-forwarded-for", "ssl-protocol", "ssl-cipher", "x-edge-response-result-type", "cs-protocol-version", "fle-status", "fle-encrypted-fields", "c-port", "time-to-first-byte", "x-edge-detailed-result-type", "sc-content-type", "sc-content-len", "sc-range-start", "sc-range-end", "c-country", "cache-behavior-path-pattern" ], "fieldDelimiter": "\t" } } -
Überprüfen Sie, ob die kontoübergreifende Bereitstellung erfolgreich war.
-
Melden Sie sich
sourceüber das Konto bei der CloudFront Konsole an und wählen Sie Ihre Distribution aus. Auf der Registerkarte Protokollierung finden Sie unter Typ einen Eintrag, der für die kontoübergreifende S3-Protokollbereitstellung erstellt wurde. -
Melden Sie sich
destinationüber das Konto bei der Amazon S3-Konsole an und wählen Sie Ihren Amazon S3 S3-Bucket aus. Sie werden das Präfixim Bucket-Namen und in allen Zugriffsprotokollen sehen, die an diesen Ordner übermittelt wurden.MyLogPrefix
-
Ausgabedateiformat
Je nachdem, welches Bereitstellungsziel Sie auswählen, können Sie eines der folgenden Formate für die Protokolldateien angeben.
-
JSON
-
Plain
-
w3c
-
Raw
-
Parquet (nur Amazon S3)
Anmerkung
Sie können das Ausgabeformat nur festlegen, wenn Sie das Bereitstellungsziel zum ersten Mal erstellen. Diese kann später nicht mehr aktualisiert werden. Um das Ausgabeformat zu ändern, löschen Sie die Bereitstellung und erstellen Sie eine neue.
Weitere Informationen finden Sie PutDeliveryDestinationin der Amazon CloudWatch Logs API-Referenz.
Bearbeiten der Standardprotokollierungseinstellungen
Sie können die Protokollierung mithilfe der CloudFront Konsole
Weitere Informationen finden Sie unter den folgenden Themen:
-
Informationen zum Aktualisieren einer Distribution mithilfe der CloudFront Konsole finden Sie unterEine Verteilung aktualisieren.
-
Informationen zum Aktualisieren einer Distribution mithilfe der CloudFront API finden Sie UpdateDistributionin der Amazon CloudFront API-Referenz.
-
Weitere Informationen zu CloudWatch Logs-API-Vorgängen finden Sie in der Amazon CloudWatch Logs API-Referenz.
Zugriffsprotokollfelder
Sie können dieselben Protokollfelder auswählen, die die Standardprotokollierung (Legacy) unterstützt. Weitere Informationen finden Sie unter Protokolldateifelder.
Darüber hinaus können Sie die folgenden Protokollfelder für den Echtzeitzugriff auswählen.
-
timestamp(ms)– der Zeitstempel in Millisekunden -
origin-fbl— Die Anzahl der Sekunden der Latenz im ersten Byte zwischen CloudFront und Ihrem Ursprung. -
origin-lbl— Die Anzahl der Sekunden der Latenz im letzten Byte zwischen CloudFront und Ihrem Ursprung. -
asn– die autonome Systemnummer (ASN) des Viewers c-country– ein Ländercode, der den geografischen Standort des Viewers darstellt und durch die IP-Adresse des Viewers festgelegt wird. Die Liste der Ländercodes finden Sie unter ISO 3166-1 alpha-2. cache-behavior-path-pattern– das Pfadmuster, das das Cacheverhalten identifiziert, das der Viewer-Anforderung entspricht
Sendet Logs an Logs CloudWatch
Um Logs an CloudWatch Logs zu senden, erstellen oder verwenden Sie eine bestehende CloudWatch Logs-Protokollgruppe. Weitere Informationen zur Konfiguration einer CloudWatch Logs-Log-Gruppe finden Sie unter Arbeiten mit Log-Gruppen und Log-Streams.
Nach dem Erstellen Ihrer Protokollgruppe benötigen Sie die erforderlichen Berechtigungen zur Ausführung der Standardprotokollierung. Weitere Informationen zu den erforderlichen Berechtigungen finden Sie unter An Logs sent to CloudWatch Logs im Amazon CloudWatch Logs-Benutzerhandbuch.
Hinweise
-
Wenn Sie den Namen der CloudWatch Logs-Protokollgruppe angeben, verwenden Sie nur das Regex-Muster.
[\w-]Weitere Informationen zur PutDeliveryDestinationAPI-Operation finden Sie in der Amazon CloudWatch Logs API-Referenz. -
Stellen Sie sicher, dass Ihre Ressourcenrichtlinie für die Protokollgruppe die Größenbeschränkung nicht überschreitet. Weitere Informationen finden Sie im Abschnitt Überlegungen zur Größenbeschränkung der Ressourcenrichtlinie für Protokollgruppen im Thema CloudWatch Protokolle.
Beispiel für ein Zugriffsprotokoll, das an CloudWatch Logs gesendet wurde
{ "date": "2024-11-14", "time": "21:34:06", "x-edge-location": "SOF50-P2", "asn": "16509", "timestamp(ms)": "1731620046814", "origin-fbl": "0.251", "origin-lbl": "0.251", "x-host-header": "d111111abcdef8.cloudfront.net", "cs(Cookie)": "examplecookie=value" }
Senden von Protokollen an Firehose
Um Protokolle an Firehose zu senden, erstellen Sie einen Firehose-Bereitstellungsdatenstrom oder verwenden Sie einen bereits vorhandenen. Geben Sie dann den Firehose-Bereitstellungsdatenstrom als Protokollbereitstellungsziel an. Sie müssen einen Firehose-Bereitstellungsdatenstrom für die Region USA Ost (Nord-Virginia) us-east-1 angeben.
Weitere Informationen zum Erstellen eines Bereitstellungsdatenstroms finden Sie unter Erstellen eines Bereitstellungsdatenstroms für Amazon Data Firehose.
Nach dem Erstellen Ihres Bereitstellungsdatenstroms benötigen Sie die erforderlichen Berechtigungen zur Ausführung der Standardprotokollierung. Weitere Informationen finden Sie unter An Firehose gesendete Logs im Amazon CloudWatch Logs-Benutzerhandbuch.
Anmerkung
Wenn Sie den Namen des Firehose-Datenstroms angeben, verwenden Sie nur das Regex-Muster [\w-]. Weitere Informationen zur PutDeliveryDestinationAPI-Operation finden Sie in der Amazon CloudWatch Logs API-Referenz.
Beispiel für ein an Firehose gesendetes Zugriffsprotokoll
{"date":"2024-11-15","time":"19:45:51","x-edge-location":"SOF50-P2","asn":"16509","timestamp(ms)":"1731699951183","origin-fbl":"0.254","origin-lbl":"0.254","x-host-header":"d111111abcdef8.cloudfront.net","cs(Cookie)":"examplecookie=value"} {"date":"2024-11-15","time":"19:45:52","x-edge-location":"SOF50-P2","asn":"16509","timestamp(ms)":"1731699952950","origin-fbl":"0.125","origin-lbl":"0.125","x-host-header":"d111111abcdef8.cloudfront.net","cs(Cookie)":"examplecookie=value"}
Senden von Protokollen an Amazon S3
Um Ihre Zugriffsprotokolle an Amazon S3 zu senden, erstellen Sie einen S3-Bucket oder verwenden Sie einen bereits vorhandenen. Wenn Sie die Anmeldung aktivieren CloudFront, geben Sie den Bucket-Namen an. Weitere Informationen zum Erstellen eines Buckets finden Sie unter Erstellen von Buckets im Benutzerhandbuch für Amazon Simple Storage Service.
Nach dem Erstellen Ihres Buckets benötigen Sie die erforderlichen Berechtigungen zur Ausführung der Standardprotokollierung. Weitere Informationen finden Sie unter An Amazon S3 gesendete Logs im Amazon CloudWatch Logs-Benutzerhandbuch.
-
Nachdem Sie die Protokollierung aktiviert haben, AWS werden automatisch die erforderlichen Bucket-Richtlinien für Sie hinzugefügt.
-
Sie können auch S3-Buckets in den Opt-In- AWS-Regionen verwenden.
Anmerkung
Wenn Sie die Standardprotokollierung (Legacy) bereits aktiviert haben und die Standardprotokollierung (v2) für Amazon S3 aktivieren möchten, empfehlen wir Ihnen, einen anderen Amazon-S3-Bucket anzugeben oder einen separaten Pfad in demselben Bucket zu verwenden (z. B. ein Protokollpräfix oder eine Partitionierung zu verwenden). Auf diese Weise behalten Sie den Überblick darüber, welche Protokolldateien mit welcher Distribution verknüpft sind, und es wird verhindert, dass sich Protokolldateien gegenseitig überschreiben.
Themen
Angeben eines S3-Buckets
Beachten Sie Folgendes, wenn Sie einen S3-Bucket als Bereitstellungsziel angeben.
Der S3-Bucket-Name kann nur das Regex-Muster [\w-] verwenden. Weitere Informationen zur PutDeliveryDestinationAPI-Operation finden Sie in der Amazon CloudWatch Logs API-Referenz.
Wenn Sie ein Präfix für Ihren S3-Bucket angegeben haben, werden Ihre Protokolle unter diesem Pfad angezeigt. Wenn Sie kein Präfix angeben, CloudFront wird das AWSLogs/ Präfix automatisch für Sie angehängt. {account-id}/CloudFront
Weitere Informationen finden Sie unter Beispielpfade für Zugriffsprotokolle.
Partitionierung
Sie können die Partitionierung verwenden, um Ihre Zugriffsprotokolle zu organisieren, wenn sie CloudFront an Ihren S3-Bucket gesendet werden. Dies hilft Ihnen, Ihre Zugriffsprotokolle auf der Grundlage des von Ihnen gewünschten Pfads zu organisieren und zu finden.
Sie können die folgenden Variablen verwenden, um einen Ordnerpfad zu erstellen.
-
{DistributionId}oder{distributionid} -
{yyyy} -
{MM} -
{dd} -
{HH} -
{accountid}
Sie können eine beliebige Anzahl von Variablen verwenden und Ordnernamen in Ihrem Pfad angeben. CloudFrontverwendet dann diesen Pfad, um eine Ordnerstruktur für Sie im S3-Bucket zu erstellen.
Beispiele
-
my_distribution_log_data/{DistributionId}/logs -
/cloudfront/{DistributionId}/my_distribution_log_data/{yyyy}/{MM}/{dd}/{HH}/logs
Anmerkung
Sie können eine der beiden Variablen für die Distributions-ID im Suffixpfad verwenden. Wenn Sie jedoch Zugriffsprotokolle an senden, müssen Sie die {distributionid} Variable verwenden AWS Glue, da AWS Glue erwartet wird, dass Partitionsnamen in Kleinbuchstaben geschrieben werden. Aktualisieren Sie Ihre bestehende Protokollkonfiguration, um CloudFront sie durch zu {DistributionId} ersetzen{distributionid}.
Hive-kompatibles Dateinamensformat
Sie können diese Option verwenden, damit S3-Objekte, die bereitgestellte Zugriffsprotokolle enthalten, eine Präfixstruktur verwenden, die die Integration mit Apache Hive ermöglicht. Weitere Informationen finden Sie unter CreateDelivery-API-Operation.
Beispiel
/cloudfront/DistributionId={DistributionId}/my_distribution_log_data/year={yyyy}/month={MM}/day={dd}/hour={HH}/logs
Weitere Informationen zur Partitionierung und zu den Hive-kompatiblen Optionen finden Sie unter dem DeliveryConfigurationS3-Element in der Amazon CloudWatch Logs API-Referenz.
Beispielpfade für Zugriffsprotokolle
Wenn Sie einen S3-Bucket als Ziel angeben, können Sie die folgenden Optionen verwenden, um den Pfad zu Ihren Zugriffsprotokollen zu erstellen:
-
Ein Amazon-S3-Bucket mit oder ohne Präfix
-
Partitionierung, indem Sie eine CloudFront bereitgestellte Variable verwenden oder eine eigene eingeben
-
Aktivieren der Hive-Kompatibilität
Die folgenden Tabellen zeigen, wie Ihre Zugriffsprotokolle in Ihrem Bucket angezeigt werden, abhängig von den ausgewählten Optionen.
Amazon-S3-Bucket mit Präfix
| Name des Amazon-S3-Buckets | Im Suffixpfad angegebene Partition | Aktualisierter Suffixpfad | Hive-Kompatibilität aktiviert? | Zugriffsprotokolle werden gesendet an |
|---|---|---|---|---|
amzn-s3-demo-bucket/MyLogPrefix |
Keine | Keine | Nein | amzn-s3-demo-bucket/MyLogPrefix/ |
amzn-s3-demo-bucket/MyLogPrefix |
myFolderA/ |
myFolderA/ |
Nein | amzn-s3-demo-bucket/MyLogPrefix/myFolderA/ |
amzn-s3-demo-bucket/MyLogPrefix |
myFolderA/{yyyy} |
myFolderA/{yyyy} |
Ja | amzn-s3-demo-bucket/MyLogPrefix/myFolderA/year=2025 |
Amazon-S3-Bucket ohne Präfix
| Name des Amazon-S3-Buckets | Im Suffixpfad angegebene Partition | Aktualisierter Suffixpfad | Hive-Kompatibilität aktiviert? | Zugriffsprotokolle werden gesendet an |
|---|---|---|---|---|
amzn-s3-demo-bucket |
Keine | AWSLogs/{account-id}/CloudFront/ |
Nein | amzn-s3-demo-bucket/AWSLogs/ |
amzn-s3-demo-bucket |
myFolderA/ |
AWSLogs/{account-id}/CloudFront/myFolderA/ |
Nein | amzn-s3-demo-bucket/AWSLogs/ |
amzn-s3-demo-bucket |
myFolderA/ |
AWSLogs/{account-id}/CloudFront/myFolderA/ |
Ja | amzn-s3-demo-bucket/AWSLogs/aws-account-id= |
amzn-s3-demo-bucket |
myFolderA/{yyyy} |
AWSLogs/{account-id}/CloudFront/myFolderA/{yyyy} |
Ja | amzn-s3-demo-bucket/AWSLogs/aws-account-id= |
AWS-Konto ID als Partition
| Name des Amazon-S3-Buckets | Im Suffixpfad angegebene Partition | Aktualisierter Suffixpfad | Hive-Kompatibilität aktiviert? | Zugriffsprotokolle werden gesendet an |
|---|---|---|---|---|
amzn-s3-demo-bucket |
Keine | AWSLogs/{account-id}/CloudFront/ |
Ja | amzn-s3-demo-bucket/AWSLogs/aws-account-id= |
amzn-s3-demo-bucket |
myFolderA/{accountid} |
AWSLogs/{account-id}/CloudFront/myFolderA/{accountid} |
Ja | amzn-s3-demo-bucket/AWSLogs/aws-account-id= |
Hinweise
-
Die
{account-id}Variable ist reserviert für CloudFront. CloudFrontfügt diese Variable automatisch zu Ihrem Suffixpfad hinzu, wenn Sie einen Amazon S3 S3-Bucket ohne Präfix angeben. Wenn Ihre Protokolle Hive-kompatibel sind, wird diese Variable alsaws-account-idangezeigt. -
Sie können die
{accountid}Variable verwenden, CloudFront um Ihre Konto-ID zum Suffixpfad hinzuzufügen. Wenn Ihre Protokolle Hive-kompatibel sind, wird diese Variable alsaccountidangezeigt. -
Weitere Informationen zum Suffixpfad finden Sie unter S3. DeliveryConfiguration
Beispiel eines an Amazon S3 gesendeten Zugriffsprotokolls
#Fields: date time x-edge-location asn timestamp(ms) x-host-header cs(Cookie) 2024-11-14 22:30:25 SOF50-P2 16509 1731623425421 d111111abcdef8.cloudfront.net examplecookie=value2
Deaktivieren der Standardprotokollierung
Sie können die Standardprotokollierung für Ihre Distribution deaktivieren, wenn Sie sie nicht mehr benötigen.
So deaktivieren Sie die Standardprotokollierung
-
Melden Sie sich in der CloudFront -Konsole an.
-
Wählen Sie Distribution und dann Ihre Distributions-ID aus.
-
Wählen Sie Protokollierung und wählen Sie dann unter Zugriffsprotokollziele das Ziel aus.
-
Wählen Sie Verwalten und dann Löschen aus.
-
Wiederholen Sie den vorherigen Schritt, wenn Sie mehr als eine Standardprotokollierung haben.
Anmerkung
Wenn Sie die Standardprotokollierung aus der CloudFront Konsole löschen, werden durch diese Aktion nur die Lieferung und das Übermittlungsziel gelöscht. Die Lieferquelle wird dadurch nicht aus Ihrer AWS-Konto gelöscht. Um eine Bereitstellungsquelle zu löschen, geben Sie den Namen der Bereitstellungsquelle im Befehl aws logs delete-delivery-source --name DeliverySourceName an. Weitere Informationen finden Sie DeleteDeliverySourcein der Amazon CloudWatch Logs API-Referenz.
Fehlerbehebung
Verwenden Sie die folgenden Informationen, um häufig auftretende Probleme zu beheben, wenn Sie mit der CloudFront Standardprotokollierung (v2) arbeiten.
Bereitstellungsquelle bereits vorhanden
Wenn Sie die Standardprotokollierung für eine Distribution aktivieren, erstellen Sie eine Bereitstellungsquelle. Anschließend verwenden Sie diese Versandquelle, um Lieferungen an den gewünschten Zieltyp zu erstellen: CloudWatch Logs, Firehose, Amazon S3. Derzeit ist nur eine Bereitstellungsquelle pro Distribution möglich. Wenn Sie versuchen, eine weitere Bereitstellungsquelle für dieselbe Distribution zu erstellen, wird die folgende Fehlermeldung angezeigt.
This ResourceId has already been used in another Delivery Source in this account
Um eine weitere Bereitstellungsquelle zu erstellen, löschen Sie zuerst die vorhandene. Weitere Informationen finden Sie DeleteDeliverySourcein der Amazon CloudWatch Logs API-Referenz.
Ich habe den Suffixpfad geändert und der Amazon-S3-Bucket kann meine Protokolle nicht empfangen
Wenn Sie die Standardprotokollierung (v2) aktiviert haben und einen Bucket-ARN ohne Präfix angeben, CloudFront wird der folgende Standard an den Suffixpfad angehängt:. AWSLogs/{account-id}/CloudFront Wenn Sie die CloudFront Konsole oder den UpdateDeliveryConfigurationAPI-Vorgang verwenden, um einen anderen Suffixpfad anzugeben, müssen Sie die Amazon S3 S3-Bucket-Richtlinie aktualisieren, sodass sie denselben Pfad verwendet.
Beispiel: Aktualisieren des Suffixpfads
-
Ihr Standard-Suffixpfad ist
AWSLogs/{account-id}/CloudFrontund Sie ersetzen ihn durchmyFolderA. -
Da sich Ihr neuer Suffixpfad von dem in der Richtlinie für den Amazon-S3-Bucket angegebenen Pfad unterscheidet, werden Ihre Zugriffsprotokolle nicht übermittelt.
-
Sie können einen der folgenden Schritte ausführen:
-
Aktualisieren Sie die Berechtigung des Amazon-S3-Buckets von
amzn-s3-demo-bucket/AWSLogs/auf<your-account-ID>/CloudFront/*amzn-s3-demo-bucket/myFolderA/*. -
Aktualisieren Sie Ihre Protokollierungskonfiguration, um wieder das Standardsuffix
AWSLogs/{account-id}/CloudFrontzu verwenden.
-
Weitere Informationen finden Sie unter Berechtigungen.
Löschen von Protokolldateien
CloudFront löscht Protokolldateien nicht automatisch von Ihrem Ziel. Weitere Informationen zum Löschen von Protokolldateien finden Sie in den folgenden Themen:
Amazon S3
-
Löschen von Objekten im Konsolen-Benutzerhandbuch für Amazon Simple Storage Service
CloudWatch Logs
-
Arbeiten mit Protokollgruppen und Protokollstreams im Amazon CloudWatch Logs-Benutzerhandbuch
-
DeleteLogGroupin der Amazon CloudWatch Logs API-Referenz
Firehose
-
DeleteDeliveryStreamin der Amazon Data Firehose API-Referenz
Preisgestaltung
CloudFront berechnet keine Gebühren für die Aktivierung von Standardprotokollen. Je nach dem von Ihnen ausgewählten Ziel für die Protokollbereitstellung können jedoch Gebühren für die Bereitstellung, Erfassung, Speicherung oder den Zugriff anfallen. Weitere Informationen finden Sie unter Amazon CloudWatch Logs Pricing
Weitere Informationen zu den jeweiligen AWS-Service Preisen finden Sie in den folgenden Themen:
-
Anmerkung
Für die Übertragung von Protokolldateien an Amazon S3 fallen keine zusätzlichen Gebühren an, obwohl Ihnen Amazon S3 Gebühren für die Speicherung und den Zugriff auf die Protokolldateien berechnet. Wenn Sie die Parquet-Option aktivieren, um Ihre Zugriffsprotokolle in Apache Parquet zu konvertieren, fallen für diese Option CloudWatch Gebühren an. Weitere Informationen zur Preisgestaltung finden Sie im Abschnitt Vending Logs
. CloudWatch