Konfigurieren der Standardprotokollierung (v2) - Amazon CloudFront

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:

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:

  1. Richten Sie Ihre erforderlichen Berechtigungen für die angegebenen Personen ein AWS-Service , die Ihre Protokolle erhalten sollen.

  2. Konfigurieren Sie die Standardprotokollierung CloudFront über die Konsole oder die CloudWatch API.

  3. 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.

Aktivieren Sie die Standardprotokollierung (CloudFrontKonsole)

Um die Standardprotokollierung für eine CloudFront Distribution zu aktivieren (Konsole)
  1. Verwenden Sie die CloudFront Konsole, um eine bestehende Distribution zu aktualisieren.

  2. Wählen Sie die Registerkarte Logging (Protokollierung) aus.

  3. Wählen Sie Hinzufügen und anschließend den Service aus, der Ihre Protokolle erhalten soll:

    • CloudWatch Logs

    • Firehose

    • Amazon S3

  4. 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.

  5. Für Zusätzliche Einstellungen – optional können Sie die folgenden Optionen angeben:

    1. 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.

    2. (Nur Amazon S3) Geben Sie für die Partitionierung den Pfad zur Partitionierung Ihrer Protokolldateidaten an.

    3. (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.

    4. 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

    5. Geben Sie unter Feldtrennzeichen an, wie Protokollfelder getrennt werden sollen.

  6. Führen Sie die Schritte zum Aktualisieren oder Erstellen Ihrer Distribution aus.

  7. Um ein weiteres Ziel hinzuzufügen, wiederholen Sie die Schritte 3–6.

  8. Vergewissern Sie sich auf der Seite Protokolle, dass der Status der Standardprotokolle neben der Distribution aktiviert lautet.

  9. (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 der us-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
  1. 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

  2. Verwenden Sie als Nächstes den CloudWatch PutDeliverySourceAPI-Vorgang, um eine Lieferquelle für die Verteilung zu erstellen.

    1. Geben Sie einen Namen für die Bereitstellungsquelle ein.

    2. Übergeben Sie den resourceArn der Distribution.

    3. Geben Sie unter logType als Typ der erfassten Protokolle ACCESS_LOGS an.

    4. 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_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" } }
  3. Verwenden Sie den PutDeliveryDestinationAPI-Vorgang, um zu konfigurieren, wo Ihre Protokolle gespeichert werden sollen.

    1. Geben Sie unter destinationResourceArn den ARN des Ziels an. Dies kann eine CloudWatch Logs-Protokollgruppe, ein Firehose-Lieferstream oder ein Amazon S3 S3-Bucket sein.

    2. Geben Sie unter outputFormat das Ausgabeformat für Ihre Protokolle an.

    3. 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-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 Bereitstellung von einem Konto in einem anderen Konto.

  4. 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.

    1. Geben Sie unter deliverySourceName den Quellnamen an.

    2. Geben Sie unter deliveryDestinationArn den ARN für das Bereitstellungsziel an.

    3. Geben Sie unter fieldDelimiter die Zeichenfolge zur Trennung der Protokollfelder an.

    4. Geben Sie unter recordFields die gewünschten Protokollfelder an.

    5. Wenn Sie S3 verwenden, geben Sie an, ob enableHiveCompatiblePath und suffixPath verwendet 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-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": "" }
  5. 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
  1. Um das Ziel für die Protokollbereitstellung zu erstellen, können Sie den folgenden AWS CLI -Befehl eingeben. In diesem Beispiel wird die Zeichenfolge MyLogPrefix verwendet, um ein Präfix für Ihre Zugriffsprotokolle zu erstellen.

    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/<account-ID>/CloudFront als Präfix angehängt, das suffixPath im S3-Lieferziel erscheint. Weitere Informationen finden Sie unter S3 DeliveryConfiguration.

  2. Fügen Sie die Ressourcenrichtlinie für das Protokollbereitstellungsziel hinzu, um dem Quellkonto die Protokollbereitstellung zu ermöglichen.

    Ersetzen Sie in der folgenden Richtlinie 111111111111 durch die Quellkonto-ID und geben Sie den Lieferziel-ARN aus der Ausgabe in Schritt 1 an.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowCreateDelivery", "Effect": "Allow", "Principal": {"AWS": "111111111111"}, "Action": ["logs:CreateDelivery"], "Resource": "arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination" } ] }
  3. Speichern Sie die Datei, z. B. deliverypolicy.json.

  4. 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
  5. 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 Aktion s3:PutObject auszufü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:*"} } }
  6. 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 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
  1. 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 --name s3-cf-delivery --resource-arn arn:aws:cloudfront::111111111111:distribution/E1TR1RHV123ABC --log-type ACCESS_LOGS

    Ausgabe

    { "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" } }
  2. 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-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" } }
  3. Überprüfen Sie, ob die kontoübergreifende Bereitstellung erfolgreich war.

    1. 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.

    2. 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 MyLogPrefix im Bucket-Namen und in allen Zugriffsprotokollen sehen, die an diesen Ordner übermittelt wurden.

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 oder der CloudWatch API aktivieren oder deaktivieren und andere Protokolleinstellungen aktualisieren. Ihre Änderungen der Protokollierungseinstellungen werden innerhalb von 12 Stunden wirksam.

Weitere Informationen finden Sie unter den folgenden Themen:

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.

  1. timestamp(ms) – der Zeitstempel in Millisekunden

  2. origin-fbl— Die Anzahl der Sekunden der Latenz im ersten Byte zwischen CloudFront und Ihrem Ursprung.

  3. origin-lbl— Die Anzahl der Sekunden der Latenz im letzten Byte zwischen CloudFront und Ihrem Ursprung.

  4. asn – die autonome Systemnummer (ASN) des Viewers

  5. 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.

  6. 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

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.

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/{account-id}/CloudFront Präfix automatisch für Sie angehängt.

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/<your-account-ID>/CloudFront/
amzn-s3-demo-bucket myFolderA/ AWSLogs/{account-id}/CloudFront/myFolderA/ Nein amzn-s3-demo-bucket/AWSLogs/<your-account-ID>/CloudFront/myFolderA/
amzn-s3-demo-bucket myFolderA/ AWSLogs/{account-id}/CloudFront/myFolderA/ Ja amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/myFolderA/
amzn-s3-demo-bucket myFolderA/{yyyy} AWSLogs/{account-id}/CloudFront/myFolderA/{yyyy} Ja amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/myFolderA/year=2025

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=<your-account-ID>/CloudFront/
amzn-s3-demo-bucket myFolderA/{accountid} AWSLogs/{account-id}/CloudFront/myFolderA/{accountid} Ja amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/myFolderA/accountid=<your-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 aws-account-id angezeigt.

  • 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 accountid angezeigt.

  • 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
  1. Melden Sie sich in der CloudFront -Konsole an.

  2. Wählen Sie Distribution und dann Ihre Distributions-ID aus.

  3. Wählen Sie Protokollierung und wählen Sie dann unter Zugriffsprotokollziele das Ziel aus.

  4. Wählen Sie Verwalten und dann Löschen aus.

  5. 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
  1. Ihr Standard-Suffixpfad ist AWSLogs/{account-id}/CloudFront und Sie ersetzen ihn durch myFolderA.

  2. Da sich Ihr neuer Suffixpfad von dem in der Richtlinie für den Amazon-S3-Bucket angegebenen Pfad unterscheidet, werden Ihre Zugriffsprotokolle nicht übermittelt.

  3. Sie können einen der folgenden Schritte ausführen:

    • Aktualisieren Sie die Berechtigung des Amazon-S3-Buckets von amzn-s3-demo-bucket/AWSLogs/<your-account-ID>/CloudFront/* auf amzn-s3-demo-bucket/myFolderA/*.

    • Aktualisieren Sie Ihre Protokollierungskonfiguration, um wieder das Standardsuffix AWSLogs/{account-id}/CloudFront zu 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
CloudWatch Logs
Firehose

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. Wählen Sie unter Kostenpflichtiges Kontingent die Registerkarte Protokolle und konsultieren Sie die Informationen zum jeweiligen Bereitstellungsziel unter Verkaufte Protokolle.

Weitere Informationen zu den jeweiligen AWS-Service Preisen finden Sie in den folgenden Themen:

  • Amazon CloudWatch Logs — Preise

  • Amazon Data Firehose – Preise

  • Amazon S3 – Preise

    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