

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.

# NCSA-Protokolldateiformat abfragen
<a name="querying-iis-logs-ncsa-log-file-format"></a>

IIS verwendet auch das [NCSA-Protokollierungsformat](https://docs.microsoft.com/en-us/windows/win32/http/ncsa-logging), das eine feste Anzahl von Feldern im ASCII-Textformat aufweist, die durch Leerzeichen getrennt sind. Die Struktur ähnelt dem allgemeinen Protokollformat, das für Apache-Zugriffsprotokolle verwendet wird. Felder im allgemeinen NCSA-Protokolldatenformat umfassen die Client-IP-Adresse, die Client-ID (wird normalerweise nicht verwendet), die Domäne\$1Benutzer-ID, den Zeitstempel der empfangenen Anforderung, den Text der Client-Anfrage, den Serverstatuscode und die Größe des an den Client zurückgegebenen Objekts .

Das folgende Beispiel zeigt Daten im allgemeinen NCSA-Protokollformat, wie für IIS dokumentiert.

```
198.51.100.7 - ExampleCorp\Li [10/Oct/2019:13:55:36 -0700] "GET /logo.gif HTTP/1.0" 200 232
198.51.100.14 - AnyCompany\Jorge [24/Nov/2019:10:49:52 -0700] "GET /index.html HTTP/1.1" 200 2165
198.51.100.22 - ExampleCorp\Mateo [27/Dec/2019:11:38:12 -0700] "GET /about.html HTTP/1.1" 200 1287
198.51.100.9 - AnyCompany\Nikki [11/Jan/2020:11:40:11 -0700] "GET /image.png HTTP/1.1" 404 230
198.51.100.2 - ExampleCorp\Ana [15/Feb/2019:10:12:22 -0700] "GET /favicon.ico HTTP/1.1" 404 30
198.51.100.13 - AnyCompany\Saanvi [14/Mar/2019:11:40:33 -0700] "GET /intro.html HTTP/1.1" 200 1608
198.51.100.11 - ExampleCorp\Xiulan [22/Apr/2019:10:51:34 -0700] "GET /group/index.html HTTP/1.1" 200 1344
```

## Eine Tabelle in Athena für IIS-NCSA-Webserverprotokolle erstellen
<a name="querying-iis-logs-ncsa-creating-a-table-in-athena"></a>

Für Ihre `CREATE TABLE`-Anweisung können Sie das [Grok SerDe](grok-serde.md)- und ein grok-Muster ähnlich dem für [Apache-Webserver-Protokolle](querying-apache-logs.md) verwenden. Im Gegensatz zu Apache-Protokollen verwendet das grok-Muster `%{DATA:user_id}` für das dritte Feld anstelle von `%{USERNAME:user_id}`, um das Vorhandensein des umgekehrten Schrägstrichs in `domain\user_id` zu berücksichtigen. *Weitere Informationen zur Verwendung von Grok SerDe finden Sie unter [Writing Custom Classifiers](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-grok) im Developer Guide.AWS Glue *

**So erstellen Sie eine Tabelle in Athena für IIS-NCSA-Webserverprotokolle**

1. Öffnen Sie die Athena-Konsole unter [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Kopieren Sie die folgende DDL-Anweisung und fügen Sie sie in den Abfrage-Editor der Athena-Konsole ein: Ändern Sie die Werte in `LOCATION 's3://amzn-s3-demo-bucket/iis-ncsa-logs/'`, um auf Ihre IIS-NCSA-Protokolle in Amazon S3 zu verweisen.

   ```
   CREATE EXTERNAL TABLE iis_ncsa_logs(
     client_ip string,
     client_id string,
     user_id string,
     request_received_time string,
     client_request string,
     server_status string,
     returned_obj_size string
     )
   ROW FORMAT SERDE
      'com.amazonaws.glue.serde.GrokSerDe'
   WITH SERDEPROPERTIES (
      'input.format'='^%{IPV4:client_ip} %{DATA:client_id} %{DATA:user_id} %{GREEDYDATA:request_received_time} %{QUOTEDSTRING:client_request} %{DATA:server_status} %{DATA: returned_obj_size}$'
      )
   STORED AS INPUTFORMAT
      'org.apache.hadoop.mapred.TextInputFormat'
   OUTPUTFORMAT
      'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
   LOCATION
      's3://amzn-s3-demo-bucket/iis-ncsa-logs/';
   ```

1. Führen Sie die Abfrage in der Athena-Konsole aus, um die `iis_ncsa_logs`-Tabelle zu registrieren. Wenn die Abfrage abgeschlossen ist, können Sie die Protokolle aus Athena abfragen.

## Beispielauswahlabfragen für IIS-NCSA-Protokolle auswählen
<a name="querying-iis-logs-ncsa-example-select-queries"></a>

**Example – Filterung nach 404-Fehlern**  
Die folgende Beispielabfrage wählt die Empfangszeit der Anforderung, den Text der Clientanforderung und den Serverstatuscode aus der `iis_ncsa_logs`-Tabelle aus. Die `WHERE`-Klausel filtert nach HTTP-Statuscode `404` (Seite nicht gefunden)  

```
SELECT request_received_time, client_request, server_status
FROM iis_ncsa_logs
WHERE server_status = '404'
```
Das folgende Image zeigt die Ergebnisse der Abfrage im Athena-Abfrage-Editor.  

![\[Abfragen eines IIS-NCSA-Protokolls von Athena für HTTP-404-Einträge.\]](http://docs.aws.amazon.com/de_de/athena/latest/ug/images/querying-iis-logs-3.png)


**Example – Filtern nach erfolgreichen Anforderungen aus einer bestimmten Domäne**  
Die folgende Beispielabfrage wählt die Benutzer-ID, die Empfangszeit der Anforderung, den Text der Clientanforderung und den Serverstatuscode aus der `iis_ncsa_logs`-Tabelle aus. Die `WHERE`-Klausel filtert nach Anforderungen mit dem HTTP-Statuscode `200` (erfolgreich) von Benutzern in der `AnyCompany`-Domäne.  

```
SELECT user_id, request_received_time, client_request, server_status
FROM iis_ncsa_logs
WHERE server_status = '200' AND user_id LIKE 'AnyCompany%'
```
Das folgende Image zeigt die Ergebnisse der Abfrage im Athena-Abfrage-Editor.  

![\[Abfragen eines IIS-NCSA-Protokolls von Athena für HTTP-200-Einträge.\]](http://docs.aws.amazon.com/de_de/athena/latest/ug/images/querying-iis-logs-4.png)
