Entwerfen von IIS-Protokolldateifeldnamen zur Entwurfsanpassung mithilfe der erweiterten Protokollierung
In diesem Artikel wird gezeigt, wie Sie der IIS-Protokolldatei (Internetinformationsdienste) mithilfe der erweiterten Protokollierung ein benutzerdefiniertes Feld hinzufügen.
Ursprüngliche Produktversion: Internetinformationsdienste
Ursprüngliche KB-Nummer: 4466879
Einführung
In der Regel wird das vorhandene Protokollierungsmodul in IIS verwendet, um Elemente wie die ursprüngliche Client-IP-Adresse im X-FORWARDED-FOR Feld in den IIS-Protokollen zu protokollieren. Wenn Sie jedoch ein Berichterstellungstool eines Drittanbieters zum Analysieren der IIS-Protokolle verwenden, versteht das Tool das Feld möglicherweise X-FORWARDED-FOR nicht. Stattdessen kann ein anderes Feld verwendet werden, z. B. das Feld "Client-IP-Adresse (c-ip)."
Angenommen, Sie verfügen über eine Umgebung mit Lastenausgleich, die aus mindestens zwei Webservern und einem F5-Lastenausgleich vor den Webservern besteht. In der Regel wird die IP-Adresse des ursprünglichen Clients im X-FORWARDED-FOR Feld in den IIS-Protokollen vom vorhandenen Protokollierungsmodul protokolliert. Um das Berichterstellungstool eines Drittanbieters zu verwenden, versuchen Sie, ein benutzerdefiniertes Feld für die Client-IP-Adresse (c-ip) zu erstellen. Sie erhalten jedoch die folgende Konfliktmeldung:
Das Feld "c-ip" ist mit dem Namen eines vorhandenen Standardfelds in Konflikt.
Wählen Sie einen anderen Feldnamen aus.
In diesem Artikel wird beschrieben, wie Sie ein benutzerdefiniertes Feld hinzufügen, z. B. das Client-IP-Adressfeld (c-ip), damit es nicht mit vordefinierten Feldern in den IIS-Protokollen in Konflikt steht.
Lösung
Es gibt zwei Lösungen für dieses Problem.
Lösung 1
Erstellen Sie einen benutzerdefinierten ISAPI-Filter oder ein benutzerdefiniertes HTTP-Modul, über das Sie den c-ip-Feldwert durch den Wert imX-FORWARDED-FORAnforderungsheader ersetzen können, der in jeder Clientanforderung vom F5-Lastenausgleich übergeben wird.Lösung 2
Verwenden Sie die erweiterte Protokollierung. Dies ist ein Out-of-Band-Modul für IIS. Gehen Sie dazu wie folgt vor:
Laden Sie die erweiterte Protokollierungherunter, und installieren Sie sie auf dem Server, auf dem IIS ausgeführt wird.
Suchen Sie den Stammknoten oder die Serverebene, und doppelklicken Sie dann auf das Modul "Erweiterte Protokollierung":
Wählen Sie im Bereich "Aktionen" die Option "Erweiterte Protokollierung aktivieren" aus:
Wählen Sie die Option Protokollierungsfelder bearbeiten aus, und wählen Sie dann im Popupfenster die Schaltfläche "Feld hinzufügen" aus.
Geben Sie die folgenden Feldwerte an (z. B.):
- Feld-ID:<type any friendly name>
- Kategorie: <Leave blank>
- Quelltyp: Anforderungsheader
- Quellname: X-FORWARDED-FOR
- Protokollheadername: c-ip
Doppelklicken Sie im Modul "Erweiterte Protokollierung" auf die Standardprotokolldefinition, und wählen Sie dann die Schaltfläche "Felder auswählen" aus.
Wählen Sie das benutzerdefinierte Feld aus, das Sie in Schritt 5 erstellt haben, und wählen Sie dann OK aus.
Versuchen Sie, von einem beliebigen Clientsystem aus auf die Website zuzugreifen, und überprüfen Sie dann das Protokoll, das vom Modul für erweiterte Protokollierung erstellt wurde. (Standardmäßig befindet sich die Protokolldatei im
C:\inetpub\logs\AdvancedLogsOrdner, kann jedoch für einen anderen Ordner konfiguriert werden.)Hinweis
Die ursprüngliche Client-IP-Adresse wird in einer Umgebung mit Lastenausgleich unter c-ip anstelle von X-FORWARDED-FOR protokolliert.