Azure Application Gateway の監視

Azure リソースに依存するクリティカルなアプリケーションとビジネス プロセスがある場合は、それらのリソースの可用性、パフォーマンス、操作を監視する必要があります。

この記事では、Azure Application Gateway によって生成される監視データについて説明します。 Azure Application Gateway では、Azure Monitor が使用されます。 Azure Monitor を使用するすべての Azure サービスにとって共通する機能に詳しくない場合は、「Azure Monitor を使用した Azure リソースの監視」を参照してください。

Azure portal の [監視の概要] ページ

各 Application Gateway の Azure portal 内の [概要] ページには、次のメトリックが含まれます。

  • 合計要求の総数
  • 失敗した要求の合計
  • HttpStatus 別の応答状態の合計
  • 合計スループット
  • CurrentConnections の合計
  • BackendPool HttpSettings 別の正常なホスト数の平均
  • BackendPool HttpSettings 別の正常ではないホスト数の平均

この一覧は、Application Gateway で利用可能なメトリックのサブセットに過ぎません。 詳細については、Azure Application Gateway の監視データのリファレンスに関する記事をご覧ください。

Azure Monitor Network Insights

Azure の一部のサービスには、サービス監視の起点となることを目的として特別に事前構築された監視ダッシュボードが Azure portal にあります。 これらの特別なダッシュボードは、"分析情報" と呼ばれます。

Azure Monitor Network Insights を使用すると、デプロイされたすべてのネットワーク リソース (Application Gateway を含む) の正常性とメトリックを、構成なしで包括的に把握できます。 詳細については、Azure Monitor Network Insights を参照してください。

データの監視

Azure Application Gateway では、他の Azure リソースと同じ種類の監視データが収集されます。これについては、Azure リソースの監視データに関するページをご覧ください。

Azure Application Gateway によって作成されるメトリックとログ メトリックの詳細については、「Azure Application Gateway の監視データのリファレンス」を参照してください。

収集とルーティング

プラットフォーム メトリックとアクティビティ ログは自動的に収集および格納されますが、診断設定を使用して他の場所にルーティングすることもできます。

リソース ログは、診断設定を作成して 1 つ以上の場所にルーティングするまでは収集および格納されません。

Azure portal、CLI、または PowerShell を使用して診断設定を作成するプロセスの詳細については、「Azure でプラットフォーム ログとメトリックを収集するための診断設定を作成する」を参照してください。 診断設定を作成するときは、収集するログのカテゴリを指定します。 Azure Application Gateway のカテゴリは、「Azure Application Gateway の監視データのリファレンス」に記載されています。

収集できるメトリックとログについては、次のセクションで説明します。

メトリックの分析

メトリックス エクスプローラーを使用して、Azure Application Gateway のメトリックを他の Azure サービスからのメトリックと一緒に分析するには、Azure Monitor のメニューから [メトリック] を開きます。 このツールの使用方法の詳細については、「Azure Monitor メトリック エクスプローラーを使用してメトリックを分析する」を参照してください。

Azure Application Gateway 用に収集されるプラットフォーム メトリックの一覧については、「Azure Application Gateway の監視データのリファレンス」を参照してください。

参考のために、Azure Monitor でサポートされているすべてのリソース メトリックの一覧を確認できます。

ログの分析

Azure Monitor ログのデータはテーブルに格納され、各テーブルには独自の一意のプロパティ セットがあります。

Azure Monitor 内のすべてのリソース ログには、同じフィールドの後にサービス固有のフィールドがあります。 「Azure リソース ログの共通およびサービス固有のスキーマ」には、共通スキーマの概要が記載されています。

アクティビティ ログは、サブスクリプション レベルのイベントの分析情報を提供するプラットフォーム ログイン Azure です。 個別に表示できるほか、Azure Monitor ログにルーティングして、Log Analytics を使用してより複雑なクエリを実行することもできます。

Azure Application Gateway 用に収集されるリソース ログの種類の一覧については、「Azure Application Gateway の監視データのリファレンス」を参照してください。

Azure Monitor ログによって使用され、Log Analytics によってクエリ可能なテーブルの一覧については、「Azure Application Gateway の監視データのリファレンス」を参照してください。

サンプル Kusto クエリ

重要

Application Gateway メニューから [ログ] を選択すると、Log Analytics が開き、クエリ スコープは現在の Application Gateway に設定されています。 つまり、ログ クエリには、そのリソースからのデータのみが含まれます。 他の Application Gateway のデータや他の Azure サービスのデータを含むクエリを実行する場合は、[Azure Monitor] メニューから [ログ] を選択します。 詳細については、「Azure Monitor Log Analytics のログ クエリのスコープと時間範囲」を参照してください。

次のクエリを使用すると、ご自身の Application Gateway リソースを監視することができます。

