IIS-Protokolldateiformat abfragen - Amazon Athena

IIS-Protokolldateiformat abfragen

Im Gegensatz zum erweiterten W3C-Format verfügt das IIS-Protokolldateiformat über einen festen Satz von Feldern und enthält ein Komma als Trennzeichen. Der LazySimpleSerDe behandelt das Komma als Trennzeichen und das Leerzeichen nach dem Komma als Anfang des nächsten Feldes.

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
  1. Öffnen Sie die Athena-Konsole unter https://console.aws.amazon.com/athena/.

  2. Fügen Sie die folgende DDL-Anweisung in die Athena-Konsole ein und beachten Sie dabei die folgenden Punkte:

    1. Verwenden Sie , um das Kommatrennzeichen anzugeben FIELDS TERMINATED BY ','.

    2. Ä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/'
  3. 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.

Beispielabfrageergebnisse in Athena von Protokolldateien im IIS-Protokolldateiformat, die in Amazon S3 gespeichert sind.