Application Gateway のバックエンドの正常性および診断ログBack-end health and diagnostic logs for Application Gateway

Azure Application Gateway を使用すると、次の方法でリソースを監視できます。By using Azure Application Gateway, you can monitor resources in the following ways:

  • バックエンドの正常性:Application Gateway は、Azure portal と PowerShell を介して、バックエンド プール内のサーバーの正常性を監視する機能を提供します。Back-end health: Application Gateway provides the capability to monitor the health of the servers in the back-end pools through the Azure portal and through PowerShell. バックエンド プールの正常性は、パフォーマンスの診断ログでも確認できます。You can also find the health of the back-end pools through the performance diagnostic logs.

  • ログ:リソースのパフォーマンス、アクセス、その他のデータを記録したログは、監視のために保存し使用することができます。Logs: Logs allow for performance, access, and other data to be saved or consumed from a resource for monitoring purposes.

  • [メトリック]:Application Gateway には、システムが想定どおりに実行されていることを確認するのに役立ついくつかのメトリックがあります。Metrics: Application Gateway has several metrics which help you verify that your system is performing as expected.

注意

この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. AzureRM モジュールはまだ使用でき、少なくとも 2020 年 12 月までは引き続きバグ修正が行われます。You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az モジュールのインストール手順については、Azure PowerShell のインストールを参照してください。For Az module installation instructions, see Install Azure PowerShell.

バックエンドの正常性Back-end health

Application Gateway は、ポータル、PowerShell、およびコマンド ライン インターフェイス (CLI) を介して、バックエンド プールの各メンバーの正常性を監視する機能を提供します。Application Gateway provides the capability to monitor the health of individual members of the back-end pools through the portal, PowerShell, and the command-line interface (CLI). バックエンド プールの正常性の集計された概要は、パフォーマンスの診断ログでも確認できます。You can also find an aggregated health summary of back-end pools through the performance diagnostic logs.

バックエンドの正常性レポートには、バックエンドのインスタンスへの Application Gateway の正常性プローブの出力が反映されます。The back-end health report reflects the output of the Application Gateway health probe to the back-end instances. プローブが正常に完了し、バックエンドがトラフィックを受信できる場合は、正常と見なされます。When probing is successful and the back end can receive traffic, it's considered healthy. それ以外の場合は異常と見なされます。Otherwise, it's considered unhealthy.

重要

Application Gateway サブネット上にネットワーク セキュリティ グループ (NSG) がある場合は、Application Gateway サブネットで 65503 ~ 65534 のポート範囲をインバウンド トラフィック用に開いてください。If there is a network security group (NSG) on an Application Gateway subnet, open port ranges 65503-65534 on the Application Gateway subnet for inbound traffic. このポート範囲は、Azure インフラストラクチャの通信に必要です。This port range is required for Azure infrastructure communication. これらのポートは、Azure の証明書によって保護 (ロックダウン) されます。They are protected (locked down) by Azure certificates. 対象のゲートウェイの顧客を含め、適切な証明書を持たない外部エンティティは、これらのエンドポイントに対する変更を開始することはできません。Without proper certificates, external entities, including the customers of those gateways, will not be able to initiate any changes on those endpoints.

ポータルを介したバックエンドの正常性の表示View back-end health through the portal

ポータルでは、バックエンドの正常性が自動的に提供されます。In the portal, back-end health is provided automatically. 既存の Application Gateway で、 [監視] > [バックエンド正常性] を選択します。In an existing application gateway, select Monitoring > Backend health.