// Requests per hour 
// Count of the incoming requests on the Application Gateway. 
// To create an alert for this query, click '+ New alert rule'
AzureDiagnostics
| where ResourceType == "APPLICATIONGATEWAYS" and OperationName == "ApplicationGatewayAccess"
| summarize AggregatedValue = count() by bin(TimeGenerated, 1h), _ResourceId
| render timechart 
// Failed requests per hour 
// Count of requests to which Application Gateway responded with an error. 
// To create an alert for this query, click '+ New alert rule'
AzureDiagnostics
| where ResourceType == "APPLICATIONGATEWAYS" and OperationName == "ApplicationGatewayAccess" and httpStatus_d > 399
| summarize AggregatedValue = count() by bin(TimeGenerated, 1h), _ResourceId
| render timechart
// Top 10 Client IPs 
// Count of requests per client IP. 
AzureDiagnostics
| where ResourceType == "APPLICATIONGATEWAYS" and OperationName == "ApplicationGatewayAccess"
| summarize AggregatedValue = count() by clientIP_s
| top 10 by AggregatedValue
// Errors by user agent 
// Number of errors by user agent. 
// To create an alert for this query, click '+ New alert rule'
AzureDiagnostics
| where ResourceType == "APPLICATIONGATEWAYS" and OperationName == "ApplicationGatewayAccess" and httpStatus_d > 399
| summarize AggregatedValue = count() by userAgent_s, _ResourceId
| sort by AggregatedValue desc

警告

Azure Monitor のアラートは、監視データで重要な状態が見つかると事前に通知します。 これにより、ユーザーが気付く前に、管理者が問題を識別して対処できます。 アラートはメトリックログアクティビティ ログに対して設定できます。 アラートの種類に応じて、さまざまな利点と欠点があります。

Application Gateway を使用するアプリケーションを作成または実行している場合、Azure Monitor Application Insights により別の種類のアラートが提供されることがあります。

次の表に、Application Gateway の一般的な警告ルールと推奨される警告ルールを示します。

Application Gateway v1

アラートの種類 条件 説明
メトリック CPU 使用率が 80% を超える 通常の状況では、CPU 使用率が 90% を超えることは望ましくありません。 これは Application Gateway の背後でホストされている Web サイトで待機時間が発生し、クライアント エクスペリエンスを乱す可能性があるためです。
メトリック 異常なホストの数がしきい値を超える Application Gateway で正常にプローブできないバックエンド サーバーの数を示します。 これにより、Application Gateway のインスタンスをバックエンドに接続できない問題が検出されます。 この数値がバックエンド容量の 20% を超えたらアラートを出します。
メトリック 応答の状態 (4xx、5xx) がしきい値を超える Application Gateway の応答の状態が 4xx または 5xx の場合。 一時的な問題が原因で 4xx または 5xx の応答が時々発生することがあります。 運用環境を観察して静的しきい値を判別するか、アラートに動的しきい値を使用してください。
メトリック 失敗した要求の数がしきい値を超える 失敗した要求のメトリックがしきい値を超えた場合。 運用環境を観察して静的しきい値を判別するか、アラートに動的しきい値を使用してください。

Application Gateway v2

アラートの種類 条件 説明
メトリック コンピューティング ユニット使用率が平均使用量の 75% を超える コンピューティング ユニットは、Application Gateway のコンピューティング使用率の測定単位です。 過去 1 か月間の平均コンピューティング ユニット使用率を確認し、その 75% を超えた場合にアラートを設定します。
メトリック 容量ユニットの使用率がピーク時の使用量の 75% を超える 容量ユニットは、スループット、コンピューティング、接続数の観点から、全体的なゲートウェイ使用率を表します。 過去 1 か月間の最大容量ユニット使用量を確認し、その 75% を超えた場合にアラートを設定します。
メトリック 異常なホストの数がしきい値を超える Application Gateway で正常にプローブできないバックエンド サーバーの数を示します。 これで、Application Gateway のインスタンスをバックエンドに接続できない問題が検出されます。 この数値がバックエンド容量の 20% を超えたらアラートを出します。
メトリック 応答の状態 (4xx、5xx) がしきい値を超える Application Gateway の応答の状態が 4xx または 5xx の場合。 一時的な問題が原因で 4xx または 5xx の応答が時々発生することがあります。 運用環境を観察して静的しきい値を判別するか、アラートに動的しきい値を使用してください。
メトリック 失敗した要求の数がしきい値を超える 失敗した要求のメトリックがしきい値を超えた場合。 運用環境を観察して静的しきい値を判別するか、アラートに動的しきい値を使用してください。
メトリック バックエンドの最後のバイトの応答時間がしきい値を超える バックエンド サーバーへの接続の確立を開始してから応答本文の最後のバイトを受信するまでの時間間隔を示します。 バックエンドの応答待機時間が、通常の特定のしきい値を超えた場合にアラートを作成します。
メトリック Application Gateway の合計時間がしきい値を超える これは、Application Gateway が HTTP 要求の最初のバイトを受信してから、最後の応答バイトがクライアントに送信されるまでの間隔です。 バックエンドの応答待機時間が、通常の特定のしきい値を超えた場合にアラートを作成します。

次のステップ