共用方式為


使用進階記錄設計自定義 IIS 記錄檔功能變數名稱

本文說明如何使用進階記錄,將自定義欄位新增至 網際網路資訊服務 (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) 欄位時發生錯誤。

本文說明如何新增自定義欄位,例如 [用戶端 IP 位址 (c-ip) ] 欄位,使其不會與 IIS 記錄中的任何預先定義欄位衝突。

解決方案

此問題有兩個解決方案。

  • 解決方案 1
    建立自訂 ISAPI 篩選或 HTTP 模組,您可以透過此模組,將 c-ip 域值取代為每個用戶端要求中X-FORWARDED-FOR從 F5 負載平衡器傳遞的要求標頭中的值。

  • 解決方案 2

    使用進階記錄。 這是 IIS 的頻外模組。 若要這樣做,請遵循下列步驟:

    1. 下載進 階記錄,並將其安裝在執行 IIS 的伺服器上。

    2. 找出根節點或伺服器層級,然後按兩下 [進階記錄] 模組:

      按兩下根節點或伺服器層級的進階記錄模組。

    3. 在 [動作] 窗格上選取 [ 啟用進階記錄] 選項:

      [動作] 窗格上的 [啟用進階記錄] 選項。

    4. 選取 [ 編輯記錄字段 ] 選項,然後選取 彈出視窗中的 [新增字段 ] 按鈕。

    5. 指定下欄域值(例如):

      • 欄位識別碼: <輸入任何易記名稱>
      • 類別: <保留空白>
      • 來源類型:要求標頭
      • 來源名稱:X-FORWARDED-FOR
      • 記錄標頭名稱:c-ip

      您需要設定的記錄域值。

    6. 在 [進階記錄] 模組中,按兩下預設的 [記錄定義],然後選取 [ 選取欄位 ] 按鈕。

      按兩下預設記錄定義。

    7. 選取您在步驟 5 中建立的自定義欄位,然後選取 [ 確定]。

      選取您在步驟 5 中建立的自訂欄位。

    8. 嘗試從任何客戶端系統存取網站,然後檢查進階記錄模組所建立的記錄。 (根據預設,記錄檔位於 C:\inetpub\logs\AdvancedLogs 資料夾中,但可以針對不同的資料夾進行設定。

      注意

      原始用戶端 IP 位址會記錄在 c-ip 底下,而不是負載平衡環境中的 X-FORWARDED-FOR