Share via


使用 Azure 監視器代理程式收集 IIS 記錄

Internet Information Service (IIS) 會將資料記錄到 Windows 電腦的本機磁碟。 本文說明如何透過建立資料收集規則 (DCR),從 Azure 監視器代理程式的受監視機器收集 IIS 記錄。

必要條件

為完成此程序,您需要:

  • 您至少擁有參與者權限所在的 Log Analytics 工作區。

  • 視虛擬機器和 Log Analytics 工作區是否位於相同區域而定,為一或兩個資料收集端點

    如需詳細資訊,請參閱如何根據您的部署設定資料收集端點

  • 在工作區中建立資料收集規則物件的權限

  • 執行 IIS 的 VM、虛擬機器擴展集,或已啟用 Arc 的內部部署伺服器。

    • W3C 格式的 IIS 記錄檔必須儲存在執行 Azure 監視器代理程式的機器本機磁碟驅動器上。
    • 記錄檔中的每個項目都必須以行尾來標示。
    • 記錄檔不得允許循環記錄、以新項目覆寫檔案的記錄輪替,或在檔案已經移動,且已開啟相同名稱的新檔案時重新命名檔案。

建立資料收集規則以收集 IIS 記錄

資料收集規則定義:

  • Azure 監視器代理程式要掃描哪些來源記錄檔以找出新事件。
  • Azure 監視器如何在擷取時轉換事件。
  • 接收 Azure 監視器資料傳送的目的地 Log Analytics 工作區和資料表。

您可以定義資料收集規則,將資料從多部機器傳送至多個 Log Analytics 工作區,包括不同區域或租用戶中的工作區。 在與 Analytics 工作區相同的區域中建立資料收集端點。

注意

若要跨租用戶傳送資料,您必須先啟用 Azure Lighthouse

若要在 Azure 入口網站中建立資料收集規則:

  1. 在 [監視器] 功能表上,選取 [資料收集規則]

  2. 選取 [建立],以建立新的資料收集規則與關聯。

    顯示 [數據收集規則] 畫面上 [建立] 按鈕的螢幕快照。

  3. 輸入 [規則名稱],並指定 [訂用帳戶]、[資源群組]、[區域]、[平台型別] 和 [資料收集端點]

    • [區域] 會指定將建立 DCR 的位置。 虛擬機器與其關聯可位於租用戶的任何訂用帳戶或資源群組中。
    • [平台類型] 會指定此規則可套用的目標資源類型。 [自訂] 選項同時允許 Windows 和 Linux 類型。
    • 資料收集端點指定用來收集資料的資料收集端點。 資料收集端點必須位於與 Log Analytics 工作區相同的區域中。 如需詳細資訊,請參閱如何根據您的部署設定資料收集端點

    顯示 [數據收集規則] 畫面 [基本] 索引標籤的螢幕快照。

  4. 在 [資源] 索引標籤上:

    1. 選取 [+ 新增資源],然後將資源關聯至資料收集規則。 資源可以是虛擬機器、虛擬機器擴展集,以及適用於伺服器的 Azure Arc。 Azure 入口網站會在尚未安裝 Azure 監視器代理程式的資源上安裝該代理程式。

      重要

      除了現有的使用者指派身分識別以外 (若有),入口網站也會在目標資源上啟用系統指派的受控識別。 針對現有應用程式,除非您在要求中指定使用者指派的身分識別,否則機器預設會改用系統指派的身分識別。

    2. 選取 [啟用資料收集端點]

    3. 在每個虛擬機器上選取一個要與資料收集規則關聯的資料收集端點。

      此資料收集端點會將設定檔傳送至虛擬機器,且所在的區域必須與虛擬機器相同。 如需詳細資訊,請參閱如何根據您的部署設定資料收集端點

    顯示 [數據收集規則] 畫面之 [資源] 索引標籤的螢幕快照。

  5. 在 [收集並傳遞] 索引標籤上,選取 [新增資料來源],以新增資料來源並設定目的地。

  6. 選取 IIS 記錄

    顯示 Azure 入口網站 表單以選取資料收集規則中基本性能計數器的螢幕快照。

  7. 指定檔案模式,以識別記錄檔所在的目錄。

  8. 在 [目的地] 索引標籤上,為資料來源新增目的地。

    顯示 Azure 入口網站 表單以在資料收集規則中新增數據源的螢幕快照。

  9. 選取 [檢閱 + 建立],以檢閱資料收集規則的詳細資料,以及與虛擬機器集的關聯。

  10. 選取 [建立] 以建立資料收集規則。

