Application Gateway の診断ログ
Application Gateway ログは、リソースとその操作に関連するイベントの詳細情報を提供します。 これらのログは、アクセス、アクティビティ、ファイアウォール、パフォーマンスなどのイベントで使用できます (V1 の場合のみ)。 ログの詳細な情報は、問題のトラブルシューティングを行ったり、この生データを使用して分析ダッシュボードを構築したりするときに役立ちます。
ログは Application Gateway のすべてのリソースで利用できますが、利用するには、選択した保存場所でその収集を有効にする必要があります。 Azure Application Gateway のログは、Azure Monitor サービスによって有効になります。 Log Analytics ワークスペースを使用すると、定義済みクエリをすぐに使用したり、特定のログ条件に基づいてアラートを設定したりできるため、これを使用することをお勧めします。
リソース ログの種類
Azure の各種ログを使用して、アプリケーション ゲートウェイの管理とトラブルシューティングを行うことができます。
- アクティビティ ログ
- Application Gateway のアクセス ログ
- Application Gateway のパフォーマンス ログ (v1 SKU でのみ使用可能)
- Application Gateway のファイアウォール ログ
Note
ログは、Azure Resource Manager デプロイ モデルでデプロイされたリソースについてのみ使用できます。 クラシック デプロイ モデルのリソースでログを使用することはできません。 2 つのモデルについて理解を深めるには、「Resource Manager デプロイとクラシック デプロイ」を参照してください。
ワークスペース変換を使用してアクセス ログを最適化する例
例 1: 列の選択的投影: 20 列のアプリケーション ゲートウェイ アクセス ログがあり、そのうち 6 つの特定の列にあるデータのみを分析したい場合を考慮します。 ワークスペース変換を使用すると、これらの 6 つの列をワークスペースに投影し、他の 14 列は実質的に除外することができます。 除外された列の元のデータは保存されませんが、それらの空のプレースホルダーは [ログ] ブレードに表示されます。 この方法では、ストレージが最適化され、分析のために関連するデータのみが保持されます。
Note
[ログ] ブレードで、[新しい 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/<サブスクリプション ID>/resourceGroups/<リソース グループ名>/providers/Microsoft.Storage/storageAccounts/<ストレージ アカウント名> です。 サブスクリプション内の任意のストレージ アカウントを使用できます。 この情報は、Azure Portal で確認できます。
ログを有効にするアプリケーション ゲートウェイのリソース ID をメモしておきます。 この値の形式は、/subscriptions/<サブスクリプション ID>/resourceGroups/<リソース グループ名>/providers/Microsoft.Network/applicationGateways/<Application Gateway 名> です。 この情報は、ポータルで確認できます。
次の PowerShell コマンドレットを使用して、診断ログを有効にします。
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
ヒント
アクティビティ ログでは別のストレージ アカウントは "必要" ありません。 アクセス ログとパフォーマンス ログにストレージを使用すると、サービス料金が発生します。
Azure Portal を使用したログの有効化
Azure portal で、ご使用のリソースを見つけ、 [診断設定] を選択します。
Application Gateway では、次の 3 つのログを使用できます。
- アクセス ログ
- パフォーマンス ログ
- ファイアウォール ログ
データの収集を開始するには、 [診断を有効にする] を選択します。
[診断設定] ページに、診断ログの設定が表示されます。 この例では、Log Analytics を使用してログを保存します。 イベント ハブとストレージ アカウントを使用して診断ログを保存することもできます。
設定の名前を入力し、設定を確認した後、 [保存] を選択します。
アクティビティ ログ データを表示および分析するには、「監視データを分析する」を参照してください。
アクセス ログ、パフォーマンス ログ、ファイアウォール ログの表示と分析
Azure Monitor ログでは、BLOB ストレージ アカウントからカウンターとイベントのログ ファイルを収集できます。 詳細については、「監視データを分析する」を参照してください。
自身のストレージ アカウントに接続して、アクセス ログとパフォーマンス ログの JSON ログ エントリを取得することもできます。 JSON ファイルをダウンロードした後、そのファイルを CSV に変換し、Excel、Power BI などのデータ視覚化ツールで表示できます。
ヒント
Visual Studio を使い慣れていて、C# の定数と変数の値を変更する基本的な概念を理解している場合は、GitHub から入手できるログ変換ツールを使用できます。
次のステップ
- Azure Monitor ログを使用して、カウンターとイベント ログを視覚化します。
- Power BI を使用した Azure アクティビティ ログの視覚化に関するブログ
- Power BI などでの Azure アクティビティ ログの表示と分析に関するブログ