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 Sie die Standardprotokollierung (v2)
Sie können die Standardprotokollierung 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).
-
Wählen Sie die gewünschten Protokollfelder aus. Sie können auch eine Teilmenge von Echtzeit-Protokollfeldern auswählen.
-
Wählen Sie zusätzliche Ausgabe-Protokolldateiformate aus.
Wenn Sie Amazon S3 verwenden, stehen Ihnen die folgenden optionalen Funktionen zur Verfügung:
-
Senden Sie Protokolle, um sich anzumelden AWS-Regionen.
-
Organisieren Sie Ihre Logs mit Partitionierung.
-
Aktivieren Sie Hive-kompatible Dateinamen.
Weitere Informationen finden Sie unter Protokolle an Amazon S3 senden.
Gehen Sie wie folgt vor, um mit der Standardprotokollierung zu beginnen:
-
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.
-
Sehen Sie sich Ihre Zugriffsprotokolle an.
Anmerkung
-
Wenn Sie die Standardprotokollierung (v2) aktivieren, hat dies keine Auswirkungen auf die Standardprotokollierung (Legacy) oder ä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 Standardprotokollierung konfigurieren (Legacy).
-
Wenn Sie die Standardprotokollierung (Legacy) bereits aktiviert haben und die Standardprotokollierung (v2) für Amazon S3 aktivieren möchten, empfehlen wir, dass Sie einen anderen Amazon S3 S3-Bucket angeben oder einen separaten Pfad in demselben Bucket verwenden (z. B. ein Protokollpräfix oder eine Partitionierung verwenden). Auf diese Weise behalten Sie den Überblick darüber, welche Protokolldateien mit welcher Distribution verknüpft sind, und verhindert, dass sich Protokolldateien gegenseitig überschreiben.
Berechtigungen
CloudFront verwendet CloudWatch ausgelieferte Protokolle, um Zugriffsprotokolle zu übermitteln. 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 Konten AWS-Konten (Cross-Accounts). Um die kontoübergreifende Zustellung 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 Sie die Standardprotokollierung für die kontoübergreifende Übermittlung Abschnitt oder im Beispiel für die kontoübergreifende Lieferung im Amazon CloudWatch Logs-Benutzerhandbuch.
Aktivieren Sie die 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 Dienst aus, der Ihre Logs erhalten soll:
-
CloudWatch Logs
-
Firehose
-
Amazon S3
-
-
Wählen Sie für das Ziel die Ressource für Ihren Service aus. Wenn Sie Ihre Ressource noch nicht erstellt haben, können Sie Erstellen wä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-Lieferstream 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.
amzn-s3-demo-bucket.s3.amazonaws.com/
B. Wenn Sie kein Präfix angeben, CloudFront wird automatisch eines für Sie hinzugefügt. Weitere Informationen finden Sie unter Protokolle an Amazon S3 senden.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 Echtzeit-Protokollfeldern 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 Parquet wählen, fallen für diese Option CloudWatch Gebühren für die Konvertierung Ihrer Zugriffsprotokolle nach 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 aus, um Ihre Distribution zu aktualisieren oder zu erstellen.
-
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 Verteilung aktiviert lautet.
(Optional) Um die Cookie-Protokollierung zu aktivieren, wählen Sie „Verwalten“, „Einstellungen“ und aktivieren Sie die Cookie-Protokollierung. Wählen Sie dann „Ä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 Lieferziele überschreiben.
Weitere Informationen zu den standardmäßigen Versand- und Protokollfeldern für die Protokollierung finden Sie unterReferenz 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-1
Region.eu-west-1
-
Es gibt eine zusätzliche Option, um Cookies in die Standardprotokollierung aufzunehmen. In der CloudFront API ist dies der
IncludeCookies
Parameter. 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 Distribution-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 Lieferquelle ein.
-
Übergeben
resourceArn
Sie die Verteilung. -
Geben Sie für
logType
ACCESS_LOGS
den Typ der Protokolle an, die gesammelt werden. -
Beispiel für einen AWS CLI put-delivery-source Befehl
Im Folgenden finden Sie ein Beispiel für die Konfiguration einer Zustellungsquelle für eine Distribution.
aws logs put-delivery-source --name S3-delivery --resource-arn arn:aws:cloudfront::123456789012:distribution/d111111abcdef8 --log-type ACCESS_LOGS
Ausgabe
{ "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 für
destinationResourceArn
den ARN des Ziels an. Dies kann eine CloudWatch Logs-Protokollgruppe, ein Firehose-Lieferstream oder ein Amazon S3 S3-Bucket sein. -
Geben Sie für
outputFormat
das Ausgabeformat für Ihre Logs an. -
Beispiel für einen AWS CLI put-delivery-destination Befehl
Im Folgenden finden Sie ein Beispiel für die Konfiguration eines Lieferziels für einen Amazon S3 S3-Bucket.
aws logs put-delivery-destination --name S3-destination --delivery-destination-configuration destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucket
Ausgabe
{ "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 Übertragung von einem Konto zu 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. Dieser API-Vorgang verknüpft die Lieferquelle mit dem Endziel.
-
Geben Sie für
deliverySourceName
den Quellnamen an. -
Geben Sie für
deliveryDestinationArn
den ARN für das Lieferziel an. -
Geben Sie für
fieldDelimiter
die einzelnen Protokollfelder die Zeichenfolge an. -
Geben Sie für
recordFields
die gewünschten Protokollfelder an. -
Wenn Sie S3 verwenden, geben Sie an, ob
enableHiveCompatiblePath
und verwendet werden sollsuffixPath
.
Beispiel für einen AWS CLI Create-Delivery-Befehl
Im Folgenden finden Sie ein Beispiel für die Erstellung einer Lieferung.
aws logs create-delivery --delivery-source-name cf-delivery --delivery-destination-arn arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination
Ausgabe
{ "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 Protokolle, dass der Standardprotokollstatus neben der Verteilung auf Aktiviert steht.
Weitere Informationen zur standardmäßigen Übermittlung der Protokollierung und zu den Protokollfeldern finden Sie unterReferenz 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
dem unterstützten Protokolltyp entsprechen.
Aktivieren Sie die Standardprotokollierung für die kontoübergreifende Übermittlung
Wenn Sie die Standardprotokollierung für Ihr Konto aktivieren AWS-Konto und Ihre Zugriffsprotokolle an ein anderes Konto senden 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 S3-Bucket im Zielkonto zu senden, verwenden Sie den AWS CLI.
Konfigurieren Sie das Zielkonto
Führen Sie für das Zielkonto das folgende Verfahren aus.
Um das Zielkonto zu konfigurieren
-
Um das Ziel für die Protokollzustellung 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.MyLogPrefix
aws logs put-delivery-destination --name
cloudfront-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/
"} } }MyLogPrefix
Anmerkung
Wenn Sie einen S3-Bucket ohne Präfix angeben, CloudFront wird automatisch das
AWSLogs/
als Präfix angehängt, das<account-ID>
/CloudFrontsuffixPath
im S3-Lieferziel erscheint. Weitere Informationen finden Sie unter S3 DeliveryConfiguration. -
Fügen Sie die Ressourcenrichtlinie für das Ziel der Protokollzustellung hinzu, damit das Quellkonto eine Protokollzustellung erstellen kann.
Ersetzen Sie in der folgenden Richtlinie
111111111111
durch die Quellkonto-ID und geben Sie den Lieferziel-ARN aus der Ausgabe in Schritt 1 an. -
Speichern Sie die Datei, z.
deliverypolicy.json
B. -
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-name
cloudfront-delivery-destination
--delivery-destination-policy file://deliverypolicy.json -
Fügen Sie die folgende Erklärung zur Amazon S3-Ziel-Bucket-Richtlinie hinzu und ersetzen Sie dabei den Ressourcen-ARN und die Quellkonto-ID. Diese Richtlinie ermöglicht es dem
delivery.logs.amazonaws.com
Service Principal, dies3:PutObject
Aktion durchzufü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
Dienstprinzipal 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 Sie das Quellkonto
Gehen Sie nach der Konfiguration des Zielkontos wie folgt vor, um die Zustellungsquelle zu erstellen und die Protokollierung für die Verteilung im Quellkonto zu aktivieren.
Um das Quellkonto zu konfigurieren
-
Erstellen Sie eine Übermittlungsquelle 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 --name
s3-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 Lieferung, um die Protokollzustellungsquelle des Quellkontos und das Protokollübermittlungsziel 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-name
s3-cf-delivery
--delivery-destination-arn arn:aws:logs:us-east-1:222222222222
:delivery-destination:cloudfront-delivery-destination
Ausgabe
{ "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" } }
-
Stellen Sie sicher, dass Ihre kontoübergreifende Lieferung erfolgreich ist.
-
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-Protokollzustellung 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äfix
im Bucket-Namen und in allen Zugriffsprotokollen sehen, die in diesen Ordner gesendet wurden.MyLogPrefix
-
Format der Ausgabedatei
Abhängig vom ausgewählten Lieferziel können Sie eines der folgenden Formate für Protokolldateien angeben:
-
JSON
-
Einfach
-
w3c
-
Raw
-
Parkett (nur Amazon S3)
Anmerkung
Sie können das Ausgabeformat nur festlegen, wenn Sie das Lieferziel zum ersten Mal erstellen. Diese kann später nicht mehr aktualisiert werden. Um das Ausgabeformat zu ändern, löschen Sie die Lieferung und erstellen Sie ein neues.
Weitere Informationen finden Sie PutDeliveryDestinationin der Amazon CloudWatch Logs API-Referenz.
Bearbeiten Sie die Standard-Logging-Einstellungen
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.
Greifen Sie auf Protokollfelder zu
Sie können dieselben Protokollfelder auswählen, die die Standardprotokollierung (Legacy) unterstützt. Weitere Informationen finden Sie unter Felder für Protokolldateien.
Darüber hinaus können Sie die folgenden Echtzeit-Protokollfelder auswählen.
-
timestamp(ms)
— Zeitstempel in Millisekunden. -
origin-fbl
— Die Anzahl der Sekunden der Latenz im ersten Byte zwischen und Ihrem Ursprung. CloudFront -
origin-lbl
— Die Anzahl der Sekunden der Latenz im letzten Byte zwischen CloudFront und Ihrem Ursprung. -
asn
— Die autonome Systemnummer (ASN) des Betrachters. c-country
— Eine Landesvorwahl, die den geografischen Standort des Betrachters angibt, der durch die IP-Adresse des Betrachters bestimmt wird. Die Liste der Ländercodes finden Sie unter ISO 3166-1 alpha-2. cache-behavior-path-pattern
— Das Pfadmuster, das das Cache-Verhalten identifiziert, das der Zuschaueranfrage entsprach.
Sendet Logs an CloudWatch Logs
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.
Nachdem Sie Ihre Protokollgruppe erstellt haben, müssen Sie über die erforderlichen Berechtigungen verfügen, um die Standardprotokollierung zuzulassen. 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 Protokollgruppen die Größenbeschränkung nicht überschreitet. Weitere Informationen finden Sie im Abschnitt Überlegungen zur Größenbeschränkung für die 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" }
Logs an Firehose senden
Um Protokolle an Firehose zu senden, erstellen oder verwenden Sie einen vorhandenen Firehose-Lieferstream.
Informationen zur Erstellung Ihres Lieferstreams finden Sie unter Erstellen eines Amazon Data Firehose-Lieferdatenstroms.
Nachdem Sie Ihren Lieferstream erstellt haben, müssen Sie über die erforderlichen Berechtigungen verfügen, um die Standardprotokollierung zu ermöglichen. Weitere Informationen finden Sie unter An Firehose gesendete Logs im Amazon CloudWatch Logs-Benutzerhandbuch.
Anmerkung
Wenn Sie den Namen des Firehose-Streams 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 Zugriffsprotokoll, das an Firehose gesendet wurde
{"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"}
Protokolle an Amazon S3 senden
Um Ihre Zugriffsprotokolle an Amazon S3 zu senden, erstellen oder verwenden Sie einen vorhandenen S3-Bucket. Wenn Sie die Anmeldung aktivieren CloudFront, geben Sie den Bucket-Namen an. Informationen zum Erstellen eines Buckets finden Sie unter Bucket erstellen im Amazon Simple Storage Service-Benutzerhandbuch.
Nachdem Sie Ihren Bucket erstellt haben, müssen Sie über die erforderlichen Berechtigungen verfügen, um die Standardprotokollierung zu ermöglichen. 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 im AWS-Regionen Opt-In verwenden.
Anmerkung
Wenn Sie die Standardprotokollierung (Legacy) bereits aktiviert haben und die Standardprotokollierung (v2) für Amazon S3 aktivieren möchten, empfehlen wir, dass Sie einen anderen Amazon S3 S3-Bucket angeben oder einen separaten Pfad in demselben Bucket verwenden (z. B. ein Protokollpräfix oder eine Partitionierung verwenden). Auf diese Weise behalten Sie den Überblick darüber, welche Protokolldateien mit welcher Distribution verknüpft sind, und verhindert, dass sich Protokolldateien gegenseitig überschreiben.
Themen
Geben Sie einen S3-Bucket an
Beachten Sie Folgendes, wenn Sie einen S3-Bucket als Lieferziel angeben.
Der S3-Bucket-Name kann nur das Regex-Muster verwenden. [\w-]
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 Logs 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 den Zugriff auf Logs.
Partitionierung
Sie können die Partitionierung verwenden, um Ihre Zugriffsprotokolle zu organisieren, wenn sie CloudFront an Ihren S3-Bucket gesendet werden. Auf diese Weise können Sie Ihre Zugriffsprotokolle auf der Grundlage des gewünschten Pfads organisieren und lokalisieren.
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 als 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 Dateinamenformat
Sie können diese Option verwenden, damit S3-Objekte, die zugestellte 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 den Zugriff auf Logs
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 S3-Bucket mit oder ohne Präfix
-
Partitionierung, indem Sie eine CloudFront bereitgestellte Variable verwenden oder eine eigene eingeben
-
Aktivierung der HIVE-kompatiblen Option
Die folgenden Tabellen zeigen, wie Ihre Zugriffsprotokolle in Ihrem Bucket angezeigt werden, abhängig von den ausgewählten Optionen.
Amazon S3 S3-Bucket mit einem Präfix
Name des Amazon S3 S3-Buckets | Partition, die Sie im Suffixpfad angeben | Der Suffixpfad wurde aktualisiert | Hive-kompatibel 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 S3-Bucket ohne Präfix
Name des Amazon S3 S3-Buckets | Partition, die Sie im Suffixpfad angeben | Der Suffixpfad wurde aktualisiert | Hive-kompatibel 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 S3-Buckets | Partition, die Sie im Suffixpfad angeben | Der Suffixpfad wurde aktualisiert | Hive-kompatibel 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 als angezeigt.aws-account-id
-
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 als angezeigt.accountid
-
Weitere Informationen zum Suffixpfad finden Sie unter S3. DeliveryConfiguration
Beispiel für ein Zugriffsprotokoll, das an Amazon S3 gesendet wurde
#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 Sie die Standardprotokollierung
Sie können die Standardprotokollierung für Ihre Distribution deaktivieren, wenn Sie sie nicht mehr benötigen.
Um die Standardprotokollierung zu deaktivieren
-
Melden Sie sich in der CloudFront -Konsole an.
-
Wählen Sie Vertrieb und dann Ihre Vertriebs-ID aus.
-
Wählen Sie Protokollierung und wählen Sie dann unter Standardprotokollziele das Ziel aus.
-
Wählen Sie „Verwalten“ und anschließend „Löschen“.
-
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 Lieferziel gelöscht. Die Lieferquelle wird dadurch nicht aus Ihrer AWS-Konto gelöscht. Um eine Lieferquelle zu löschen, geben Sie den Namen der Lieferquelle im aws logs delete-delivery-source --name DeliverySourceName
Befehl 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.
Die Lieferquelle ist bereits vorhanden
Wenn Sie die Standardprotokollierung für eine Verteilung aktivieren, erstellen Sie eine Zustellungsquelle. Anschließend verwenden Sie diese Versandquelle, um Lieferungen an den gewünschten Zieltyp zu erstellen: CloudWatch Logs, Firehose, Amazon S3. Derzeit können Sie nur eine Lieferquelle pro Verteilung angeben. Wenn Sie versuchen, eine weitere Zustellungsquelle für dieselbe Verteilung zu erstellen, wird die folgende Fehlermeldung angezeigt.
This ResourceId has already been used in another Delivery Source in this account
Um eine weitere Zustellungsquelle 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 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: Aktualisierung des Suffixpfads
-
Ihr Standard-Suffixpfad ist
AWSLogs/{account-id}/CloudFront
und Sie ersetzen ihn durch.myFolderA
-
Da sich Ihr neuer Suffixpfad von dem in der Amazon S3 S3-Bucket-Richtlinie angegebenen Pfad unterscheidet, werden Ihre Zugriffsprotokolle nicht übermittelt.
-
Sie können einen der folgenden Schritte ausführen:
-
Aktualisieren Sie die Amazon S3 S3-Bucket-Berechtigung von
amzn-s3-demo-bucket/AWSLogs/
bis<your-account-ID>
/CloudFront/*amzn-s3-demo-bucket/myFolderA/*
. -
Aktualisieren Sie Ihre Logging-Konfiguration, um wieder das Standardsuffix zu verwenden:
AWSLogs/{account-id}/CloudFront
-
Weitere Informationen finden Sie unter Berechtigungen.
Löschen Sie die Protokolldateien
CloudFront löscht Protokolldateien nicht automatisch von Ihrem Ziel. Informationen zum Löschen von Protokolldateien finden Sie in den folgenden Themen:
Amazon S3
-
Löschen von Objekten im Amazon Simple Storage Service Console-Benutzerhandbuch
CloudWatch Protokolle
-
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 nachdem, welches Ziel Sie für die Protokollzustellung auswählen, können jedoch Gebühren für die Lieferung, Aufnahme, 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 Protokollzustellung an Amazon S3 fallen keine zusätzlichen Gebühren an, allerdings fallen Amazon S3 S3-Gebühren für die Speicherung und den Zugriff auf die Protokolldateien an. Wenn Sie die Parquet-Option aktivieren, um Ihre Zugriffsprotokolle in Apache Parquet zu konvertieren, fallen für diese Option Gebühren an. CloudWatch Weitere Informationen zur Preisgestaltung finden Sie im Abschnitt Vending Logs
. CloudWatch