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.
CloudFront Amazon-Logs abfragen
Sie können Amazon CloudFront CDN so konfigurieren, dass Zugriffsprotokolle für die Webdistribution nach Amazon Simple Storage Service exportiert werden. Verwenden Sie diese Protokolle, um das Surfverhalten der Benutzer auf Ihren Websites zu untersuchen, die von CloudFront bereitgestellt werden.
Bevor Sie mit der Abfrage der Protokolle beginnen, aktivieren Sie das Zugriffsprotokoll für Webverteilungen auf Ihrer bevorzugten CloudFront Distribution. Weitere Informationen finden Sie unter Zugriffsprotokolle im Amazon CloudFront Developer Guide. Notieren Sie sich den Amazon S3 S3-Bucket, in dem Sie diese Protokolle speichern.
Eine Tabelle für CloudFront Standardprotokolle erstellen
Anmerkung
Dieses Verfahren funktioniert für die Anmeldung über den Zugriff auf die Webdistribution CloudFront. Es kann nicht für Streaming-Protokolle von RTMP-Verteilungen eingesetzt werden.
Um eine Tabelle für CloudFront Standard-Protokolldateifelder zu erstellen
-
Kopieren Sie die folgende beispielhafte DDL-Anweisung und fügen Sie sie in den Abfrageeditor der Athena-Konsole ein. Die Beispielanweisung verwendet die Protokolldateifelder, die im Abschnitt Standard-Protokolldateifelder des Amazon CloudFront Developer Guide dokumentiert sind. Ändern Sie
LOCATION
in den Amazon-S3-Bucket, in dem die Protokolle gespeichert werden. Weitere Informationen zur Verwendung des visuellen Abfrage-Editors finden Sie unter Erste Schritte.Diese Abfrage spezifiziert
ROW FORMAT DELIMITED
und gibtFIELDS TERMINATED BY '\t'
an, dass die Felder durch Tabulatorzeichen getrennt sind. DennROW FORMAT DELIMITED
Athena verwendet LazySimpleSerDestandardmäßig das. Die Spaltedate
ist mit Escape-Zeichen – einfachen umgekehrten Anführungszeichen (`) – versehen, da es sich um ein reserviertes Wort in Athena handelt. Weitere Informationen finden Sie unter Reservierte Schlüsselwörter.CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_standard_logs ( `date` DATE, time STRING, x_edge_location STRING, sc_bytes BIGINT, c_ip STRING, cs_method STRING, cs_host STRING, cs_uri_stem STRING, sc_status INT, cs_referrer STRING, cs_user_agent STRING, cs_uri_query STRING, cs_cookie STRING, x_edge_result_type STRING, x_edge_request_id STRING, x_host_header STRING, cs_protocol STRING, cs_bytes BIGINT, time_taken FLOAT, x_forwarded_for STRING, ssl_protocol STRING, ssl_cipher STRING, x_edge_response_result_type STRING, cs_protocol_version STRING, fle_status STRING, fle_encrypted_fields INT, c_port INT, time_to_first_byte FLOAT, x_edge_detailed_result_type STRING, sc_content_type STRING, sc_content_len BIGINT, sc_range_start BIGINT, sc_range_end BIGINT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LOCATION 's3://DOC-EXAMPLE-BUCKET/' TBLPROPERTIES ( 'skip.header.line.count'='2' )
-
Führen Sie die Abfrage in der Athena-Konsole aus. Nach Beendigung der Abfrage registriert Athena die
cloudfront_standard_logs
-Tabelle, sodass Sie die Daten zum Ausgeben von Abfragen nutzen können.
Erstellen einer Tabelle für CloudFront Echtzeitprotokolle
Um eine Tabelle für CloudFront Echtzeit-Protokolldateifelder zu erstellen
-
Kopieren Sie die folgende beispielhafte DDL-Anweisung und fügen Sie sie in den Abfrageeditor der Athena-Konsole ein. Die Beispielanweisung verwendet die Protokolldateifelder, die im Abschnitt Echtzeitprotokolle des Amazon CloudFront Developer Guide dokumentiert sind. Ändern Sie
LOCATION
in den Amazon-S3-Bucket, in dem die Protokolle gespeichert werden. Weitere Informationen zur Verwendung des visuellen Abfrage-Editors finden Sie unter Erste Schritte.Diese Abfrage spezifiziert
ROW FORMAT DELIMITED
und gibtFIELDS TERMINATED BY '\t'
an, dass die Felder durch Tabulatorzeichen getrennt sind. DennROW FORMAT DELIMITED
Athena verwendet LazySimpleSerDestandardmäßig das. Die Spaltetimestamp
ist mit Escape-Zeichen – einfachen umgekehrten Anführungszeichen (`) – versehen, da es sich um ein reserviertes Wort in Athena handelt. Weitere Informationen finden Sie unter Reservierte Schlüsselwörter.Das folgende Beispiel enthält alle verfügbaren Felder. Sie können Felder, die Sie nicht benötigen, auskommentieren oder entfernen.
CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_real_time_logs ( `timestamp` STRING, c_ip STRING, time_to_first_byte BIGINT, sc_status BIGINT, sc_bytes BIGINT, cs_method STRING, cs_protocol STRING, cs_host STRING, cs_uri_stem STRING, cs_bytes BIGINT, x_edge_location STRING, x_edge_request_id STRING, x_host_header STRING, time_taken BIGINT, cs_protocol_version STRING, c_ip_version STRING, cs_user_agent STRING, cs_referer STRING, cs_cookie STRING, cs_uri_query STRING, x_edge_response_result_type STRING, x_forwarded_for STRING, ssl_protocol STRING, ssl_cipher STRING, x_edge_result_type STRING, fle_encrypted_fields STRING, fle_status STRING, sc_content_type STRING, sc_content_len BIGINT, sc_range_start STRING, sc_range_end STRING, c_port BIGINT, x_edge_detailed_result_type STRING, c_country STRING, cs_accept_encoding STRING, cs_accept STRING, cache_behavior_path_pattern STRING, cs_headers STRING, cs_header_names STRING, cs_headers_count BIGINT, primary_distribution_id STRING, primary_distribution_dns_name STRING, origin_fbl STRING, origin_lbl STRING, asn STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LOCATION 's3://DOC-EXAMPLE-BUCKET/' TBLPROPERTIES ( 'skip.header.line.count'='2' )
-
Führen Sie die Abfrage in der Athena-Konsole aus. Nach Beendigung der Abfrage registriert Athena die
cloudfront_real_time_logs
-Tabelle, sodass Sie die Daten zum Ausgeben von Abfragen nutzen können.
Beispielabfragen für CloudFront Standardprotokolle
Die folgende Abfrage summiert die Anzahl der Byte, die CloudFront zwischen dem 9. Juni und dem 11. Juni 2018 bereitgestellt wurden. Setzen Sie den Spaltennamen "date" in doppelte Anführungszeichen, da es sich um ein reserviertes Wort handelt.
SELECT SUM(bytes) AS total_bytes FROM cloudfront_standard_logs WHERE "date" BETWEEN DATE '2018-06-09' AND DATE '2018-06-11' LIMIT 100;
Um doppelte Zeilen (z. B. doppelte Leerzeilen) aus den Abfrageergebnissen zu entfernen, können Sie, wie im folgenden Beispiel die SELECT DISTINCT
-Anweisung verwenden.
SELECT DISTINCT * FROM cloudfront_standard_logs LIMIT 10;
Weitere Ressourcen
Weitere Informationen zur Verwendung von Athena zum Abfragen von CloudFront Protokollen finden Sie in den folgenden Beiträgen aus dem AWS Big-Data-Blog
Einfache Abfrage von AWS -Service Protokollen mit Amazon Athena
Analysieren Sie Ihre CloudFront Amazon-Zugriffsprotokolle in großem Umfang