バックエンド プール内の各メンバーはこのページに表示されます (NIC、IP、FQDN のいずれであっても)。Each member in the back-end pool is listed on this page (whether it's a NIC, IP, or FQDN). バックエンド プール名、ポート、バックエンドの HTTP 設定名、および正常性の状態が表示されます。Back-end pool name, port, back-end HTTP settings name, and health status are shown. 正常性の状態を表す有効値は、正常異常、および不明です。Valid values for health status are Healthy, Unhealthy, and Unknown.

注意

バックエンドの正常性の状態が不明と表示される場合、バックエンドへのアクセスが、NSG のルール、ユーザー定義ルート (UDR)、または仮想ネットワーク内のカスタム DNS によってブロックされていないことを確認します。If you see a back-end health status of Unknown, ensure that access to the back end is not blocked by an NSG rule, a user-defined route (UDR), or a custom DNS in the virtual network.

バックエンドの正常性

PowerShell を介したバックエンドの正常性の表示View back-end health through PowerShell

次の PowerShell コードは、Get-AzApplicationGatewayBackendHealth コマンドレットを使用してバックエンドの正常性を表示する方法を示します。The following PowerShell code shows how to view back-end health by using the Get-AzApplicationGatewayBackendHealth cmdlet:

Get-AzApplicationGatewayBackendHealth -Name ApplicationGateway1 -ResourceGroupName Contoso

Azure CLI を介したバックエンドの正常性の表示View back-end health through Azure CLI

az network application-gateway show-backend-health --resource-group AdatumAppGatewayRG --name AdatumAppGateway

結果Results

次のスニペットは、応答の一例を示します。The following snippet shows an example of the response:

{
"BackendAddressPool": {
    "Id": "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/ContosoRG/providers/Microsoft.Network/applicationGateways/applicationGateway1/backendAddressPools/appGatewayBackendPool"
},
"BackendHttpSettingsCollection": [
    {
    "BackendHttpSettings": {
        "Id": "/00000000-0000-0000-000000000000/resourceGroups/ContosoRG/providers/Microsoft.Network/applicationGateways/applicationGateway1/backendHttpSettingsCollection/appGatewayBackendHttpSettings"
    },
    "Servers": [
        {
        "Address": "hostname.westus.cloudapp.azure.com",
        "Health": "Healthy"
        },
        {
        "Address": "hostname.westus.cloudapp.azure.com",
        "Health": "Healthy"
        }
    ]
    }
]
}

診断ログDiagnostic logs

Azure の各種ログを使用して、アプリケーション ゲートウェイの管理とトラブルシューティングを行うことができます。You can use different types of logs in Azure to manage and troubleshoot application gateways. 一部のログにはポータルからアクセスできます。You can access some of these logs through the portal. どのログも Azure Blob Storage から抽出し、Azure Monitor ログ、Excel、Power BI などのさまざまなツールで表示できます。All logs can be extracted from Azure Blob storage and viewed in different tools, such as Azure Monitor logs, Excel, and Power BI. 各種ログの詳細については、以下の一覧を参照してください。You can learn more about the different types of logs from the following list:

  • アクティビティ ログ:Azure アクティビティ ログ (以前の操作ログと監査ログ) を使用すると、Azure サブスクリプションに送信されるすべての操作とその操作の状態を表示できます。Activity log: You can use Azure activity logs (formerly known as operational logs and audit logs) to view all operations that are submitted to your Azure subscription, and their status. アクティビティ ログ エントリは既定で収集され、Azure Portal で表示できます。Activity log entries are collected by default, and you can view them in the Azure portal.
  • アクセス ログ:このログを使用して Application Gateway のアクセス パターンを表示し、重要な情報を分析できます。Access log: You can use this log to view Application Gateway access patterns and analyze important information. これには、呼び出し元の IP、要求された URL、応答の待機時間、リターン コード、入出力バイトが含まれます。アクセス ログは 300 秒ごとに収集されます。This includes the caller's IP, requested URL, response latency, return code, and bytes in and out. An access log is collected every 300 seconds. このログには、Application Gateway のインスタンスごとに 1 つのレコードが含まれます。This log contains one record per instance of Application Gateway. Application Gateway のインスタンスは、instanceId プロパティで識別されます。The Application Gateway instance is identified by the instanceId property.
  • パフォーマンス ログ:このログを使用すると、Application Gateway のインスタンスの実行状況を確認できます。Performance log: You can use this log to view how Application Gateway instances are performing. このログでは、インスタンスごとのパフォーマンス情報 (処理された要求の総数、スループット (バイト単位)、失敗した要求の数、正常および異常なバックエンド インスタンスの数など) が取得されます。This log captures performance information for each instance, including total requests served, throughput in bytes, total requests served, failed request count, and healthy and unhealthy back-end instance count. パフォーマンス ログは 60 秒ごとに収集されます。A performance log is collected every 60 seconds.
  • ファイアウォール ログ:このログを使用すると、Web アプリケーション ファイアウォールが構成された Application Gateway の、検出モードまたは防止モードでログに記録された要求を表示することができます。Firewall log: You can use this log to view the requests that are logged through either detection or prevention mode of an application gateway that is configured with the web application firewall.

注意

ログは、Azure Resource Manager デプロイ モデルでデプロイされたリソースについてのみ使用できます。Logs are available only for resources deployed in the Azure Resource Manager deployment model. クラシック デプロイ モデルのリソースには使用できません。You cannot use logs for resources in the classic deployment model. 2 つのモデルについて理解を深めるには、「Resource Manager デプロイとクラシック デプロイ」を参照してください。For a better understanding of the two models, see the Understanding Resource Manager deployment and classic deployment article.

ログを保存するための 3 つのオプションがあります。You have three options for storing your logs:

  • ストレージ アカウント:ストレージ アカウントは、ログを長期間保存し、必要に応じて参照する場合に最適です。Storage account: Storage accounts are best used for logs when logs are stored for a longer duration and reviewed when needed.
  • イベント ハブ:イベント ハブは、他のセキュリティ情報/イベント管理 (SIEM) ツールと統合してリソースに関するアラートを取得する場合に便利なオプションです。Event hubs: Event hubs are a great option for integrating with other security information and event management (SIEM) tools to get alerts on your resources.
  • Azure Monitor ログ: Azure Monitor ログは、アプリケーションをリアルタイムに監視したり、傾向を見たりする一般的な用途に最適です。Azure Monitor logs: Azure Monitor logs is best used for general real-time monitoring of your application or looking at trends.

PowerShell を使用したログの有効化Enable logging through PowerShell

アクティビティ ログは、Resource Manager のすべてのリソースで自動的に有効になります。Activity logging is automatically enabled for every Resource Manager resource. アクセス ログとパフォーマンス ログで使用可能なデータの収集を開始するには、これらのログを有効にする必要があります。You must enable access and performance logging to start collecting the data available through those logs. ログ記録を有効にするには、次の手順に従います。To enable logging, use the following steps:

  1. ログ データを保存するストレージ アカウントのリソース ID をメモしておきます。Note your storage account's resource ID, where the log data is stored. この値の形式は、/subscriptions/<サブスクリプション ID>/resourceGroups/<リソース グループ名>/providers/Microsoft.Storage/storageAccounts/<ストレージ アカウント名> です。This value is of the form: /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Storage/storageAccounts/<storage account name>. サブスクリプション内の任意のストレージ アカウントを使用できます。You can use any storage account in your subscription. この情報は、Azure Portal で確認できます。You can use the Azure portal to find this information.

    ポータル: ストレージ アカウントのリソース ID

  2. ログを有効にするアプリケーション ゲートウェイのリソース ID をメモしておきます。Note your application gateway's resource ID for which logging is enabled. この値の形式は、/subscriptions/<サブスクリプション ID>/resourceGroups/<リソース グループ名>/providers/Microsoft.Network/applicationGateways/<Application Gateway 名> です。This value is of the form: /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Network/applicationGateways/<application gateway name>. この情報は、ポータルで確認できます。You can use the portal to find this information.

    ポータル: Application Gateway のリソース ID

  3. 次の PowerShell コマンドレットを使用して、診断ログを有効にします。Enable diagnostic logging by using the following 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     
    

ヒント

アクティビティ ログでは別のストレージ アカウントは必要ありません。Activity logs do not require a separate storage account. アクセス ログとパフォーマンス ログにストレージを使用すると、サービス料金が発生します。The use of storage for access and performance logging incurs service charges.

Azure Portal を使用したログの有効化Enable logging through the Azure portal

  1. Azure portal で、ご使用のリソースを見つけ、 [診断設定] を選択します。In the Azure portal, find your resource and select Diagnostic settings.

    Application Gateway では、次の 3 つのログを使用できます。For Application Gateway, three logs are available:

    • アクセス ログAccess log
    • パフォーマンス ログPerformance log
    • ファイアウォール ログFirewall log
  2. データの収集を開始するには、 [診断を有効にする] を選択します。To start collecting data, select Turn on diagnostics.

    診断の有効化

  3. [診断設定] ページに、診断ログの設定が表示されます。The Diagnostics settings page provides the settings for the diagnostic logs. この例では、Log Analytics を使用してログを保存します。In this example, Log Analytics stores the logs. イベント ハブとストレージ アカウントを使用して診断ログを保存することもできます。You can also use event hubs and a storage account to save the diagnostic logs.

    構成プロセスの開始

  4. 設定の名前を入力し、設定を確認した後、 [保存] を選択します。Type a name for the settings, confirm the settings, and select Save.

アクティビティ ログActivity log

アクティビティ ログは、既定では Azure によって生成されます。Azure generates the activity log by default. ログは、Azure のイベント ログ ストアに 90 日間保存されます。The logs are preserved for 90 days in the Azure event logs store. これらのログの詳細については、「イベントとアクティビティ ログの表示」を参照してください。Learn more about these logs by reading the View events and activity log article.

アクセス ログAccess log

アクセス ログは、前の手順で示したように、Application Gateway のインスタンスごとにログを有効にした場合にのみ生成されます。The access log is generated only if you've enabled it on each Application Gateway instance, as detailed in the preceding steps. データは、ログ記録を有効にしたときに指定したストレージ アカウントに格納されます。The data is stored in the storage account that you specified when you enabled the logging. 次の v1 の例に示すように、Application Gateway の各アクセスは JSON 形式でログに記録されます。Each access of Application Gateway is logged in JSON format, as shown in the following example for v1:

Value 説明Description
instanceIdinstanceId 要求を処理した Application Gateway のインスタンス。Application Gateway instance that served the request.
clientIPclientIP 要求の送信元 IP。Originating IP for the request.
clientPortclientPort 要求の送信元ポート。Originating port for the request.
httpMethodhttpMethod 要求で使用される HTTP メソッド。HTTP method used by the request.
requestUrirequestUri 受信した要求の URI。URI of the received request.
RequestQueryRequestQuery Server-Routed:要求が送信されたバックエンド プールのインスタンス。Server-Routed: Back-end pool instance that was sent the request.
X-AzureApplicationGateway-LOG-ID:要求に使用する関連付け ID。X-AzureApplicationGateway-LOG-ID: Correlation ID used for the request. この ID を使用すると、バックエンド サーバー上のトラフィックの問題をトラブルシューティングできます。It can be used to troubleshoot traffic issues on the back-end servers.
SERVER-STATUS:Application Gateway がバックエンドから受信した HTTP 応答コード。SERVER-STATUS: HTTP response code that Application Gateway received from the back end.
UserAgentUserAgent HTTP 要求ヘッダーからのユーザー エージェント。User agent from the HTTP request header.
httpStatushttpStatus Application Gateway からクライアントに返される HTTP 状態コード。HTTP status code returned to the client from Application Gateway.
httpVersionhttpVersion 要求の HTTP バージョン。HTTP version of the request.
receivedBytesreceivedBytes 受信したパケットのサイズ (バイト単位)。Size of packet received, in bytes.
sentBytessentBytes 送信したパケットのサイズ (バイト単位)。Size of packet sent, in bytes.
timeTakentimeTaken 要求の処理および応答の送信にかかった時間 (ミリ秒単位)。Length of time (in milliseconds) that it takes for a request to be processed and its response to be sent. これは、Application Gateway がHTTP 要求の最初のバイトを受信してから、応答の送信操作が完了するまでの間隔として計算されます。This is calculated as the interval from the time when Application Gateway receives the first byte of an HTTP request to the time when the response send operation finishes. 通常、timeTaken フィールドには、要求パケットと応答パケットがネットワーク経由で移動する時間が含まれています。It's important to note that the Time-Taken field usually includes the time that the request and response packets are traveling over the network.
sslEnabledsslEnabled バックエンド プールへの通信に SSL を使用するかどうか。Whether communication to the back-end pools used SSL. 有効な値は on と off です。Valid values are on and off.
hosthost 要求がバックエンド サーバーに送信されたときに使用されたホスト名。The hostname with which the request has been sent to the backend server. バックエンドのホスト名が上書きされている場合、この名前にそのことが反映されます。If backend hostname is being overridden, this name will reflect that.
originalHostoriginalHost Application Gateway がクライアントから要求を受信したときに使用されたホスト名。The hostname with which the request was received by the Application Gateway from the client.
{
    "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"
    }
}

Application Gateway と WAF v2 の場合、ログにはさらにいくつかの情報が表示されます。For Application Gateway and WAF v2, the logs show a little more information:

Value 説明Description
instanceIdinstanceId 要求を処理した Application Gateway のインスタンス。Application Gateway instance that served the request.
clientIPclientIP 要求の送信元 IP。Originating IP for the request.
clientPortclientPort 要求の送信元ポート。Originating port for the request.
httpMethodhttpMethod 要求で使用される HTTP メソッド。HTTP method used by the request.
requestUrirequestUri 受信した要求の URI。URI of the received request.
UserAgentUserAgent HTTP 要求ヘッダーからのユーザー エージェント。User agent from the HTTP request header.
httpStatushttpStatus Application Gateway からクライアントに返される HTTP 状態コード。HTTP status code returned to the client from Application Gateway.
httpVersionhttpVersion 要求の HTTP バージョン。HTTP version of the request.
receivedBytesreceivedBytes 受信したパケットのサイズ (バイト単位)。Size of packet received, in bytes.
sentBytessentBytes 送信したパケットのサイズ (バイト単位)。Size of packet sent, in bytes.
timeTakentimeTaken 要求の処理および応答の送信にかかった時間 (ミリ秒単位)。Length of time (in milliseconds) that it takes for a request to be processed and its response to be sent. これは、Application Gateway がHTTP 要求の最初のバイトを受信してから、応答の送信操作が完了するまでの間隔として計算されます。This is calculated as the interval from the time when Application Gateway receives the first byte of an HTTP request to the time when the response send operation finishes. 通常、timeTaken フィールドには、要求パケットと応答パケットがネットワーク経由で移動する時間が含まれています。It's important to note that the Time-Taken field usually includes the time that the request and response packets are traveling over the network.
sslEnabledsslEnabled バックエンド プールへの通信に SSL を使用するかどうか。Whether communication to the back-end pools used SSL. 有効な値は on と off です。Valid values are on and off.
sslCiphersslCipher SSL 通信に使用されている暗号スイート (SSL が有効な場合)Cipher suite being used for SSL communication (if SSL is enabled).
sslProtocolsslProtocol 使用されている SSL プロトコル (SSL が有効な場合)SSL protocol being used (if SSL is enabled).
serverRoutedserverRouted アプリケーション ゲートウェイから要求がルーティングされる先のバックエンド サーバー。The backend server that application gateway routes the request to.
serverStatusserverStatus バックエンド サーバーの HTTP 状態コード。HTTP status code of the backend server.
serverResponseLatencyserverResponseLatency バックエンド サーバーからの応答の待機時間。Latency of the response from the backend server.
hosthost 要求のホスト ヘッダーに表示されているアドレス。Address listed in the host header of the request.
{
    "resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/PEERINGTEST/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
    "operationName": "ApplicationGatewayAccess",
    "time": "2017-04-26T19:27:38Z",
    "category": "ApplicationGatewayAccessLog",
    "properties": {
        "instanceId": "appgw_1",
        "clientIP": "191.96.249.97",
        "clientPort": 46886,
        "httpMethod": "GET",
        "requestUri": "/phpmyadmin/scripts/setup.php",
        "userAgent": "-",
        "httpStatus": 404,
        "httpVersion": "HTTP/1.0",
        "receivedBytes": 65,
        "sentBytes": 553,
        "timeTaken": 205,
        "sslEnabled": "off",
        "sslCipher": "",
        "sslProtocol": "",
        "serverRouted": "104.41.114.59:80",
        "serverStatus": "200",
        "serverResponseLatency": "0.023",
        "host": "www.contoso.com",
    }
}

パフォーマンス ログPerformance log

パフォーマンス ログは、前の手順で示したように、Application Gateway のインスタンスごとにログを有効にした場合にのみ生成されます。The performance log is generated only if you have enabled it on each Application Gateway instance, as detailed in the preceding steps. データは、ログ記録を有効にしたときに指定したストレージ アカウントに格納されます。The data is stored in the storage account that you specified when you enabled the logging. パフォーマンス ログ データは、1 分間隔で生成されます。The performance log data is generated in 1-minute intervals. 次のデータがログに記録されます。The following data is logged:

Value 説明Description
instanceIdinstanceId パフォーマンス データを生成中の Application Gateway のインスタンス。Application Gateway instance for which performance data is being generated. 複数インスタンスの Application Gateway の場合、インスタンスごとに 1 行が使用されます。For a multiple-instance application gateway, there is one row per instance.
healthyHostCounthealthyHostCount バックエンド プール内の正常なホストの数。Number of healthy hosts in the back-end pool.
unHealthyHostCountunHealthyHostCount バックエンド プール内の異常なホストの数。Number of unhealthy hosts in the back-end pool.
requestCountrequestCount 処理された要求の数。Number of requests served.
latencylatency インスタンスから要求を処理するバックエンドへの要求の平均待機時間 (ミリ秒単位)。Average latency (in milliseconds) of requests from the instance to the back end that serves the requests.
failedRequestCountfailedRequestCount 失敗した要求の数。Number of failed requests.
throughputthroughput 最後のログ以降の平均スループット (1 秒あたりのバイト数)。Average throughput since the last log, measured in bytes per second.
{
    "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 応答の最後のバイトが送信されたときまでで計算されます。Latency is calculated from the time when the first byte of the HTTP request is received to the time when the last byte of the HTTP response is sent. これは、Application Gateway の処理時間、バックエンドへのネットワーク コスト、およびバックエンドが要求の処理に要した時間を加えたものです。It's the sum of the Application Gateway processing time plus the network cost to the back end, plus the time that the back end takes to process the request.

ファイアウォール ログFirewall log

ファイアウォール ログは、前の手順で示したように、Application Gateway のインスタンスごとにログを有効にした場合にのみ生成されます。The firewall log is generated only if you have enabled it for each application gateway, as detailed in the preceding steps. このログを使用するには、Application Gateway で Web アプリケーション ファイアウォールを構成する必要もあります。This log also requires that the web application firewall is configured on an application gateway. データは、ログ記録を有効にしたときに指定したストレージ アカウントに格納されます。The data is stored in the storage account that you specified when you enabled the logging. 次のデータがログに記録されます。The following data is logged:

Value 説明Description
instanceIdinstanceId ファイアウォール データを生成中の Application Gateway のインスタンス。Application Gateway instance for which firewall data is being generated. 複数インスタンスの Application Gateway の場合、インスタンスごとに 1 行が使用されます。For a multiple-instance application gateway, there is one row per instance.
clientIpclientIp 要求の送信元 IP。Originating IP for the request.
clientPortclientPort 要求の送信元ポート。Originating port for the request.
requestUrirequestUri 受信した要求の URL。URL of the received request.
ruleSetTyperuleSetType ルール セットの種類。Rule set type. 使用できる値は OWASP です。The available value is OWASP.
ruleSetVersionruleSetVersion 使用されるルール セットのバージョン。Rule set version used. 使用できる値は 2.2.9 と 3.0 です。Available values are 2.2.9 and 3.0.
ruleIdruleId トリガーするイベントのルール ID。Rule ID of the triggering event.
messagemessage トリガーするイベントのわかりやすいメッセージ。User-friendly message for the triggering event. 詳細は details セクションに示されます。More details are provided in the details section.
actionaction 要求に対して実行されるアクション。Action taken on the request. 使用できる値は Blocked と Allowed です。Available values are Blocked and Allowed.
sitesite ログの生成対象のサイト。Site for which the log was generated. ルールがグローバルであるため、現時点では Global のみ表示されます。Currently, only Global is listed because rules are global.
detailsdetails トリガーするイベントの詳細。Details of the triggering event.
details.messagedetails.message ルールの説明。Description of the rule.
details.datadetails.data 要求で見つかった、ルールに一致するデータ。Specific data found in request that matched the rule.
details.filedetails.file ルールが含まれている構成ファイル。Configuration file that contained the rule.
details.linedetails.line イベントをトリガーした、構成ファイル内の行番号。Line number in the configuration file that triggered the event.
hostnamehostname Application Gateway のホスト名または IP アドレス。Hostname or IP address of the Application Gateway.
transactionIdtransactionId 同じ要求内で発生した複数の規則違反をグループ化するのに役立つ、指定されたトランザクションの一意の ID。Unique ID for a given transaction which helps group multiple rule violations that occurred within the same request.
{
  "resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
  "operationName": "ApplicationGatewayFirewall",
  "time": "2017-03-20T15:52:09.1494499Z",
  "category": "ApplicationGatewayFirewallLog",
  "properties": {
    "instanceId": "ApplicationGatewayRole_IN_0",
    "clientIp": "104.210.252.3",
    "clientPort": "4835",
    "requestUri": "/?a=%3Cscript%3Ealert(%22Hello%22);%3C/script%3E",
    "ruleSetType": "OWASP",
    "ruleSetVersion": "3.0",
    "ruleId": "941320",
    "message": "Possible XSS Attack Detected - HTML Tag Handler",
    "action": "Blocked",
    "site": "Global",
    "details": {
      "message": "Warning. Pattern match \"<(a|abbr|acronym|address|applet|area|audioscope|b|base|basefront|bdo|bgsound|big|blackface|blink|blockquote|body|bq|br|button|caption|center|cite|code|col|colgroup|comment|dd|del|dfn|dir|div|dl|dt|em|embed|fieldset|fn|font|form|frame|frameset|h1|head|h ...\" at ARGS:a.",
      "data": "Matched Data: <script> found within ARGS:a: <script>alert(\\x22hello\\x22);</script>",
      "file": "rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf",
      "line": "865"
    }
    "hostname": "40.90.218.100", 
    "transactionId": "AYAcUqAcAcAcAcAcASAcAcAc"
  }
} 

アクティビティ ログの表示と分析View and analyze the activity log

次のいずれかの方法を使用して、アクティビティ ログのデータを表示および分析できます。You can view and analyze activity log data by using any of the following methods:

  • Azure Tools:Azure PowerShell、Azure CLI、Azure REST API、または Azure portal を使用して、アクティビティ ログから情報を取得します。Azure tools: Retrieve information from the activity log through Azure PowerShell, the Azure CLI, the Azure REST API, or the Azure portal. それぞれの方法の詳細な手順については、「リソース マネージャーの監査操作」を参照してください。Step-by-step instructions for each method are detailed in the Activity operations with Resource Manager article.
  • Power BI:Power BI アカウントをまだ所有していない場合は、無料で試すことができます。Power BI: If you don't already have a Power BI account, you can try it for free. Power BI テンプレート アプリを使用して、データを分析できます。By using the Power BI template apps, you can analyze your data.

アクセス ログ、パフォーマンス ログ、ファイアウォール ログの表示と分析View and analyze the access, performance, and firewall logs

Azure Monitor ログでは、BLOB ストレージ アカウントからカウンターとイベントのログ ファイルを収集できます。Azure Monitor logs can collect the counter and event log files from your Blob storage account. このツールには、ログを分析するための視覚化と強力な検索機能が含まれています。It includes visualizations and powerful search capabilities to analyze your logs.

自身のストレージ アカウントに接続して、アクセス ログとパフォーマンス ログの JSON ログ エントリを取得することもできます。You can also connect to your storage account and retrieve the JSON log entries for access and performance logs. JSON ファイルをダウンロードした後、そのファイルを CSV に変換し、Excel、Power BI などのデータ視覚化ツールで表示できます。After you download the JSON files, you can convert them to CSV and view them in Excel, Power BI, or any other data-visualization tool.

ヒント

Visual Studio を使い慣れていて、C# の定数と変数の値を変更する基本的な概念を理解している場合は、GitHub から入手できるログ変換ツールを使用できます。If you are familiar with Visual Studio and basic concepts of changing values for constants and variables in C#, you can use the log converter tools available from GitHub.

GoAccess を介してアクセス ログを分析するAnalyzing Access logs through GoAccess

Microsoft は、人気のある GoAccess ログ アナライザーをインストールし、Application Gateway アクセス ログに対して実行する、Resource Manager テンプレートを発行しています。We have published a Resource Manager template that installs and runs the popular GoAccess log analyzer for Application Gateway Access Logs. GoAccess では、ユニーク ビジター、要求されたファイル、ホスト、オペレーティング システム、ブラウザー、HTTP 状態コードなど、重要な HTTP トラフィック統計情報が提供されます。GoAccess provides valuable HTTP traffic statistics such as Unique Visitors, Requested Files, Hosts, Operating Systems, Browsers, HTTP Status codes and more. 詳細については、GitHub の Resource Manager テンプレート フォルダーにある Readme ファイルを参照してください。For more details, please see the Readme file in the Resource Manager template folder in GitHub.

次の手順Next steps