本文說明如何使用進階記錄,將自定義欄位新增至 網際網路資訊服務 (IIS) 記錄檔。
原始產品版本:網際網路資訊服務
原始 KB 編號: 4466879
簡介
通常,IIS 中的現有記錄模組是用來記錄專案,例如 IIS 記錄中 X-FORWARDED-FOR 欄位中的原始用戶端 IP 位址。 不過,如果您使用第三方報告工具來剖析 IIS 記錄,此工具可能無法瞭解 X-FORWARDED-FOR 字段。 相反地,它可能會使用不同的欄位,例如 [用戶端 IP 位址(c-ip) ] 字段。
例如,假設您有一個負載平衡的環境,其中包含至少兩部網頁伺服器,以及 Web 伺服器前面的 F5 負載平衡器。 一般而言,原始用戶端的IP位址會由現有的記錄模組記錄在 X-FORWARDED-FOR IIS記錄的欄位中記錄。 若要使用第三方報告工具,請嘗試建立自定義 用戶端IP位址(c-ip) 欄位。 不過,您會收到下列衝突訊息:
欄位 「c-ip」 與現有標準欄位的名稱衝突。
請選擇不同的功能變數名稱。
本文說明如何新增自定義欄位,例如 [用戶端 IP 位址 (c-ip) ] 欄位,使其不會與 IIS 記錄中的任何預先定義欄位衝突。
解決方案
此問題有兩個解決方案。
解決方案 1
建立自訂 ISAPI 篩選或 HTTP 模組,您可以透過此模組,將 c-ip 域值取代為每個用戶端要求中X-FORWARDED-FOR從 F5 負載平衡器傳遞的要求標頭中的值。解決方案 2
使用進階記錄。 這是 IIS 的頻外模組。 若要這樣做,請遵循下列步驟:
下載進 階記錄,並將其安裝在執行 IIS 的伺服器上。
找出根節點或伺服器層級,然後按兩下 [進階記錄] 模組:
在 [動作] 窗格上選取 [ 啟用進階記錄] 選項:
選取 [ 編輯記錄字段 ] 選項,然後選取 彈出視窗中的 [新增字段 ] 按鈕。
指定下欄域值(例如):
- 欄位識別碼: <輸入任何易記名稱>
- 類別: <保留空白>
- 來源類型:要求標頭
- 來源名稱:X-FORWARDED-FOR
- 記錄標頭名稱:c-ip
在 [進階記錄] 模組中,按兩下預設的 [記錄定義],然後選取 [ 選取欄位 ] 按鈕。
選取您在步驟 5 中建立的自定義欄位,然後選取 [ 確定]。
嘗試從任何客戶端系統存取網站,然後檢查進階記錄模組所建立的記錄。 (根據預設,記錄檔位於
C:\inetpub\logs\AdvancedLogs資料夾中,但可以針對不同的資料夾進行設定。注意
原始用戶端 IP 位址會記錄在 c-ip 底下,而不是負載平衡環境中的 X-FORWARDED-FOR。