注意

建立資料收集規則後,最多可能需要 5 分鐘的時間,資料才會傳送至目的地。

記錄查詢範例

  • 依據主機 URL www.contoso.com 的 IIS 記錄項目計數。

    W3CIISLog 
    | where csHost=="www.contoso.com" 
    | summarize count() by csUriStem
    
  • 檢閱每個 IIS 機器收到的位元組總數。

    W3CIISLog 
    | summarize sum(csBytes) by Computer
    

警示規則範例

  • 針對返回狀態為 500 的任何記錄建立警示規則。

    W3CIISLog 
    | where scStatus==500
    | summarize AggregatedValue = count() by Computer, bin(TimeGenerated, 15m)
    

疑難排解

使用下列步驟來對 IIS 記錄的收集進行疑難排解。

檢查是否已收到任何 IIS 記錄

首先,在 Log Analytics 中執行下列查詢,以檢查是否已收集 IIS 記錄的任何記錄。 如果查詢未傳回任何記錄,請檢查其他區段以了解可能的原因。 此查詢會尋找過去兩天內的項目,但您可以修改以取得另一個時間範圍。

W3CIISLog
| where TimeGenerated > ago(48h)
| order by TimeGenerated desc

驗證代理程式成功傳送活動訊號

在 Log Analytics 中執行下列查詢,檢查活動訊號資料表中是否有任何記錄,以驗證 Azure 監視器代理程式是否正常通訊。

Heartbeat
| where TimeGenerated > ago(24h)
| where Computer has "<computer name>"
| project TimeGenerated, Category, Version
| order by TimeGenerated desc

驗證 IIS 記錄正在建立

查看記錄檔的時間戳記,並開啟最新的記錄檔,以確定記錄檔中有最新的時間戳記。 IIS 記錄檔的預設位置是 C:\inetpub\logs\LogFiles\W3SVC1.。

IIS 記錄的螢幕快照,其中顯示時間戳。

驗證您已在資料收集規則中指定正確的記錄位置

資料收集規則會有類似下面的區段。 logDirectories 元素會指定要從代理程式電腦收集記錄檔的路徑。 檢查代理程式電腦,以驗證這正確無誤。

    "dataSources": [
    {
            "configuration": {
                "logDirectories": ["C:\\scratch\\demo\\W3SVC1"]
            },
            "id": "myIisLogsDataSource",
            "kind": "iisLog",
            "streams": [{
                    "stream": "ONPREM_IIS_BLOB_V2"
                }
            ],
            "sendToChannels": ["gigl-dce-6a8e34db54bb4b6db22d99d86314eaee"]
        }
    ]

此目錄應該與代理程式機器上的 IIS 記錄檔位置對應。

代理程式電腦上的 IIS 記錄檔螢幕快照。

驗證 IIS 記錄已使用 W3C 格式化

開啟 IIS 管理員,並驗證記錄是以 W3C 格式寫入。

代理程式電腦上 IIS 記錄設定對話框的螢幕快照。

在代理程式機器上開啟 IIS 記錄檔,以驗證記錄為 W3C 格式。

IIS 記錄檔的螢幕快照,其中顯示標頭,指定檔案為 W3C 格式。

注意

目前不支援 X-Forwarded-For 自定義欄位。 如果這是關鍵欄位,您可以將 IIS 記錄收集為自訂文字記錄檔。

下一步

深入了解: