應用程式閘道的診斷記錄
應用程式閘道記錄會提供資源及其作業相關事件的詳細資訊。 這些記錄適用於存取、活動、防火牆和效能等事件 (僅適用於 V1)。 針對問題進行疑難排解或建置分析儀表板時,記錄中的細微資訊會很有説明,方法是取用此原始資料。
記錄可供應用程式閘道的所有資源使用;不過,若要取用它們,您必須在您選擇的儲存位置中啟用其集合。 Azure 監視器服務會啟用 Azure 應用程式閘道中的記錄功能。 建議您使用 Log Analytics 工作區,因為您可以輕鬆地使用其預先定義的查詢,並根據特定記錄條件設定警示。
診斷記錄類型
您可以在 Azure 中使用不同類型的記錄來管理和針對應用程式閘道進行疑難排解。 您可以在下方深入了解這些工具:
- 活動記錄:您可以使用 Azure 活動記錄 (之前稱為「作業記錄和稽核記錄」) 來檢視提交至您的 Azure 訂用帳戶的所有作業及其狀態。 預設會收集活動記錄,您可在 Azure 入口網站中檢視它們。
- 存取記錄:您可以使用此記錄來檢視應用程式閘道存取模式並分析重要資訊。 這包含呼叫者的 IP、所要求的 URL、回應延遲、傳回碼,以及輸入和輸出位元組。每隔 60 秒會收集一次存取記錄。 此記錄檔包含每個應用程式閘道執行個體的一筆記錄。 應用程式閘道執行個體是由 instanceId 屬性識別。
- 效能記錄:您可以使用此記錄來檢視應用程式閘道執行個體的執行情況。 此記錄會擷取每個執行個體的效能資訊,包括提供的要求總數、輸送量 (以位元組為單位)、提供的總要求數、失敗的要求計數、狀況良好和狀況不良的後端執行個體計數。 每隔 60 秒會收集一次效能記錄。 該效能記錄僅適用於 v1 SKU。 針對 v2 SKU,請使用效能資料的計量。
- 防火牆記錄:您可以使用此記錄,檢視透過應用程式閘道的偵測或防止模式 (依 Web 應用程式防火牆的設定) 所記錄的要求。 防火牆記錄每 60 秒收集一次。
注意
記錄僅適用於在 Azure Resource Manager 部署模型中部署的資源。 您無法將記錄使用於傳統部署模型中的資源。 若要深入了解這兩個模型,請參閱了解 Resource Manager 部署和傳統部署一文。
儲存位置
您有下列選項可將記錄儲存在慣用的位置。
Log Analytic 工作區:此選項可讓您輕鬆地使用預先定義的查詢、視覺效果和根據特定的記錄條件設定警示。 Log Analytics 工作區中資源記錄所使用的資料表取決於資源所使用的集合類型:
Azure 診斷:資料會寫入 AzureDiagnostics 資料表。 Azure 診斷資料表會在多個資源類型之間共用,每個資源類型都會新增自己的自訂欄位。 當擷取至 Azure 診斷資料表的自訂欄位數目超過 500 個時,不會將新欄位新增為最上層,而是新增至 "AdditionalFields" 欄位作為動態索引鍵值組。
資源特定 (建議):資料會寫入資源的每個類別的專用資料表。 在資源特定模式中,診斷設定中選取的每個記錄類別,都會在所選工作區中獲指派自己的資料表。 這有幾個優點,包括:
- 記錄查詢中的資料操作更容易
- 改善結構描述及其結構的可探索性
- 在擷取延遲和查詢時間方面增強效能
- 將 Azure 角色型存取控制權限指派給特定資料表的能力
針對應用程式閘道,資源特定模式會建立三個資料表:
注意
資源特定選項目前可於所有公用區域中取得。
現有的使用者可以繼續使用 Azure 診斷,或藉由將診斷設定中的切換為 [資源特定],或在 API 目的地中切換為 [專用],以選擇使用專用資料表。 無法使用雙重模式。 所有記錄中的資料都可以流向 Azure 診斷,或流向專用資料表。 不過,您可以有多個診斷設定,其中一個資料流是 Azure 診斷,另一個則是同時使用資源特定。
在 Log Analytics 中選取目的地資料表:所有 Azure 服務最終都會使用資源特定資料表。 在此轉換中,您可以使用切換按鈕,在診斷設定中選取 Azure 診斷或資源特定資料表。 切換預設會設定為 [資源特定],且在此模式中,新選取類別的記錄會傳送至 Log Analytics 中的專用資料表,而現有的資料流則保持不變。 請參閱下列範例。
工作區轉換:選擇 [資源特定] 選項可讓您先篩選和修改資料,再使用工作區轉換擷取。 這提供細微的控制,可讓您藉由降低資料成本並增強安全性,專注於記錄中最相關的資訊。 如需設定工作區轉換的詳細指示,請參閱:教學課程:使用 Azure 入口網站將工作區轉換新增至 Azure 監視器記錄。
使用工作區轉換最佳化存取記錄的範例
範例 1:選擇性投影資料行:假設您有具有 20 個資料行的應用程式閘道存取記錄,但您只想要分析來自 6 個特定資料行的資料。 藉由使用工作區轉換,您可以將這 6 個資料行投影到工作區,有效地排除其他 14 個資料行。 即使不會儲存來自那些排除資料行的原始資料,但是 [記錄] 刀鋒視窗中仍會出現這些資料行的空白預留位置。 此方法會將儲存體最佳化,並確保只保留相關資料以供分析。
注意
在 [記錄] 刀鋒視窗中,選取 [試用新的 Log Analytics] 選項可讓您更充分地控制使用者介面中顯示的資料行。
範例 2:專注於特定狀態代碼:分析存取記錄時,不需處理所有記錄項目,而是可以撰寫查詢,只擷取具有特定 HTTP 狀態代碼 (例如 4xx 和 5xx) 的資料列。 由於大部分的要求理想上會落在 2xx 和 3xx 類別 (代表回應成功),因此專注於有問題的狀態代碼會縮小資料集的範圍。 此目標方法可讓您擷取最相關且可採取動作的資訊,使其既有效又符合成本效益。
從 Azure 診斷移至資源特定資料表建議的轉換策略:
- 評估目前的資料保留期:判斷 Azure 診斷資料表中目前保留資料的持續時間 (例如:假設診斷資料表會保留資料 15 天)。
- 建立資源特定保留:使用資源特定資料表實作新的診斷設定。
- 平行資料收集:針對暫時期間,在 Azure 診斷和資源特定設定中並行收集資料。
- 確認資料正確性:驗證兩個設定中的資料收集正確且一致。
- 移除 Azure 診斷設定:移除 Azure 診斷設定,以防止重複資料收集。
其他儲存位置:
- Azure 儲存體帳戶:如果記錄會儲存一段較長的持續期間,並在需要時加以檢閱,則最好針對記錄使用儲存體帳戶。
- Azure 事件中樞:如果要整合其他安全性資訊和事件管理 (SIEM) 工具以利於在資源上取得警示,則事件中樞是絕佳的選項。
- Azure 監視器合作夥伴整合。
深入了解 Azure 監視器的診斷設定目的地。
透過 PowerShell 啟用記錄功能
每個 Resource Manager 資源都會自動啟用活動記錄功能。 您必須啟用存取和效能記錄功能,才能開始收集可透過這些記錄取得的資料。 使用下列步驟啟用記錄:
請記下您的儲存體帳戶的資源識別碼 (記錄資料的儲存之處)。 此值的形式為:/subscriptions/<subscriptionId>/resourceGroups/<資源群組名稱>/providers/Microsoft.Storage/storageAccounts/<儲存體帳戶名稱>。 您可以使用訂用帳戶中的所有儲存體帳戶。 您可以使用 Azure 入口網站來尋找此資訊。
請記下您的應用程式閘道的資源識別碼 (將為其啟用記錄功能)。 此值的形式為:/subscriptions/<subscriptionId>/resourceGroups/<資源群組名稱>/providers/Microsoft.Network/applicationGateways/<應用程式閘道名稱>。 您可以使用入口網站來尋找此資訊。
使用下列 Powershell Cmdlet 啟用診斷記錄功能:
Set-AzDiagnosticSetting -ResourceId /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Network/applicationGateways/<application gateway name> -StorageAccountId /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Storage/storageAccounts/<storage account name> -Enabled $true
提示
活動記錄不需要個別的儲存體帳戶。 將儲存體用於記錄存取和效能會產生服務費用。
透過 Azure 入口網站啟用記錄功能
在 Azure 入口網站中,找到您的資源並按一下 [診斷設定]。
應用程式閘道有三個記錄:
- 存取記錄檔
- 效能記錄檔
- 防火牆記錄檔
如果要開始收集資料,請按一下 [開啟診斷]。
[診斷設定] 頁面中提供診斷記錄的設定。 在此範例中,Log Analytics 會儲存記錄。 您也可以使用事件中樞和儲存體帳戶來儲存診斷記錄。
輸入要設定的名稱、確認該設定,然後選取 [儲存]。
活動記錄檔
根據預設,Azure 會產生活動記錄。 記錄會在 Azure 的事件記錄存放區中保留 90 天。 閱讀檢視事件和活動記錄一文,深入了解這些記錄。
存取記錄檔
只有當您如上述步驟所述,在每個應用程式閘道上啟用存取記錄,才會產生存取記錄。 資料會儲存在您啟用記錄功能時指定的儲存體帳戶中。 應用程式閘道的每次存取都會以 JSON 格式記錄下來,如下所示。
對於應用程式閘道和 WAF v2 SKU
注意
- 如需 TLS/TCP Proxy 相關訊息,請瀏覽資料參考。
- 來自共用 AzureDiagnostics 資料表的某些資料行仍會移植到專用資料表。 因此,具有相互驗證詳細資料的資料行,目前只能透過 AzureDiagnostics 資料表取得。
- clientIP 值為 127.0.0.1 的存取記錄源自在應用程式閘道執行個體上執行的內部安全性程序。 您可以放心地忽略這些記錄項目。
值 | Description |
---|---|
instanceId | 處理要求的應用程式閘道執行個體。 |
clientIP | 應用程式閘道的直接用戶端 IP。 如果有另一個 Proxy 位於您的應用程式閘道前方,則會顯示該前端 Proxy 的 IP。 |
httpMethod | 要求使用的 HTTP 方法。 |
requestUri | 接收之要求的 URI。 |
UserAgent | HTTP 要求標頭中的使用者代理程式。 |
httpStatus | 應用程式閘道傳回用戶端的 HTTP 狀態碼。 |
httpVersion | 要求的 HTTP 版本。 |
receivedBytes | 接收的封包大小,單位為位元組。 |
sentBytes | 傳送的封包大小,單位為位元組。 |
clientResponseTime | 傳送至用戶端的第一個字節與最後一個字節應用程式閘道之間的時間差異 (以秒為單位)。 有助於擷取應用程式閘道的回應處理時間,或讓用戶端變慢。 |
timeTaken | 處理用戶端要求的第一個位元組以及在回應用戶端時傳送的最後一個位元組所花費的時間長度 (以秒為單位)。 請務必注意,timeTaken 欄位通常包含要求和回應封包在網路上傳輸的時間。 |
WAFEvaluationTime | WAF 處理要求所花費的時間長度 (以秒為單位)。 |
WAFMode | 值可以是「偵測」或「預防」 |
transactionId | 將接收自用戶端的要求相互關聯的唯一識別碼 |
sslEnabled | 對後端集區的通訊是否使用了 TLS。 有效值為 on 和 off。 |
sslCipher | 將使用 TLS 通訊來加密套件 (如果已啟用 TLS)。 |
sslProtocol | 將使用 SSL/TLS 通訊協定 (如果已啟用 TLS)。 |
sslClientVerify | 將用戶端憑證驗證的結果顯示為 SUCCESS 或 FAILED。 失敗狀態會包含錯誤資訊。 |
sslClientCertificateFingerprint | 已建立 TLS 連線的用戶端憑證的 SHA1 指紋。 |
sslClientCertificateIssuerName | 用於已建立 TLS 連線的用戶端憑證的簽發者 DN 字串。 |
serverRouted | 應用程式閘道將要求路由傳送至的後端伺服器。 |
serverStatus | 後端伺服器的 HTTP 狀態碼。 |
serverResponseLatency | 來自後端伺服器的回應延遲 (以秒為單位)。 |
host | 要求在主機標頭中列出的位址。 如果使用標頭重寫,此欄位會包含更新的主機名稱 |
originalRequestUriWithArgs | 此欄位包含原始要求 URL |
upstreamSourcePort | 起始與後端目標的連線時,應用程式閘道所使用的來源連接埠 |
originalHost | 此欄位包含原始要求主機名稱 |
error_info | 4xx 和 5xx 錯誤的原因。 顯示失敗要求的錯誤碼。 錯誤碼資訊中的詳細資訊。 |
contentType | 應用程式閘道正在處理或傳遞的內容或資料類型 |
{
"timeStamp": "2021-10-14T22:17:11+00:00",
"resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
"listenerName": "HTTP-Listener",
"ruleName": "Storage-Static-Rule",
"backendPoolName": "StaticStorageAccount",
"backendSettingName": "StorageStatic-HTTPS-Setting",
"operationName": "ApplicationGatewayAccess",
"category": "ApplicationGatewayAccessLog",
"properties": {
"instanceId": "appgw_2",
"clientIP": "185.42.129.24",
"clientPort": 45057,
"httpMethod": "GET",
"originalRequestUriWithArgs": "\/",
"requestUri": "\/",
"requestQuery": "",
"userAgent": "Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/52.0.2743.116 Safari\/537.36",
"httpStatus": 200,
"httpVersion": "HTTP\/1.1",
"receivedBytes": 184,
"sentBytes": 466,
"clientResponseTime": 0,
"timeTaken": 0.034,
"WAFEvaluationTime": "0.000",
"WAFMode": "Detection",
"transactionId": "592d1649f75a8d480a3c4dc6a975309d",
"sslEnabled": "on",
"sslCipher": "ECDHE-RSA-AES256-GCM-SHA384",
"sslProtocol": "TLSv1.2",
"sslClientVerify": "NONE",
"sslClientCertificateFingerprint": "",
"sslClientCertificateIssuerName": "",
"serverRouted": "52.239.221.65:443",
"serverStatus": "200",
"serverResponseLatency": "0.028",
"upstreamSourcePort": "21564",
"originalHost": "20.110.30.194",
"host": "20.110.30.194",
"error_info":"ERRORINFO_NO_ERROR",
"contentType":"application/json"
}
}
對於應用程式閘道標準 SKU 和 WAF SKU (v1)
值 | Description |
---|---|
instanceId | 處理要求的應用程式閘道執行個體。 |
clientIP | 要求的原始 IP。 |
clientPort | 要求的原始連接埠。 |
httpMethod | 要求使用的 HTTP 方法。 |
requestUri | 接收之要求的 URI。 |
RequestQuery | 伺服器路由:已傳送要求的後端集區執行個體。 X-AzureApplicationGateway-LOG-ID:用於要求的相互關聯識別碼。 這可用來對後端伺服器上的流量問題進行疑難排解。 SERVER-STATUS:應用程式閘道從後端接收的 HTTP 回應碼。 |
UserAgent | HTTP 要求標頭中的使用者代理程式。 |
httpStatus | 應用程式閘道傳回用戶端的 HTTP 狀態碼。 |
httpVersion | 要求的 HTTP 版本。 |
receivedBytes | 接收的封包大小,單位為位元組。 |
sentBytes | 傳送的封包大小,單位為位元組。 |
timeTaken | 處理要求並傳送其回應所花費的時間長度,單位為毫秒。 算法是從應用程式閘道收到 HTTP 要求的回應第一個位元組的時間,到回應傳送作業完成時的時間間隔。 請務必注意,timeTaken 欄位通常包含要求和回應封包在網路上傳輸的時間。 |
sslEnabled | 對後端集區的通訊是否使用了 TLS/SSL。 有效值為 on 和 off。 |
host | 要求已傳送至後端伺服器的主機名稱。 如果後端主機名稱已覆寫,此名稱會反射那個名稱。 |
originalHost | 從用戶端應用程式閘道已接收要求的主機名稱。 |
{
"resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/PEERINGTEST/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
"operationName": "ApplicationGatewayAccess",
"time": "2017-04-26T19:27:38Z",
"category": "ApplicationGatewayAccessLog",
"properties": {
"instanceId": "ApplicationGatewayRole_IN_0",
"clientIP": "191.96.249.97",
"clientPort": 46886,
"httpMethod": "GET",
"requestUri": "/phpmyadmin/scripts/setup.php",
"requestQuery": "X-AzureApplicationGateway-CACHE-HIT=0&SERVER-ROUTED=10.4.0.4&X-AzureApplicationGateway-LOG-ID=874f1f0f-6807-41c9-b7bc-f3cfa74aa0b1&SERVER-STATUS=404",
"userAgent": "-",
"httpStatus": 404,
"httpVersion": "HTTP/1.0",
"receivedBytes": 65,
"sentBytes": 553,
"timeTaken": 205,
"sslEnabled": "off",
"host": "www.contoso.com",
"originalHost": "www.contoso.com"
}
}
錯誤碼資訊
如果應用程式閘道無法完成要求,這會將下列其中一個原因碼儲存在存取記錄的 [error_info] 字段中。
4XX 錯誤 | (4xx 錯誤碼表示用戶端的要求有問題,且應用程式閘道無法完成。) |
---|---|
ERRORINFO_INVALID_METHOD | 用戶端已傳送不符合 RFC 規範的要求。 可能的原因:用戶端使用伺服器不支援的 HTTP 方法、拼錯的方法、不相容的 HTTP 通訊協定版本等等。 |
ERRORINFO_INVALID_REQUEST | 伺服器因為語法不正確而無法滿足要求。 |
ERRORINFO_INVALID_VERSION | 應用程式閘道收到無效或不支援 HTTP 版本的要求。 |
ERRORINFO_INVALID_09_METHOD | 用戶端使用 HTTP 通訊協定 0.9 版傳送要求。 |
ERRORINFO_INVALID_HOST | "Host" 標頭中提供的值遺失、格式不正確或不符合預期的主機值。 例如,沒有基本接聽程式時,且多網站接聽程式的主機名都與主機不符時。 |
ERRORINFO_INVALID_CONTENT_LENGTH | content-Length 標頭中用戶端所指定內容的長度不符合要求中內容的實際長度。 |
ERRORINFO_INVALID_METHOD_TRACE | 用戶端傳送的 HTTP TRACE 方法,其不受應用程式閘道支援。 |
ERRORINFO_CLIENT_CLOSED_REQUEST | 用戶端在經過閒置逾時期間前關閉了與應用程式閘道的連線。 檢查用戶端逾時期間是否大於應用程式閘道的閒置逾時期間。 |
ERRORINFO_REQUEST_URI_INVALID | 指出用戶端要求中提供的統一資源識別碼 (URI) 問題。 |
ERRORINFO_HTTP_NO_HOST_HEADER | 用戶端傳送了沒有主機標頭的要求。 |
ERRORINFO_HTTP_TO_HTTPS_PORT | 用戶端會將一般 HTTP 要求傳送至 HTTPS 連接埠。 |
ERRORINFO_HTTPS_NO_CERT | 指出用戶端未在相互 TLS 驗證期間傳送有效且正確設定的 TLS 憑證。 |
5XX 錯誤 | 描述 |
---|---|
ERRORINFO_UPSTREAM_NO_LIVE | 應用程式閘道找不到任何作用中或可連線的後端伺服器來處理連入要求 |
ERRORINFO_UPSTREAM_CLOSED_CONNECTION | 後端伺服器非預期地或在完全處理要求之前關閉連線。 這可能是因為後端伺服器達到其限制、當機等而發生。 |
ERRORINFO_UPSTREAM_TIMED_OUT | 與伺服器的已建立 TCP 連線已關閉,因為連線所花費的時間超過設定的逾時值。 |
效能記錄檔
只有當您如上述步驟所述,在每個應用程式閘道上啟用效能記錄,才會產生效能記錄。 資料會儲存在您啟用記錄功能時指定的儲存體帳戶中。 產生效能記錄資料的時間間隔為 1 分鐘。 僅適用 v1 SKU。 針對 v2 SKU,請使用效能資料的計量。 會記錄下列資料:
值 | Description |
---|---|
instanceId | 將產生此應用程式閘道執行個體的效能資料。 針對有多個執行個體的應用程式閘道,則是每一個執行個體一列資料。 |
healthyHostCount | 後端集區中狀況良好的主機數目。 |
unHealthyHostCount | 後端集區中狀況不良的主機數目。 |
requestCount | 處理的要求數目。 |
延遲 | 從執行個體到處理要求的後端之間的要求平均延遲,單位為毫秒。 |
failedRequestCount | 失敗的要求數目。 |
throughput | 自最後一個記錄以來的平均輸送量,測量單位為每秒位元組。 |
{
"resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
"operationName": "ApplicationGatewayPerformance",
"time": "2016-04-09T00:00:00Z",
"category": "ApplicationGatewayPerformanceLog",
"properties":
{
"instanceId":"ApplicationGatewayRole_IN_1",
"healthyHostCount":"4",
"unHealthyHostCount":"0",
"requestCount":"185",
"latency":"0",
"failedRequestCount":"0",
"throughput":"119427"
}
}
注意
延遲的計算是從收到 HTTP 要求的第一個位元組時算起,到送出 HTTP 回應的最後一個位元組時結束。 是應用程式閘道處理時間,加上網路傳送到後端的時間,再加上後端處理要求所花時間的總和。
防火牆記錄檔
只有當您如上述步驟所述,在每個應用程式閘道上啟用防火牆記錄,才會產生防火牆記錄。 此記錄也需要在應用程式閘道上設定該 Web 應用程式防火牆。 資料會儲存在您啟用記錄功能時指定的儲存體帳戶中。 會記錄下列資料:
值 | Description |
---|---|
instanceId | 將產生此應用程式閘道執行個體的防火牆資料。 針對有多個執行個體的應用程式閘道,則是每一個執行個體一列資料。 |
clientIp | 要求的原始 IP。 |
clientPort | 要求的原始連接埠。 |
requestUri | 接收之要求的 URL。 |
ruleSetType | 規則集類型。 可用的值是 OWASP。 |
ruleSetVersion | 規則集版本。 可用值為 2.2.9 和 3.0。 |
ruleId | 觸發事件的規則識別碼。 |
message | 方便使用的觸發事件訊息。 詳細資料區段中會提供詳細資料。 |
action | 對要求採取的動作。 可用值為已封鎖和已允許 (適用於自訂規則)、符合 (當規則符合部分要求時)、已偵測和已封鎖 (這兩者都適用於強制規則,視 WAF 處於偵測還是預防模式而定)。 |
site | 將產生此網站的記錄。 目前只列出 Global,因為規則為全域。 |
詳細資料 | 觸發事件的詳細資料。 |
details.message | 規則的描述。 |
details.data | 在符合規則之要求中找到的特定資料。 |
details.file | 包含規則的組態檔。 |
details.line | 觸發事件的組態檔中的行號。 |
hostname | 應用程式閘道的主機名稱或 IP 位址。 |
transactionId | 指定交易的唯一識別碼,可協助將相同要求間所發生的多個規則違規群組分組。 |
{
"timeStamp": "2021-10-14T22:17:11+00:00",
"resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
"operationName": "ApplicationGatewayFirewall",
"category": "ApplicationGatewayFirewallLog",
"properties": {
"instanceId": "appgw_2",
"clientIp": "185.42.129.24",
"clientPort": "",
"requestUri": "\/",
"ruleSetType": "OWASP_CRS",
"ruleSetVersion": "3.0.0",
"ruleId": "920350",
"message": "Host header is a numeric IP address",
"action": "Matched",
"site": "Global",
"details": {
"message": "Warning. Pattern match \\\"^[\\\\d.:]+$\\\" at REQUEST_HEADERS:Host .... ",
"data": "20.110.30.194:80",
"file": "rules\/REQUEST-920-PROTOCOL-ENFORCEMENT.conf",
"line": "791"
},
"hostname": "20.110.30.194:80",
"transactionId": "592d1649f75a8d480a3c4dc6a975309d",
"policyId": "default",
"policyScope": "Global",
"policyScopeName": "Global"
}
}
檢視及分析活動記錄
您可以使用下列任何方法來檢視及分析活動記錄資料:
- Azure 工具:透過 Azure PowerShell、Azure CLI、Azure REST API 或 Azure 入口網站,從活動記錄擷取資訊。 活動作業與 Resource Manager 一文會詳述每個方法的逐步指示。
- Power BI:如果還沒有 Power BI 帳戶,您可以免費試用。 透過使用 Power BI 範本應用程式,可以分析您的資料。
檢視及分析存取、效能和防火牆記錄
Azure 監視器記錄可以從您的 Blob 儲存體帳戶收集計數器和事件記錄。 它也納入了視覺效果和強大的搜尋功能來分析您的記錄。
您也可以連接到儲存體帳戶並擷取存取和效能記錄的 JSON 記錄項目。 下載 JSON 檔案後,可以將它們轉換成 CSV,並在 Excel、PowerBI 或任何其他資料視覺化工具中檢視它們。
提示
如果您熟悉 Visual Studio 以及在 C# 中變更常數和變數值的基本概念,您可以使用 GitHub 所提供的記錄檔轉換器工具。
透過 GoAccess 分析存取記錄
我們已發佈會安裝並執行常用 GoAccess 記錄分析器的 Resource Manager 範本,該分析器適用於應用程式閘道存取記錄。 GoAccess 提供實用的 HTTP 流量統計資料,例如非重複訪客、要求的檔案、主機、作業系統、瀏覽器、HTTP 狀態碼等等。 如需詳細資訊,請參閱 GitHub 中 Resource Manager 範本資料夾中的讀我檔案。
下一步
- 利用 Azure 監視器記錄將計數器和事件記錄視覺化。
- 使用 Power BI 將您的 Azure 活動記錄視覺化部落格文章。
- 在 Power BI 和其他工具中檢視和分析 Azure 活動記錄部落格文章。
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: