Azure 應用程式閘道 監視數據參考
本文包含此服務的所有監視參考資訊。
如需您可以針對 應用程式閘道 收集的數據及其使用方式的詳細資訊,請參閱監視 Azure 應用程式閘道。
計量
本節列出針對此服務的所有自動收集平台計量。 這些計量也是 Azure 監視器中支援的所有平台計量全域清單的一部分。
如需計量保留的相關資訊,請參閱 Azure 監視器計量概觀。
Microsoft.Network/applicationGateways 支援的計量
下表列出可供 Microsoft.Network/applicationGateways 資源類型使用的所有計量。 此數據表之後會包含許多計量的詳細描述詳細數據。
- 所有資料行可能不存在於每個資料表中。
- 某些資料行可能超出頁面的檢視區域。 選取 [展開資料表] 以檢視所有可用的資料行。
資料表標題
- 類別 - 計量群組或分類。
- 計量 - Azure 入口網站中顯示的計量顯示名稱。
- REST API 中的名稱 - REST API 中所指的計量名稱。
- 單位 - 測量單位。
- 彙總 - 預設彙總類型。 有效值:平均值 (Avg)、最小值 (Min)、最大值 (Max)、總計 (Sum)、計數。
- 維度 - 計量可用的維度。
- 時間精細度 - 取樣計量的間隔。 例如,
PT1M
表示計量會每分鐘取樣、每 30 分鐘PT30M
、每小時PT1H
,以此類推。 - DS 匯出 - 計量是否可透過診斷設定,匯出至 Azure 監視器記錄。 如需匯出計量的資訊,請參閱在 Azure 監視器中建立診斷設定。
計量 | REST API 中的名稱 | 單位 | 彙總 | 維度 | 時間精細度 | DS 匯出 |
---|---|---|---|---|---|---|
應用程式閘道 總時間 處理要求和傳送其回應所需的時間。 這是從 應用程式閘道 收到 HTTP 要求的第一個字節到回應傳送作業完成的時間的間隔。 請務必注意,這通常包括 應用程式閘道 處理時間、要求和回應封包經過網路的時間,以及後端伺服器回應的時間。 |
ApplicationGatewayTotalTime |
毫秒 | Average、Maximum | Listener |
PT1M | No |
每個健康情況主機每分鐘的要求 集區中每個狀況良好的後端主機每分鐘平均要求計數 |
AvgRequestCountPerHealthyHost |
計數 | 平均 | BackendSettingsPool |
PT1M | No |
WAF Bot 保護相符專案 相符的 Bot 規則 |
AzwafBotProtection |
計數 | 總數 | Action 、、Category Mode 、CountryCode 、、PolicyName 、PolicyScope |
PT1M | Yes |
WAF 自訂規則相符項目 相符的自定義規則 |
AzwafCustomRule |
計數 | 總數 | Action 、、CustomRuleID Mode 、CountryCode 、、PolicyName 、PolicyScope |
PT1M | Yes |
WAF JS 挑戰要求計數 WAF 評估的 JS 挑戰要求總數 |
AzWAFJSChallengeRequestCount |
計數 | 總數 | Action 、 、 PolicyName 、 Rule PolicyScope |
PT1M | Yes |
WAF 管理的規則相符項目 相符的Managed規則 |
AzwafSecRule |
計數 | 總數 | Action 、Mode 、RuleGroupID 、RuleID 、CountryCode 、PolicyName 、、、 PolicyScope RuleSetName |
PT1M | Yes |
WAF 要求總數 WAF 評估的要求總數 |
AzwafTotalRequests |
計數 | 總數 | Action 、、CountryCode Method 、Mode 、、PolicyName 、PolicyScope |
PT1M | Yes |
後端連接時間 與後端伺服器建立連線所花費的時間 |
BackendConnectTime |
毫秒 | Average、Maximum | Listener 、 、 BackendServer 、 BackendPool BackendHttpSetting |
PT1M | No |
後端第一位元節回應時間 開始建立與後端伺服器的連線以及接收響應標頭的第一個字節之間的時間間隔,近似後端伺服器的處理時間 |
BackendFirstByteResponseTime |
毫秒 | Average、Maximum | Listener 、 、 BackendServer 、 BackendPool BackendHttpSetting |
PT1M | No |
後端最後一個字節回應時間 開始建立與後端伺服器連線以及接收回應本文最後一個字節之間的時間間隔 |
BackendLastByteResponseTime |
毫秒 | Average、Maximum | Listener 、 、 BackendServer 、 BackendPool BackendHttpSetting |
PT1M | No |
後端回應狀態 後端成員所產生的 HTTP 回應碼數目。 這不包含 應用程式閘道 所產生的任何回應碼。 |
BackendResponseStatus |
計數 | 總數 | BackendServer 、 、 BackendPool 、 BackendHttpSetting HttpStatusGroup |
PT1M | Yes |
Web 應用程式防火牆 封鎖的要求規則散發 Web 應用程式防火牆 封鎖的要求規則散發 |
BlockedCount |
計數 | 總數 | RuleGroup , RuleId |
PT1M | Yes |
Bytes Received 用戶端 應用程式閘道 接收的位元組總數 |
BytesReceived |
Bytes | 總計 | Listener |
PT1M | Yes |
Bytes Sent 應用程式閘道 傳送給用戶端的位元組總數 |
BytesSent |
Bytes | 總計 | Listener |
PT1M | Yes |
目前的容量單位 已耗用的容量單位 |
CapacityUnits |
計數 | 平均 | <none> | PT1M | No |
用戶端 RTT 用戶端與 應用程式閘道之間的來回時間。 此計量指出建立連線和傳回通知所需的時間 |
ClientRtt |
毫秒 | Average、Maximum | Listener |
PT1M | No |
目前的計算單位 取用的計算單位 |
ComputeUnits |
計數 | 平均 | <none> | PT1M | No |
CPU 使用率 應用程式閘道 目前的CPU使用率 |
CpuUtilization |
Percent | 平均 | <none> | PT1M | No |
目前的連線 目前與應用程式閘道建立的連線計數 |
CurrentConnections |
計數 | 總數 | <none> | PT1M | Yes |
預估計費容量單位 將收取費用的估計容量單位 |
EstimatedBilledCapacityUnits |
計數 | 平均 | <none> | PT1M | No |
失敗的要求 已提供 應用程式閘道 失敗要求計數 |
FailedRequests |
計數 | 總數 | BackendSettingsPool |
PT1M | Yes |
固定計費容量單位 將收取的最小容量單位 |
FixedBillableCapacityUnits |
計數 | 平均 | <none> | PT1M | No |
狀況良好的主機計數 狀況良好的後端主機數目 |
HealthyHostCount |
計數 | 平均 | BackendSettingsPool |
PT1M | Yes |
Web 應用程式防火牆的規則散發總計 Web 應用程式防火牆 連入流量的總規則分佈 |
MatchedCount |
計數 | 總數 | RuleGroup , RuleId |
PT1M | Yes |
每秒的新連線數 使用 應用程式閘道 建立每秒的新連線數 |
NewConnectionsPerSecond |
每秒計數 | 平均 | <none> | PT1M | No |
回應狀態 應用程式閘道 傳回的 Http 回應狀態 |
ResponseStatus |
計數 | 總數 | HttpStatusGroup |
PT1M | Yes |
輸送量 應用程式閘道每秒已服務的位元組數目 |
Throughput |
BytesPerSecond | 平均 | <none> | PT1M | No |
用戶端 TLS 通訊協定 用戶端所起始的 TLS 和非 TLS 要求數目,這些要求已建立與 應用程式閘道 的連線。 若要檢視 TLS 通訊協定散發,請依維度 TLS 通訊協定進行篩選。 |
TlsProtocol |
計數 | 總數 | Listener , TlsProtocol |
PT1M | Yes |
要求總數 應用程式閘道 成功要求計數 |
TotalRequests |
計數 | 總數 | BackendSettingsPool |
PT1M | Yes |
狀況不良的主機計數 狀況不良的後端主機數目 |
UnhealthyHostCount |
計數 | 平均 | BackendSettingsPool |
PT1M | Yes |
如需可用的 Web 應用程式防火牆 (WAF) 計量,請參閱 應用程式閘道 WAF v2 計量和 應用程式閘道 WAF v1 計量。
應用程式閘道 v2 SKU 的計時計量
應用程式閘道 v2 SKU 提供許多與要求和響應相關的內建計時計量,這些計量都是以毫秒為單位來測量。 接下來是已列在上 一個計量數據表中之計時計量的擴充描述。
- 後端連接時間。 此值包含網路等待時間,以及後端伺服器的 TCP 堆疊建立新連線所花費的時間。 如果是 TLS,也會包含交握時所花費的時間。
- 後端第一個字節回應時間。 此值大約是後端連接時間的總和、要求從 應用程式閘道 到達後端所花費的時間、後端應用程式回應所花費的時間,也就是伺服器產生內容並可能擷取資料庫查詢所需的時間,以及第一個回應位元組從後端到達 應用程式閘道 所花費的時間。
- 後端最後一個字節回應時間。 此值大約是後端第一個字節回應時間和數據傳輸時間的總和。 此數目會根據所要求的物件大小和伺服器網路的延遲而有很大的差異。
- 應用程式閘道總時間。 此間隔是從 應用程式閘道 收到 HTTP 要求的第一個字節到傳送至客戶端最後一個回應位元組的時間。
- 用戶端 RTT。 用戶端與應用程式閘道之間的平均來回行程時間。
應用程式閘道 v2 SKU 的計量
針對 應用程式閘道 v2 SKU,可以使用下列計量。 以下是已列在上 一個計量數據表中之計量的擴充描述。
- 收到的位元組數。 此計量只會考慮 應用程式閘道 觀察到的要求內容大小。 它不包含數據傳輸,例如TLS標頭交涉、TCP/IP 封包標頭或重新傳輸。
- 已傳送的位元組。 此計量只會針對 應用程式閘道 所提供的響應內容大小。 它不包含數據傳輸,例如 TCP/IP 封包標頭或重新傳輸。
- 用戶端 TLS 通訊協定。 TLS 和非 TLS 要求的計數。
- 目前的容量單位。 容量單位有三個決定因素:計算單位、持續性聯機和輸送量。 每個容量單位最多由一個計算單位或2500個持續性聯機或2.22 Mbps輸送量所組成。
- 目前的計算單位。 影響計算單位的因素包括 TLS 連線數/秒、URL 重寫計算,以及 WAF 規則處理。
- 目前的連線。 從用戶端到應用程式閘道的作用中並行連線總數。
- 預估計費容量單位。 使用 v2 SKU 時,耗用量會驅動定價模式。 容量單位會測量固定成本和以耗用量計費的成本。 *預估計費容量單位表示用來預估計費的容量單位數。 此金額計算為目前容量單位(負載平衡流量所需的容量單位)和固定計費容量單位(保留布建的最小容量單位)之間的較大值。
- 失敗的要求。 此值包含從 應用程式閘道 產生的 5xx 代碼,以及從後端產生的 5xx 碼。 您可以進一步篩選要求計數,以顯示每個/特定後端集區-HTTP 設定組合的計數。
- 已修正可計費容量單位。 根據 應用程式閘道 組態中的 [最小縮放單位] 設定,保留布建的容量單位數目下限。 一個實例會轉譯為10個容量單位。
- 每秒的新連線數。 從用戶端到應用程式閘道,以及從應用程式閘道到後端成員的平均每秒新 TCP 連線數目。
- 回應狀態。 回應狀態碼發佈可以進一步分類,以顯示回應 2xx、3xx、4xx 和 5xx 分類中的回應。
- 輸送量。 此計量只佔 應用程式閘道 提供的內容大小。 它不包含數據傳輸,例如TLS標頭交涉、TCP/IP 封包標頭或重新傳輸。
- 要求總數。 應用程式閘道 服務的成功要求。 您可以篩選要求計數,以顯示每個/特定後端集區-HTTP 設定組合的計數。
應用程式閘道 v2 SKU 的後端計量
針對 應用程式閘道 v2 SKU,可以使用下列後端計量。 以下是已列在上 一個計量數據表中之後端計量的擴充描述。
- 後端回應狀態。 後端傳回的 HTTP 回應狀態代碼計數,不包括 應用程式閘道 所產生的任何回應碼。 回應狀態代碼分佈可以分類為在 2xx、3xx、4xx 和 5xx 類別中顯示回應。|
- 狀況良好的主機計數。 健康情況探查判斷狀況良好的主機數目。 您可以根據每個後端集區進行篩選,以顯示特定後端集區中狀況良好的主機數量。
- 狀況不良的主機計數。 健康情況探查判斷狀況不良的主機數目。 您可以根據每個後端集區進行篩選,以顯示特定後端集區中狀況不良的主機數量。
- 每個狀況良好的主機每分鐘要求數。 後端集區中每個狀況良好的成員在一分鐘內收到的要求平均數目。 使用 BackendPool HttpSettings 維度來指定後端集區。
應用程式閘道 v1 SKU 的計量
針對 應用程式閘道 v1 SKU,可以使用下列計量。 以下是已列在上 一個計量數據表中之計量的擴充描述。
CPU 使用率。 顯示配置給應用程式閘道的 CPU 使用率。 在正常情況下,CPU 使用量不應定期超過 90%,因為這種情況可能會導致裝載在 應用程式閘道 後的網站延遲,並中斷客戶端體驗。 您可以藉由增加執行個體計數或移至較大的 SKU 大小 (或同時執行這兩種方式) 來修改應用程式閘道的設定,以間接控制或改善 CPU 使用率。
目前的連線。 目前透過應用程式閘道建立的連線計數。
失敗的要求。 因連線問題而失敗的要求數目。 此計數包括因為超過「要求逾時」HTTP 設定而失敗的要求,以及因為應用程式閘道與後端之間的連線問題而失敗的要求。 此計數不包含失敗,因為沒有狀況良好的後端可供使用。 系統也不會將來自後端的 4xx 和 5xx 回應視為此計量的一部分。
回應狀態。 應用程式閘道傳回的 HTTP 回應狀態。 回應狀態碼發佈可以進一步分類,以顯示回應 2xx、3xx、4xx 和 5xx 分類中的回應。
輸送量。 應用程式閘道 提供的每秒位元組數。
要求總數。 應用程式閘道已服務的成功要求計數。 您可以進一步篩選要求計數,以顯示每個/特定後端集區-HTTP 設定組合的計數。
應用程式閘道 v1 SKU 的後端計量
針對 應用程式閘道 v1 SKU,可以使用下列後端計量。 以下是已列在上 一個計量數據表中之後端計量的擴充描述。
狀況良好的主機計數。 健全狀態探查判斷狀況良好的後端數目。 您可以根據每個後端集區進行篩選,以顯示特定後端集區中狀況良好的主機數量。
狀況不良的主機計數。 健全狀態探查判斷狀況不良的後端數目。 您可以根據每個後端集區進行篩選,以顯示特定後端集區中狀況不良的主機數量。
後端健康情況 API
如需擷取應用程式閘道後端健康情況的 API 呼叫詳細資料,請參閱應用程式閘道 - 後端健康情況。
範例要求:
POST
https://management.azure.com/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Network/
applicationGateways/appgw/backendhealth?api-version=2021-08-01
傳送這個 POST 要求之後,您應該會看到「HTTP 202 已接受」回應。 在回應標頭中,尋找 Location 標頭,並使用該 URL 傳送新的 GET 要求。
GET
https://management.azure.com/subscriptions/subid/providers/Microsoft.Network/locations/region-name/operationResults/GUID?api-version=2021-08-01
TLS/TCP Proxy 計量
應用程式閘道 支援 TLS/TCP Proxy 監視。 使用第 4 層 Proxy 功能現在可供 應用程式閘道 使用,有一些適用於第 7 層和第 4 層的常見計量。 有一些第 4 層特定計量。 下列清單摘要說明計量適用於第 4 層使用方式。
- 目前的連線數
- 每秒的新連線數
- 輸送量
- 良好的主機計數
- 狀況不良的主機計數
- 用戶端 RTT
- 後端連線時間
- 後端第一位元節回應時間。
BackendHttpSetting
維度包含第 7 層和第 4 層後端設定。
如需詳細資訊,請參閱先前的描述和 計量數據表。
這些計量僅適用於第 4 層。
- 後端會話持續時間。 後端連線的總時間。 新連線開始到終止的平均持續時間。
BackendHttpSetting
維度包含第 7 層和第 4 層後端設定。 - 線上存留期。 用戶端連線到應用程式閘道的總時間。 新連線開始到終止的平均持續時間 (以毫秒為單位)。
TLS/TCP Proxy 後端健康情況
應用程式閘道 的第 4 層 Proxy 可讓您透過入口網站和 REST API 監視後端集區個別成員的健康情況。
載入計量維度
如需計量維度是什麼的資訊,請參閱多維度計量。
此服務具有下列與其計量相關聯的維度。
- 動作
- BackendHttpSetting
- BackendPool
- BackendServer
- BackendSettingsPool
- 類別
- CountryCode
- CustomRuleID
- HttpStatusGroup
- 接聽程式
- 方法
- 模式
- PolicyName
- PolicyScope
- RuleGroup
- RuleGroupID
- RuleId
- RuleSetName
- TlsProtocol
注意
如果應用程式閘道中有多個接聽程式,則一律依「接聽程式」維度進行篩選,同時比較不同的延遲計量,以取得有意義的推斷。
資源記錄
本節列出您可以針對此服務收集的資源記錄類型。 該區段會從 Azure 監視器中支援的所有資源記錄類別類型清單提取。
Microsoft.Network/applicationGateways 支援的資源記錄類別
類別 | 類別顯示名稱 | 記錄資料表 | 支援基本記錄計劃 | 支援擷取時間轉換 | 範例查詢 | 匯出的成本 |
---|---|---|---|---|---|---|
ApplicationGatewayAccessLog |
應用程式閘道存取記錄 | AGWAccessLogs 包含檢視 應用程式閘道 存取模式並分析重要資訊的所有記錄。 這包括呼叫端的IP、要求的URL、回應延遲、傳回碼,以及進出的位元組。 |
是 | 無 | No | |
ApplicationGatewayFirewallLog |
應用程式閘道防火牆記錄 | AGWFirewallLogs 包含所有記錄,以檢視透過使用 Web 應用程式防火牆設定的應用程式閘道偵測或預防模式所記錄的要求。 |
是 | 無 | No | |
ApplicationGatewayPerformanceLog |
應用程式閘道效能記錄 | AGWPerformanceLogs 包含所有記錄,以檢視 應用程式閘道 實例的執行方式。 此記錄會擷取每個實例的效能資訊,包括服務的要求總數、位元組的輸送量、提供的要求總數、失敗的要求計數,以及狀況良好且狀況不良的後端實例計數。效能記錄僅適用於 v1 SKU。 |
是 | 無 | No |
存取記錄檔。 您可以使用存取記錄來檢視 應用程式閘道 存取模式,並分析重要資訊。 這項資訊包括呼叫端的IP、要求的URL、回應延遲、傳回碼,以及進出的位元組。每 60 秒會收集存取記錄。 此記錄檔包含每個應用程式閘道執行個體的一筆記錄。 屬性
instanceId
會識別 應用程式閘道 實例。防火牆記錄檔。 您可以使用防火牆記錄來檢視透過使用 Web 應用程式防火牆設定的應用程式閘道偵測或預防模式所記錄的要求。 防火牆記錄每 60 秒收集一次。
效能記錄檔。 您可以使用效能記錄檔來檢視 應用程式閘道 實例的執行方式。 此記錄會擷取每個執行個體的效能資訊,包括提供的要求總數、輸送量 (以位元組為單位)、提供的總要求數、失敗的要求計數、狀況良好和狀況不良的後端執行個體計數。 每隔 60 秒會收集一次效能記錄。
注意
該效能記錄僅適用於 v1 SKU。 針對 v2 SKU,請使用效能資料的計量。
存取記錄類別
只有在您在每一個 應用程式閘道 實例上啟用存取記錄檔時,才會產生存取記錄檔,如啟用記錄中所述。 資料會儲存在您啟用記錄功能時指定的儲存體帳戶中。 應用程式閘道 的每個存取都會以 JSON 格式記錄,如下所示。
注意
如需 TLS/TCP Proxy 相關訊息,請瀏覽資料參考。
針對 應用程式閘道 和 WAF v2 SKU:
值 | 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。 |
requestUri | 此欄位包含重寫作業之後的 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"
}
}
注意
clientIP 值為 127.0.0.1 的存取記錄源自在應用程式閘道執行個體上執行的內部安全性程序。 您可以放心地忽略這些記錄項目。
針對 應用程式閘道 Standard 和 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 連線已關閉,因為連線所花費的時間超過設定的逾時值。 |
防火牆記錄類別
只有在您針對每個應用程式閘道啟用防火牆記錄時,才會產生防火牆記錄,如啟用記錄中所述。 此記錄也需要在應用程式閘道上設定該 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"
}
}
效能記錄類別
只有在您在每個 應用程式閘道 實例上啟用效能記錄檔時才會產生,如啟用記錄中所述。 資料會儲存在您啟用記錄功能時指定的儲存體帳戶中。 產生效能記錄資料的時間間隔為 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 回應的最後一個位元組時結束。 是應用程式閘道處理時間,加上網路傳送到後端的時間,再加上後端處理要求所花時間的總和。
Azure 監視器記錄和 Log Analytics 數據表
Azure 應用程式閘道使用 Azure 診斷資料表來儲存資源記錄資訊。 下列為相關資料行。
屬性 | 說明 |
---|---|
requestUri_s | 用戶端要求的 URI。 |
訊息 | 資訊訊息,例如「SQL 插入式攻擊」 |
userAgent_s | 用戶端要求的使用者代理程式詳細資料 |
ruleName_s | 用來處理此要求的要求路由規則 |
httpMethod_s | 用戶端要求的 HTTP 方法 |
instanceId_s | 用戶端要求路由至以供評估的 Appgw 執行個體 |
httpVersion_s | 用戶端要求的 HTTP 版本 |
clientIP_s | 發出要求的 IP |
host_s | 用戶端要求的主機標頭 |
requestQuery_s | 用戶端要求的查詢字串 |
sslEnabled_s | 用戶端要求是否已啟用 SSL |
Azure 監視器記錄資料表
本節列出與此服務相關的 Azure 監視器記錄資料表,並且該資料表可供 Log Analytics 使用 Kusto 查詢進行查詢。 資料表包含資源記錄資料,而且可能包含更多資料,具體取決於所收集及路由傳送至此的內容。
應用程式閘道 Microsoft.Network/applicationGateways
TLS/TCP Proxy 記錄
應用程式閘道 第 4 層 Proxy 會透過存取記錄來提供記錄數據。 只有在閘道的診斷設定中設定這些記錄時,才會產生和發佈這些記錄。 請參閱:Azure 監視器資源記錄的支援類別。
注意
TLS 接聽程式具有相互驗證詳細數據的數據行目前只能透過 AzureDiagnostics 資料表取得。
類別 | 資源記錄類別 |
---|---|
ResourceGroup | 應用程式閘道資源所屬的資源群組。 |
SubscriptionId | 應用程式閘道資源的訂用帳戶識別碼。 |
ResourceProvider | 此值為MICROSOFT。應用程式閘道的網路。 |
資源 | 應用程式閘道資源的名稱。 |
ResourceType | 此值為APPLICATIONGATEWAYS。 |
ruleName | 為連線要求提供服務的路由規則名稱。 |
instanceId | 處理要求的應用程式閘道執行個體。 |
clientIP | 要求的原始 IP。 |
receivedBytes | 從用戶端接收到閘道的資料 (以位元組為單位)。 |
sentBytes | 從閘道傳送至用戶端的資料 (以位元組為單位)。 |
listenerName | 與用戶端建立前端連線的接聽程式名稱。 |
backendSettingName | 用於後端連線的後端設定名稱。 |
backendPoolName | 從中選取目標伺服器以建立後端連線的後端集區名稱。 |
protocol | TCP (不論它是 TCP 或 TLS,通訊協定值一律為 TCP)。 |
sessionTime | 會話持續時間,以秒為單位(此值適用於 client-appgw> 工作階段)。 |
upstreamSentBytes | 傳送至後端伺服器的資料 (以位元組為單位)。 |
upstreamReceivedBytes | 從後端伺服器接收的資料 (以位元組為單位)。 |
upstreamSessionTime | 會話持續時間,以秒為單位(此值適用於 appgw-backend> 會話)。 |
sslCipher | 用於 TLS 通訊的加密套件 (適用於 TLS 通訊協定接聽程式)。 |
sslProtocol | 使用的 SSL/TLS 通訊協定 (適用於 TLS 通訊協定接聽程式)。 |
serverRouted | 流量路由傳送目標的後端伺服器 IP 和連接埠號碼。 |
serverStatus | 200:工作階段已順利完成。 400 - 無法剖析客戶端資料。 500:內部伺服器錯誤。 502:閘道不正確。 例如,無法連線到上游伺服器時。 503:服務無法使用。 例如,如果存取受限於連線數目。 |
ResourceId | 應用程式閘道 資源 URI。 |
活動記錄檔
連結的資料表會列出此服務活動記錄檔中可記錄的操作。 這些操作是活動記錄中的所有可能資源提供者操作的子集。
如需活動記錄項目結構描述的詳細資訊,請參閱活動記錄結構描述。
您可以使用 Azure 活動記錄來檢視提交至 Azure 訂用帳戶的所有作業及其狀態。 系統預設會收集活動記錄項目。 您可以在 Azure 入口網站 中檢視它們。 Azure 活動記錄先前稱為 作業記錄 和 稽核記錄。
Azure 預設會產生活動記錄。 記錄會在 Azure 的事件記錄存放區中保留 90 天。 閱讀檢視事件和活動記錄一文,深入了解這些記錄。
相關內容
- 如需監視 應用程式閘道 的描述,請參閱監視 Azure 應用程式閘道。
- 如需監視 Azure 資源的詳細資訊,請參閱使用 Azure 監視器來監視 Azure 資源。