Azure Application Gateway データの監視のリファレンス
Azure Application Gateway の監視データの収集と分析の詳細については、Azure Application Gateway の監視に関するページを参照してください。
Application Gateway V2 のメトリック
リソース プロバイダーと種類: Microsoft.Network/applicationGateways
タイミングのメトリック
Application Gateway には、要求と応答に関連するいくつかのタイミング メトリックが組み込まれています。これらはすべて、ミリ秒単位で測定されます。
Note
Application Gateway に複数のリスナーがある場合は、意味のある推論を得るために、異なる待機時間メトリックを比較しながら、常に "リスナー" ディメンションでフィルター処理します。
メトリック | ユニット | 説明 |
---|---|---|
バックエンド接続時間 | Milliseconds | バックエンド アプリケーションとの接続を確立するために費やされた時間です。 これには、ネットワーク待機時間と、バックエンド サーバーの TCP スタックで新しい接続を確立するために要した時間が含まれます。 TLS の場合、これにはハンドシェイクに費やされた時間も含まれます。 |
バックエンド先頭バイト応答時間 | Milliseconds | バックエンド サーバーへの接続の確立を開始してから応答ヘッダーの最初のバイトを受信するまでの時間間隔です。 これにより、Application Gateway からバックエンドへのアクセス要求にかかった時間、バックエンド アプリケーションが応答するまでの時間 (サーバーがコンテンツを生成し、その後データベース クエリをフェッチするためにかかった時間)、および応答の先頭バイトがバックエンドから Application Gateway に到着するまでにかかった時間の合計であるバックエンド接続時間を概算します。 |
バックエンド最終バイト応答時間 | Milliseconds | バックエンド サーバーへの接続の確立を開始してから応答本文の最後のバイトを受信するまでの時間間隔です。 これにより、バックエンド先頭バイト応答時間とデータ転送時間の合計が概算されます。 この数値は、要求されたオブジェクトのサイズとサーバー ネットワークの待機時間によって大きく異なる場合があります。 |
アプリケーション ゲートウェイの合計時間 | Milliseconds | 要求の受信、処理、および応答の送信にかかった平均時間。 これは、Application Gateway が HTTP 要求の最初のバイトを受信してから、最後の応答バイトがクライアントに送信されるまでの間隔です。 これには、Application Gateway によって行われた処理時間、バックエンド最終バイト応答時間、Application Gateway ですべての応答を送信するのにかかった時間、クライアント RTT が含まれます。 |
クライアント RTT | Milliseconds | クライアントと Application Gateway の間の平均ラウンドトリップ時間。 |
これらのメトリックを使用することで、観測された速度低下の原因が、クライアント ネットワーク、Application Gateway のパフォーマンス、バックエンド ネットワークとバックエンド サーバーの TCP スタックの飽和、バックエンド アプリケーションのパフォーマンス、または大きなファイル サイズの内どれかを判断できます。
たとえば、バックエンド先頭バイト応答時間に急増傾向が見られる一方、バックエンド接続時間が安定傾向を見せている場合、Application Gateway からバックエンドへの待機時間と、接続の確立にかかった時間が安定しており、急増はバックエンド アプリケーションの応答時間の増加が原因であると推測できます。 一方、バックエンド先頭バイト応答時間の急増がバックエンド接続時間に対応する急増に関連付けられている場合は、Application Gateway とバックエンドサーバーの間のネットワーク、またはバックエンド サーバーの TCP スタックが飽和状態になっていることが推測できます。
バックエンド最終バイト応答時間が急増しているにもかかわらず、バックエンド先頭バイト応答時間が安定している場合は、この急増は要求されているファイルが大きいことが原因であると推測できます。
同様に、Application Gateway の合計時間が急増しているにもかかわらず、バックエンド最終バイト応答時間が安定している場合は、Application Gateway でのパフォーマンスのボトルネック、またはクライアントと Application Gateway 間のネットワークのボトルネックのいずれかの兆候である場合があります。 さらに、クライアント RTT に対応する急増も見られる場合、この低下はクライアントと Application Gateway 間のネットワークが原因であることを示します。
Application Gateway メトリック
メトリック | ユニット | 説明 |
---|---|---|
受信バイト数 | バイト | Application Gateway でクライアントから受信したバイト数。 (このメトリックは、Application Gateway によって観察された要求コンテンツ サイズのみを考慮します。TLS ヘッダー ネゴシエーション、TCP/IP パケット ヘッダー、再送信などのデータ転送は含まれません。) |
送信バイト数 | バイト | Application Gateway からクライアントに送信されたバイト数。 (このメトリックは、Application Gateway によって提供される応答コンテンツ サイズのみを考慮します。TCP/IP パケット ヘッダーや再送信などのデータ転送は含まれません。) |
クライアント TLS プロトコル | Count | Application Gateway との接続を確立したクライアントによって開始された TLS 要求と非 TLS 要求の数です。 TLS プロトコルの分布を表示するには、TLS プロトコル ディメンションでフィルター処理します。 |
現在の容量ユニット | Count | トラフィックの負荷分散に使用される容量ユニットの数。 容量ユニットには、コンピューティング ユニット、永続的接続、スループットの 3 つの決定項があります。 各容量ユニットは最大で次のものにより構成されます: 1 個のコンピューティング ユニット、2500 個の永続的接続、または 2.22 Mbps のスループット。 |
現在のコンピューティング ユニット | Count | 消費されたプロセッサ容量の数です。 コンピューティング ユニットに影響する要因は、1 秒あたりの TLS 接続数、URL 書き換え計算、WAF ルールの処理です。 |
現在の接続数 | Count | クライアントから Application Gateway に対してアクティブになっているコンカレント接続の合計数。 |
推定課金対象容量ユニット | Count | v2 SKU では、料金モデルは使用量によって決まります。 容量ユニットでは、固定費に追加して課金される使用量ベースの費用が測定されます。 *推定課金対象容量ユニット数は、課金が推定される使用中の容量ユニットの数を示します。 これは現在の容量ユニット (トラフィックの負荷を分散するために必要な容量ユニット) と固定請求可能容量ユニット (プロビジョニングが維持される最小容量ユニット) のうち大きい方の値として計算されます。 |
失敗した要求 | Count | Application Gateway が 5xx サーバー エラーコードで処理した要求の数。 これには、Application Gateway から生成された 5xx コードと、バックエンドから生成された 5xx コードが含まれます。 要求の数をさらにフィルター処理することで、各々のまたは特定のバックエンド プール http 設定の組み合わせごとに数を表示できます。 |
固定請求可能容量ユニット | Count | Application Gateway 構成の最小スケール ユニット設定 (1 つのインスタンスが 10 個の容量ユニットに変換される) に従ってプロビジョニングが維持される容量ユニットの最小数。 |
1 秒あたりの新しい接続数 | Count | クライアントから Application Gateway、および Application Gateway からバックエンド メンバーに対して確立される、1 秒あたりの新しい TCP 接続の平均数。 |
応答の状態 | 状態コード | Application Gateway によって返される HTTP 応答の状態です。 応答状態コードの分布をさらに分類し、2xx、3xx、4xx、5xx のカテゴリで応答を表示できます。 |
スループット | バイト/秒 | Application Gateway で処理された 1 秒あたりのバイト数。 (このメトリックは、Application Gateway によって提供されるコンテンツ サイズのみを考慮します。TLS ヘッダー ネゴシエーション、TCP/IP パケット ヘッダー、再送信などのデータ転送は含まれません。) |
要求の合計数 | Count | Application Gateway が処理した成功した要求の数です。 要求の数をさらにフィルター処理することで、各々のまたは特定のバックエンド プール http 設定の組み合わせごとに数を表示できます。 |
バックエンド メトリック
メトリック | ユニット | 説明 |
---|---|---|
バックエンド応答の状態 | Count | バックエンドによって返された HTTP 応答状態コードの数です。 これには、Application Gateway によって生成された応答コードは含まれません。 応答状態コードの分布をさらに分類し、2xx、3xx、4xx、5xx のカテゴリで応答を表示できます。 |
正常なホストの数 | Count | 正常性プローブによって正常であると判定されたバックエンドの数です。 バックエンド プールごとにフィルター処理を行って、特定のバックエンド プールの正常なホストの数を表示できます。 |
異常なホストの数 | Count | 正常性プローブによって異常であると判定されたバックエンドの数です。 バックエンド プールごとにフィルター処理を行って、特定のバックエンド プールの異常なホストの数を表示できます。 |
正常なホストごとの 1 分あたりの要求 | Count | バックエンド プール内の正常なメンバーが 1 分間に受信した要求の平均数です。 BackendPool HttpSettings ディメンションを使用してバックエンド プールを指定します。 |
バックエンドの正常性 API
アプリケーション ゲートウェイのバックエンド正常性を取得する API 呼び出しの詳細については、「Application Gateway - バックエンドの正常性」を参照してください。
要求のサンプル: output POST https://management.azure.com/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Network/ applicationGateways/appgw/backendhealth?api-version=2021-08-01 After
この POST 要求を送信すると、HTTP 202 Accepted 応答が表示されます。 応答ヘッダーで Location ヘッダーを見つけ、その URL を使用して新しい GET 要求を送信します。
output GET https://management.azure.com/subscriptions/subid/providers/Microsoft.Network/locations/region-name/operationResults/GUID?api-version=2021-08-01
Application Gateway の TLS/TCP プロキシのモニタリング
TLS/TCP プロキシのメトリック
Application Gateway でレイヤー 4 プロキシ機能を利用できるようになったため、共通のメトリック (レイヤー 7 とレイヤー 4 の両方に適用) とレイヤー 4 固有のメトリックがあります。 次の表では、レイヤー 4 の使用に対して適用できるすべてのメトリックについて説明します。
メトリック | 説明 | Type | Dimension |
---|---|---|---|
現在の接続数 | アクティブな接続の数: 読み取り、書き込み、または待機。 Application Gateway で確立された現在の接続の数。 | 共通のメトリック | なし |
1 秒あたりの新しい接続数 | 該当する 1 分間において、1 秒あたりに処理された接続の平均数。 | 共通のメトリック | なし |
スループット | 該当する 1 分間でのデータ フローの速度 (受信バイト数 + 送信バイト数)。 | 共通のメトリック | なし |
正常なホストの数 | 正常なバックエンド ホストの数。 | 共通のメトリック | BackendSettingsPool |
異常なホスト | 異常なバックエンド ホストの数。 | 共通のメトリック | BackendSettingsPool |
ClientRTT | クライアントと Application Gateway の間の平均ラウンドトリップ時間。 | 共通のメトリック | リスナー |
バックエンド接続時間 | バックエンド サーバーとの接続を確立するために費やされた時間です。 | 共通のメトリック | Listener、BackendServer、BackendPool、BackendSetting |
バックエンド最初のバイト応答時間 | バックエンド サーバーへの接続の確立を開始してからデータの最初のバイトを受信するまでの時間間隔 (バックエンド サーバーのおおよその処理時間)。 | 共通のメトリック | Listener、BackendServer、BackendPool、BackendHttpSetting* |
バックエンド セッション期間 | バックエンド接続の合計時間。 新しい接続の開始から終了までの平均継続時間。 | L4 固有 | Listener、BackendServer、BackendPool、BackendHttpSetting* |
接続の有効期間 | アプリケーション ゲートウェイへのクライアント接続の合計時間。 新しい接続の開始から終了までの平均継続時間 (分単位)。 | L4 固有 | リスナー |
*
BackendHttpSetting ディメンションには、レイヤー 7 とレイヤー 4 の両方のバックエンド設定が含まれます。
TLS/TCP プロキシ ログ
Application Gateway のレイヤー 4 プロキシでは、アクセス ログを介してログ データを提供します。 これらのログが生成および発行されるのは、それらがゲートウェイの診断設定で構成されている場合に限られます。
- 「Azure Monitor リソース ログでサポートされているカテゴリ」も参照してください。
カテゴリ | リソース ログのカテゴリ |
---|---|
ResourceGroup | アプリケーション ゲートウェイ リソースが属するリソース グループ。 |
SubscriptionId | アプリケーション ゲートウェイ リソースのサブスクリプション ID。 |
ResourceProvider | これはアプリケーション ゲートウェイ用の MICROSOFT.NETWORK になります。 |
リソース | アプリケーション ゲートウェイ リソースの名前。 |
ResourceType | これは APPLICATIONGATEWAYS になります。 |
ruleName | 接続要求を処理したルーティング規則の名前。 |
instanceId | 要求を処理した Application Gateway のインスタンス。 |
clientIP | 要求の送信元 IP。 |
receivedBytes | 受信された、クライアントからゲートウェイへのデータ (バイト単位)。 |
sentBytes | ゲートウェイからクライアントに送信されたデータ (バイト単位)。 |
listenerName | クライアントとのフロントエンド接続を確立したリスナーの名前。 |
backendSettingName | バックエンド接続に使用されたバックエンド設定の名前。 |
backendPoolName | バックエンド接続を確立するためのターゲット サーバーを選択したバックエンド プールの名前。 |
protocol | TCP (TCP または TLS のどちらにするかに関係なく、プロトコル値は常に TCP になります)。 |
sessionTime | セッション期間 (秒単位) (これはクライアント > appgw セッションの場合) |
upstreamSentBytes | バックエンド サーバーに送信されたデータ (バイト単位)。 |
upstreamReceivedBytes | バックエンド サーバーから受信したデータ (バイト単位)。 |
upstreamSessionTime | セッション期間 (秒単位) (これは appgw -> バックエンド セッションの場合) |
sslCipher | TLS 通信に使用されている暗号スイート (TLS プロトコル リスナーの場合)。 |
sslProtocol | 使用されている SSL/TLS プロトコル (TLS プロトコル リスナーの場合)。 |
serverRouted | トラフィックのルーティング先とされたバックエンド サーバーの IP とポート番号。 |
serverStatus | 200 - セッションが正常に完了しました。 400 - クライアント データを解析できませんでした。 500 - 内部サーバー エラーです。 502 - ゲートウェイが無効です。 たとえば、アップストリーム サーバーに到達できなかった場合です。 503 - サービスが利用できません。 たとえば、アクセスが接続数によって制限されている場合です。 |
ResourceId | Application Gateway リソース URI |
TLS/TCP プロキシ バックエンドの正常性
Application Gateway のレイヤー 4 プロキシでは、ポータルと REST API を介してバックエンド プールの個々のメンバーの正常性をモニターする機能を提供します。
Application Gateway V1 のメトリック
Application Gateway メトリック
メトリック | ユニット | 説明 |
---|---|---|
CPU 使用率 | パーセント | Application Gateway に割り当てられた CPU 使用率を表示します。 通常の状況では、CPU 使用率が 90% を超えることは望ましくありません。これは Application Gateway の背後でホストされている Web サイトで待機時間が発生し、クライアント エクスペリエンスを乱す可能性があるためです。 インスタンス数を増やすか、SKU のサイズを大きくするか、またはその両方を行うことによって、Application Gateway の構成を変更し、CPU 使用率を間接的に制御または向上させることができます。 |
現在の接続数 | Count | Application Gateway で確立された現在の接続の数。 |
失敗した要求 | Count | 接続の問題が原因で失敗した要求の数。 この数には、"要求タイムアウト" HTTP 設定を超えたために失敗した要求と、Application Gateway とバックエンド間の接続に問題があるために失敗した要求が含まれます。 この数には、正常なバックエンドが使用できないために発生した失敗は含まれません。 バックエンドからの 4xx と 5xx の応答も、このメトリックの一部とは見なされません。 |
応答の状態 | 状態コード | Application Gateway によって返される HTTP 応答の状態です。 応答状態コードの分布をさらに分類し、2xx、3xx、4xx、5xx のカテゴリで応答を表示できます。 |
スループット | バイト/秒 | Application Gateway で処理された 1 秒あたりのバイト数。 |
要求の合計数 | Count | Application Gateway が処理した成功した要求の数です。 要求の数をさらにフィルター処理することで、各々のまたは特定のバックエンド プール http 設定の組み合わせごとに数を表示できます。 |
Web アプリケーション ファイアウォールのブロックされた要求数 | Count | WAF によってブロックされた要求の数。 |
Web アプリケーション ファイアウォールのブロックされた要求の分布 | Count | WAF によってブロックされた要求の数をフィルター処理して、各々のまたは特定の WAF ルール グループまたは WAF ルール ID の組み合わせごとに数を表示します。 |
Web アプリケーション ファイアウォールの合計規則の分布 | Count | 特定の WAF ルール グループまたは WAF ルール ID の組み合わせごとに受信した要求の数。 |
詳細については、Azure Monitor でサポートされているすべてのプラットフォーム メトリックの一覧を参照してください。
メトリック ディメンション
メトリック ディメンションの詳細については、「多次元メトリック」を参照してください。
Azure Application Gateway では、Azure Monitor の一部のメトリックのディメンションがサポートされています。 各メトリックには、そのメトリック専用のディメンションに関する説明が含まれています。
リソース ログ
このセクションでは、Azure Application Gateway 用に収集できるリソース ログの種類を示します。
Azure Monitorでサポートされているすべてのリソース ログのカテゴリの種類の一覧も参照してください。
Note
パフォーマンス ログは v1 SKU でのみ使用できます。 v2 SKU の場合、パフォーマンス データに関しては Application Gateway v2 メトリックをご利用ください。
詳細については、Application Gateway のバックエンドの正常性および診断ログに関するページを参照してください。
Application Gateway
リソース プロバイダーと種類: Microsoft.Network/applicationGateways
カテゴリ | 表示名 | 情報 |
---|---|---|
Activitylog | アクティビティ ログ | アクティビティ ログのエントリは既定で収集されます。 Azure アクティビティ ログ (以前の操作ログと監査ログ) を使用すると、Azure サブスクリプションに送信されるすべての操作とその操作の状態を表示できます。 |
ApplicationGatewayAccessLog | アクセス ログ | このログを使用して Application Gateway のアクセス パターンを表示し、重要な情報を分析できます。 これには、呼び出し元の IP アドレス、要求された URL、応答の待機時間、リターン コード、入出力バイトが含まれます。アクセス ログは 60 秒ごとに収集されます。 このログには、Application Gateway のインスタンスごとに 1 つのレコードが含まれます。 Application Gateway のインスタンスは、instanceId プロパティで識別されます。 |
ApplicationGatewayPerformanceLog | パフォーマンス ログ | このログを使用すると、Application Gateway のインスタンスの実行状況を確認できます。 このログでは、インスタンスごとのパフォーマンス情報 (処理された要求の総数、スループット (バイト単位)、失敗した要求の数、正常および異常なバックエンド インスタンスの数など) が取得されます。 パフォーマンス ログは 60 秒ごとに収集されます。 パフォーマンス ログは v1 SKU でのみ使用できます。 v2 SKU の場合、パフォーマンス データに関しては Application Gateway v2 メトリックをご利用ください。 |
ApplicationGatewayFirewallLog | ファイアウォール ログ | このログを使用すると、Web アプリケーション ファイアウォールが構成された Application Gateway の、検出モードまたは防止モードでログに記録された要求を表示することができます。 ファイアウォール ログは 60 秒ごとに収集されます。 |
Azure Monitor ログ テーブル
このセクションでは、Azure Application Gateway に関連し、Log Analytics によるクエリに使用できるすべての Azure Monitor ログの Kusto テーブルを参照します。
リソースの種類 | メモ |
---|---|
Application Gateway | AzureActivity、AzureDiagnostics、AzureMetrics を含みます |
すべての Azure Monitor ログ/Log Analytics テーブルのリファレンスについては、Azure Monitor ログ テーブル リファレンスに関するページを参照してください。
診断テーブル
Azure Application Gateway では、Azure Diagnostics テーブルを使用してリソース ログ情報を格納します。 関係する列を次に示します。
Azure Diagnostics
プロパティ | 説明 |
---|---|
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 Application Gateway の監視については、Azure Application Gateway の監視に関するページをご覧ください。
- Azure リソースの監視の詳細については、「Azure Monitor を使用した Azure リソースの監視」を参照してください。