使用 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 入口網站中建立資料收集規則:
在 [監視器] 功能表上,選取 [資料收集規則]。
選取 [建立],以建立新的資料收集規則與關聯。
輸入 [規則名稱],並指定 [訂用帳戶]、[資源群組]、[區域]、[平台型別] 和 [資料收集端點]:
- [區域] 會指定將建立 DCR 的位置。 虛擬機器與其關聯可位於租用戶的任何訂用帳戶或資源群組中。
- [平台類型] 會指定此規則可套用的目標資源類型。 [自訂] 選項同時允許 Windows 和 Linux 類型。
- 資料收集端點指定用來收集資料的資料收集端點。 資料收集端點必須位於與 Log Analytics 工作區相同的區域中。 如需詳細資訊,請參閱如何根據您的部署設定資料收集端點。
在 [資源] 索引標籤上:
選取 [+ 新增資源],然後將資源關聯至資料收集規則。 資源可以是虛擬機器、虛擬機器擴展集,以及適用於伺服器的 Azure Arc。 Azure 入口網站會在尚未安裝 Azure 監視器代理程式的資源上安裝該代理程式。
重要
除了現有的使用者指派身分識別以外 (若有),入口網站也會在目標資源上啟用系統指派的受控識別。 針對現有應用程式,除非您在要求中指定使用者指派的身分識別,否則機器預設會改用系統指派的身分識別。
選取 [啟用資料收集端點]。
在每個虛擬機器上選取一個要與資料收集規則關聯的資料收集端點。
此資料收集端點會將設定檔傳送至虛擬機器,且所在的區域必須與虛擬機器相同。 如需詳細資訊,請參閱如何根據您的部署設定資料收集端點。
在 [收集並傳遞] 索引標籤上,選取 [新增資料來源],以新增資料來源並設定目的地。
選取 IIS 記錄。
指定檔案模式,以識別記錄檔所在的目錄。
在 [目的地] 索引標籤上,為資料來源新增目的地。
選取 [檢閱 + 建立],以檢閱資料收集規則的詳細資料,以及與虛擬機器集的關聯。
選取 [建立] 以建立資料收集規則。
注意
建立資料收集規則後,最多可能需要 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.。
驗證您已在資料收集規則中指定正確的記錄位置
資料收集規則會有類似下面的區段。 logDirectories
元素會指定要從代理程式電腦收集記錄檔的路徑。 檢查代理程式電腦,以驗證這正確無誤。
"dataSources": [
{
"configuration": {
"logDirectories": ["C:\\scratch\\demo\\W3SVC1"]
},
"id": "myIisLogsDataSource",
"kind": "iisLog",
"streams": [{
"stream": "ONPREM_IIS_BLOB_V2"
}
],
"sendToChannels": ["gigl-dce-6a8e34db54bb4b6db22d99d86314eaee"]
}
]
此目錄應該與代理程式機器上的 IIS 記錄檔位置對應。
驗證 IIS 記錄已使用 W3C 格式化
開啟 IIS 管理員,並驗證記錄是以 W3C 格式寫入。
在代理程式機器上開啟 IIS 記錄檔,以驗證記錄為 W3C 格式。
注意
目前不支援 X-Forwarded-For 自定義欄位。 如果這是關鍵欄位,您可以將 IIS 記錄收集為自訂文字記錄檔。
下一步
深入了解: