IIS log Dateien-und Lastenausgleich?
Veranstalten wir unsere ASP.NET Anwendungen auf zwei web-Servern (Server 2003, IIS 6), die sich hinter einem hardware-Loadbalancer. Wenn ich einen Blick in die IIS-Protokolle, die c-ip-Wert in der IIS (v6) meldet IMMER die IP-Adresse des loadbalancers. Ich habe in den http-Headern, es ist ein X-Forwarded-For header zu haben scheint, die anfragende IP-Adresse. Gibt es etwas, was ich tun können, um das IIS-Protokoll diesen header-Wert in den logs?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn man durch einen proxy den x-forwarded-for ist, was die meisten Häufig verwendet durch load-Balancer. Sie können wahrscheinlich schreiben Sie eine httpfilter, die tauschen das um sich selbst; oder IIS-Tracer hat die Fähigkeit, zu spielen mit den standard-Dateien, einschließlich der Austausch der c-ip-und x-Feld weitergeleitet.
Wenn das nicht getan wird, für die Verwendung von einem Dritten reporting-tool; möchten Sie vielleicht, um dump Ihre logs in SQL Server, wo Sie können Bearbeiten Sie die Spalten, Wann immer Sie wollen.
Persönlich gehe ich für die letztere, so dass ich bekommen kann aggregierte Daten für alle Server; ich dump in verschiedenen Tabellen in der gleichen db und Berichte dann von allen Webservern in der farm. Ich finde es auch einfacher als die Verwaltung von 500mb oder so, log-Dateien, die alle über dem Platz.
Ich weiß nicht, wie lange man es schon, aber die Advanced Logging-Erweiterung für IIS 7 und bis (auf Windows Server 2008 und höher) bietet Benutzerdefinierte logging-Funktionalität die verwendet werden können, zu sammeln (fast) beliebige Informationen in die IIS-Protokolldateien, einschließlich der benutzerdefinierten HTTP-request (und response) - Header wie X-Forwarded-For.
Ich habe gerade heute setzen Sie diese auf unserem server und es funktioniert wunderbar.
Eine Sache zu beachten: anstelle der Bearbeitung der Standard-Protokoll-Definition durch den Namen %COMPUTERNAME%-Server, erstellen Sie einfach eine neue auf Ihrer Website oder Global auf dem server zu vermeiden, Ausnahme "Die Anforderung wird nicht unterstützt.", wenn Sie versuchen, Ihre änderungen zu speichern. Dies geschieht, wenn Sie versuchen, zu Bearbeiten, dass die Standard-definition auf der Ebene der site (Dank dieser thread für die Antwort).
F5 networks bietet einen ISAPI-filter auf devcentral.f5.com das wird x-forwarded-for und verwenden Sie es in den Protokollen.
Darüber hinaus, dass, obwohl, es gibt nicht viel Sie tun können - das ist, wie TCP funktioniert. 🙂
Dies ist eine ziemlich alte Frage, aber dachte, ich würde hinzufügen, dass IIS 8.5 hat die Fähigkeit zu schreiben
benutzerdefinierte HTTP-Header auf dem IIS-Protokolle. Dies ist eine viel bessere option als die Installation eines ISAPI-filters oder HTTP-Modul.
Dieser Spaziergang durch shows wie diese Funktion eingerichtet wird durch den IIS-Manager:
http://www.iis.net/learn/get-started/whats-new-in-iis-85/enhanced-logging-for-iis85
Dieses anderen ALSO Frage zeigt, wie dies mit PowerShell:
Hinzufügen von IIS 8.5 Benutzerdefinierte Protokollierung Felder mit Powershell
IIS 8.5 advanced logging können Sie die Anmeldung der X-FORWAREDED-header leicht.
IIS 8.5 Advanced Logging