IIS-Protokolldateiformat abfragen
Im Gegensatz zum erweiterten W3C-Format verfügt das IIS-Protokolldateiformat
Das folgende Beispiel zeigt Beispieldaten im IIS-Protokolldateiformat.
203.0.113.15, -, 2020-02-24, 22:48:38, W3SVC2, SERVER5, 198.51.100.4, 254, 501, 488, 200, 0, GET, /index.htm, -, 203.0.113.4, -, 2020-02-24, 22:48:39, W3SVC2, SERVER6, 198.51.100.6, 147, 411, 388, 200, 0, GET, /about.html, -, 203.0.113.11, -, 2020-02-24, 22:48:40, W3SVC2, SERVER7, 198.51.100.18, 170, 531, 468, 200, 0, GET, /image.png, -, 203.0.113.8, -, 2020-02-24, 22:48:41, W3SVC2, SERVER8, 198.51.100.14, 125, 711, 868, 200, 0, GET, /intro.htm, -,
Erstellen einer Tabelle in Athena für IIS-Protokolldateien
Um die Protokolle des IIS-Protokolldateiformats in Amazon S3 abzufragen, erstellen Sie zunächst ein Tabellenschema, damit Athena die Protokolldaten lesen kann.
So erstellen Sie eine Tabelle in Athena für Protokolle im IIS-Protokolldateiformat
Öffnen Sie die Athena-Konsole unter https://console.aws.amazon.com/athena/
. -
Fügen Sie die folgende DDL-Anweisung in die Athena-Konsole ein und beachten Sie dabei die folgenden Punkte:
-
Verwenden Sie , um das Kommatrennzeichen anzugeben
FIELDS TERMINATED BY ','. -
Ändern Sie die Werte in LOCATION 's3://amzn-s3-demo-bucket/
iis-log-file-folder/' so, dass sie auf Ihre Protokolldateien im IIS-Protokollformat in Amazon S3 verweisen.
CREATE EXTERNAL TABLE `iis_format_logs`( client_ip_address string, user_name string, request_date string, request_time string, service_and_instance string, server_name string, server_ip_address string, time_taken_millisec string, client_bytes_sent string, server_bytes_sent string, service_status_code string, windows_status_code string, request_type string, target_of_operation string, script_parameters string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://amzn-s3-demo-bucket/iis-log-file-folder/' -
-
Führen Sie die Abfrage in der Athena-Konsole aus, um die
iis_format_logs-Tabelle zu registrieren. Wenn die Abfrage abgeschlossen ist, können Sie die Protokolle aus Athena abfragen.
Beispiel für IIS-Protokollformat-Auswahlabfrage
Die folgende Beispielabfrage wählt das Anforderungsdatum, die Anforderungszeit, das Anforderungsziel und die benötigte Zeit in Millisekunden aus der Tabelle aus iis_format_logs. Die WHERE-Klausel filtert nach Fällen, in denen der Anforderungstyp GET und der HTTP-Statuscode 200 (erfolgreich) ist. Beachten Sie in der Abfrage, dass die führenden Leerzeichen in ' GET' und '
200' erforderlich sind, damit die Abfrage erfolgreich ist.
SELECT request_date, request_time, target_of_operation, time_taken_millisec FROM iis_format_logs WHERE request_type = ' GET' AND service_status_code = ' 200'
Das folgende Image zeigt die Ergebnisse der Abfrage der Beispieldaten.