2009-05-04 36 views
8

Chúng tôi lưu trữ các ứng dụng ASP.NET trên hai máy chủ web (Server 2003, IIS 6) nằm phía sau bộ cân bằng tải phần cứng. Khi tôi xem các bản ghi IIS, giá trị c-ip trong các bản ghi IIS (v6) luôn luôn là địa chỉ IP của bộ cân bằng tải. Tôi nhận thấy trong tiêu đề http, có tiêu đề X-Forwarded-For dường như có địa chỉ IP yêu cầu. Có cái gì tôi có thể làm để làm cho IIS đăng nhập giá trị tiêu đề này trong các bản ghi?Tệp nhật ký IIS và cân bằng tải?

Trả lời

3

Khi thực hiện một proxy, x-forwarded-for là hầu hết các số commonly used bởi cân bằng tải. Bạn có thể viết một số httpfilter để trao đổi xung quanh bạn; hoặc IIS Tracer có khả năng phát với các tệp chuẩn; bao gồm hoán đổi trường c-ip và x-forwarded.

Nếu điều này không được thực hiện để sử dụng công cụ báo cáo của bên thứ ba; bạn có thể muốn kết xuất nhật ký của mình vào SQL Server nơi bạn có thể thao tác các cột bất cứ khi nào bạn muốn.

Cá nhân tôi đi theo sau để tôi có thể lấy dữ liệu tổng hợp cho tất cả các máy chủ; tôi đổ vào các bảng khác nhau trong cùng một db và sau đó báo cáo từ tất cả các máy chủ web trong trang trại. Tôi cũng tìm thấy nó dễ dàng hơn việc quản lý các tệp nhật ký 500MB hoặc hơn trên tất cả các nơi.

+0

Bạn đã viết ứng dụng/tập lệnh của riêng bạn để kết xuất nhật ký vào SQL hoặc bạn tìm thấy thứ gì đó trực tuyến? – twlichty

+0

MS đã xuất bản cách http://support.microsoft.com/kb/245243 – u07ch

2

Mạng F5 cung cấp bộ lọc ISAPI trên devcentral.f5.com sẽ mất x-chuyển tiếp và sử dụng trong nhật ký.

Ngoài ra, mặc dù, không có nhiều bạn có thể làm - đây là cách TCP hoạt động. :)

2

Đây là một câu hỏi khá cũ, nhưng nghĩ rằng tôi muốn thêm rằng IIS 8.5 có khả năng viết các tiêu đề HTTP tùy chỉnh HTTP vào nhật ký IIS. Đây là một lựa chọn tốt hơn nhiều so với cài đặt một bộ lọc ISAPI hoặc mô-đun HTTP.

đi bộ này thông qua chương trình làm thế nào để thiết lập này thông qua IIS Manager: http://www.iis.net/learn/get-started/whats-new-in-iis-85/enhanced-logging-for-iis85

Câu hỏi này khác SO cho thấy làm thế nào để làm điều đó với PowerShell: Add IIS 8.5 Custom Logging Fields with Powershell

5

Tôi không biết nó được bao lâu xung quanh, nhưng Advanced Logging extension cho IIS 7 và lên (trên Windows Server 2008 trở lên) cung cấp Custom logging functionality có thể được sử dụng để thu thập (gần như) thông tin tùy ý trong tệp nhật ký IIS, bao gồm tiêu đề yêu cầu HTTP (và phản hồi) tiêu đề như X -Forwa rded-Đối với.

Tôi vừa mới thiết lập điều này trên máy chủ của mình và nó hoạt động rất đẹp. Một điều cần lưu ý: thay vì chỉnh sửa Định nghĩa nhật ký mặc định bằng tên % COMPUTERNAME% -Server, chỉ cần tạo một cái mới trên trang web của bạn hoặc trên toàn cầu trên máy chủ của bạn để tránh ngoại lệ "Yêu cầu không phải là được hỗ trợ. " khi cố lưu các thay đổi của bạn. Điều này xảy ra khi bạn cố gắng chỉnh sửa định nghĩa mặc định đó ở cấp trang web (nhờ vào this thread cho câu trả lời).

+0

Vấn đề tôi tìm thấy với IIS Advanced Logging (AL) không phải là không tốt đẹp nếu bạn đang sử dụng IIS như một máy chủ web phía trước và một JSP Servlet Container như back-end, hooked thông qua AJP. AL ghi lại tài nguyên vùng chứa dưới dạng tệp DLL chuyển hướng, không phải trang mà người dùng đã truy cập, tức là index.jsp. Tôi bật IIS gỡ lỗi và thấy rằng AL cháy đầu tiên, sau đó AJP mô-đun/bộ lọc thay đổi URL từ, tức là index.jsp để chuyển hướng DLL, và AL cháy một lần nữa. Tôi đã tạo AL mô-đun đầu tiên để kích hoạt nhưng kết quả không thay đổi. Tôi không nghĩ rằng IIS AL hoạt động nếu bạn đang sử dụng kết nối AJP + Servlet Container. – user3621633

Các vấn đề liên quan