Application Gateway ログは、リソースとその操作に関連するイベントの詳細情報を提供します。 これらのログは、アクセス、アクティビティ、ファイアウォール、パフォーマンスなどのイベントで使用できます (V1 の場合のみ)。 ログの詳細な情報は、問題のトラブルシューティングを行ったり、この生データを使用して分析ダッシュボードを構築したりするときに役立ちます。
ログは Application Gateway のすべてのリソースで利用できますが、利用するには、選択した保存場所でその収集を有効にする必要があります。 Azure Application Gateway のログは、Azure Monitor サービスによって有効になります。 Log Analytics ワークスペースを使用すると、定義済みクエリをすぐに使用したり、特定のログ条件に基づいてアラートを設定したりできるため、これを使用することをお勧めします。
リソース ログの種類
Azure の各種ログを使用して、アプリケーション ゲートウェイの管理とトラブルシューティングを行うことができます。
- アクティビティ ログ
- Application Gateway のアクセス ログ
- Application Gateway のパフォーマンス ログ (v1 SKU でのみ使用可能)
- Application Gateway のファイアウォール ログ
注
ログは、Azure Resource Manager デプロイ モデルでデプロイされたリソースについてのみ使用できます。 クラシック デプロイ モデルのリソースでログを使用することはできません。 2 つのモデルについて理解を深めるには、「Resource Manager デプロイとクラシック デプロイ」を参照してください。
診断ログの保存場所
Azure Monitor には、分析、リテンション期間、統合の要件に応じて、リソース ログを格納するための複数のオプションが用意されています。 診断設定を構成する場合は、ログ収集の 1 つ以上の宛先を選択できます。
Log Analytics ワークスペース (推奨) Log Analytics ワークスペースは、Application Gateway リソース ログを収集して分析するための推奨先です。 これにより、次のことが可能になります。
- 定義済みのクエリと視覚化の使用
- 特定のログ条件に基づくアラートの作成
- Log Analytics での Azure Monitor の機能と分析情報との統合は、診断ログの格納に使用されるテーブルは、診断設定で構成されているコレクションの種類によって異なります。
Log Analytics のコレクションの種類
Azure Diagnostics (レガシ): Azure Diagnostics を選択すると、すべてのログが共有 AzureDiagnostics テーブルに書き込まれます。このテーブルは多くのリソースの種類で共有されるため、各サービスは独自のカスタム フィールドを書き込みます。 ユーザー設定フィールドの数が 500 を超えると、AdditionalFields 動的プロパティの下に追加のフィールドがキーと値のペアとして格納されます。 これにより、検出可能性が低下し、クエリが複雑になる可能性があります。
リソース固有 (推奨): リソース固有を選択すると、ログはカテゴリごとに専用テーブルに書き込まれます。 リソース固有モードでは、次の機能が提供されます。
- 予測可能なスキーマを使用した簡略化されたクエリ
- フィールドとテーブル構造の検出可能性の向上
- インジェストの待機時間が短く、クエリの実行速度が速いため、パフォーマンスが向上します
- テーブル レベルでのアクセス割り当てによるきめ細かい RBAC
Application Gateway の場合、リソース固有モードでは次のテーブルが作成されます。
Log Analytics でのコレクションの種類の選択
Azure サービスはリソース固有のモードに移行しています。 この移行の一環として、診断設定でトグルを使用して、次のいずれかを選択できます。
- リソース固有 (既定)
- Azure Diagnostics
この切り替えでは、選択したカテゴリのログを専用テーブルまたは AzureDiagnostics テーブルにルーティングするかどうかを決定します。 リソース固有モードに切り替える場合、新しく選択したカテゴリのみが専用テーブルを使用します。既存のストリームは再構成されるまで変更されません。
リソース固有モードを選択すると、ワークスペース変換による柔軟性が向上し、インジェスト前にデータを前処理できます。ワークスペース変換の構成に関するガイダンスについては、「チュートリアル: Azure portal を使用して Azure Monitor ログにワークスペース変換を追加する」を参照してください。
ワークスペース変換を使用してアクセス ログを最適化する例
例 1: 列の選択的プロジェクション: 20 列のアプリケーション ゲートウェイ アクセス ログがあるが、6 つの特定の列からのデータのみを分析することに関心があるとします。 ワークスペース変換を使用すると、これらの 6 つの列をワークスペースに投影できます。他の 14 列は実質的に除外されます。 除外された列の元のデータは保存されませんが、[ログ] ブレードに空のプレースホルダーが表示されます。 この方法では、ストレージが最適化され、分析のために関連するデータのみが保持されます。
注
[ログ] ブレードで、[新しい Log Analytics を試す] オプションを選択すると、ユーザー インターフェイスに表示される列をより詳しく制御できます。
例 2: 特定の状態コードに焦点を当てる: アクセス ログを分析するときに、すべてのログ エントリを処理するのではなく、特定の HTTP 状態コード (4xx や 5xx など) を持つ行のみを取得するクエリを記述できます。 ほとんどの要求は 2xx と 3xx (正常な応答を表します) のカテゴリに分類されることが望ましいため、問題のある状態コードに焦点を当てると、データ セットを絞り込めます。 この標的を絞ったアプローチを使用すると、最も関連性が高く実用的な情報を抽出し、有益でコスト効率の高い情報を得ることができます。
Azure 分析からリソース固有のテーブルに移行するための推奨される移行戦略:
- 現在のデータ保有期間を評価する: Azure 診断テーブルに現在保持されているデータの期間を決定します (たとえば、診断テーブルに 15 日間データが保持されると仮定します)。
- リソース固有のリテンション期間を確立する: リソース固有のテーブルを使用して新しい診断設定を実装します。
- 並列データ収集: 一時的に、Azure Diagnostics とリソース固有の設定の両方で同時にデータを収集します。
- データの精度を確認する: 両方の設定でデータ収集が正確で一貫性があることを確認します。
- Azure 診断設定の削除: 重複するデータ収集を防ぐために、Azure 診断設定を削除します。
他の保存場所:
- Azure Storage アカウント: ストレージ アカウントは、ログを長期間保存し、必要に応じて参照する場合に最適です。
- Azure Event Hubs:イベント ハブは、他のセキュリティ情報/イベント管理 (SIEM) ツールと統合してリソースに関するアラートを取得する場合に便利なオプションです。
- Azure Monitor パートナーとの統合。
Azure Monitor の診断設定の宛先について説明します。
PowerShell を使用したログの有効化
アクティビティ ログは、Resource Manager のすべてのリソースで自動的に有効になります。 アクセス ログとパフォーマンス ログで使用可能なデータの収集を開始するには、これらのログを有効にする必要があります。 ログ記録を有効にするには、次の手順に従います。
ログ データを保存するストレージ アカウントのリソース ID をメモしておきます。 この値の形式は、/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Storage/storageAccounts/<storageAccountName> です。 サブスクリプション内の任意のストレージ アカウントを使用できます。 この情報は、Azure portal で確認できます。
ログを有効にするアプリケーション ゲートウェイのリソース ID をメモしておきます。 この値は、/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/applicationGateways/<applicationGatewayName> の形式です。 この情報は、ポータルで確認できます。
次の PowerShell コマンドレットを使用して、診断ログを有効にします。
Set-AzDiagnosticSetting -ResourceId /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/applicationGateways/<applicationGatewayName> -StorageAccountId /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Storage/storageAccounts/<storageAccountName> -Enabled $true
ヒント
アクティビティ ログには、別のストレージ アカウントは必要ありません。 アクセス ログとパフォーマンス ログにストレージを使用すると、サービス料金が発生します。
Azure portal を使用してログを有効にする
Azure portal で、ご使用のリソースを見つけ、[診断設定] を選択します。
Application Gateway では、次の 3 つのログを使用できます。
- アクセス ログ
- パフォーマンス ログ (v1 SKU でのみ使用可能)
- ファイアウォール ログ
データの収集を開始するには、[診断を有効にする] を選択します。
[診断設定] ページに、診断ログの設定が表示されます。 この例では、Log Analytics を使用してログを保存します。 イベント ハブとストレージ アカウントを使用して診断ログを保存することもできます。
設定の名前を入力し、設定を確認した後、[保存] を選択します。
アクティビティ ログ データを表示および分析するには、「監視データを分析する」を参照してください。
アクセス ログ、パフォーマンス ログ、ファイアウォール ログの表示と分析
Azure Monitor ログでは、BLOB ストレージ アカウントからカウンターとイベントのログ ファイルを収集できます。 詳細については、「監視データを分析する」を参照してください。
自身のストレージ アカウントに接続して、アクセス ログとパフォーマンス ログの JSON ログ エントリを取得することもできます。 JSON ファイルをダウンロードした後、そのファイルを CSV に変換し、Excel、Power BI などのデータ視覚化ツールで表示できます。
ヒント
Visual Studio を使い慣れていて、C# の定数と変数の値を変更する基本的な概念を理解している場合は、GitHub から入手できるログ変換ツールを使用できます。
次のステップ
- Azure Monitor ログを使用して、カウンターとイベント ログを視覚化します。
- Power BI を使用した Azure アクティビティ ログの視覚化に関するブログ記事。
- Power BI などでの Azure アクティビティ ログの表示と分析に関するブログ記事。