ストレージ リソース ログを使用したトラブルシューティング

完了

Azure Storage リソース ログは、ストレージ アカウントで実行された各操作と、これらの操作の結果をキャプチャします。 これらのログは、メトリックに表示される操作の分単位の概要を提供するのではなく、行われた各要求に関する詳細を提供します。 ログ情報を使用して、ストレージ アカウントに対して行われた要求の性質を調べ、これらの要求が成功したかどうかを判断できます。

このユニットでは、Azure Monitor の Azure Storage リソース ログについて説明します。 ログにキャプチャされたさまざまな種類の情報が表示され、この情報を使用して、アプリケーションが Azure Storage を使用するときに発生する可能性がある問題を検出する方法について説明します。

Azure Monitor のリソース ログ

パフォーマンス関連のメトリックよりも、ストレージ トランザクションの詳細を確認したい場合があります。 メトリックはパフォーマンスや需要の全体的な傾向を追跡するのに役立ちますが、トランザクション メトリックを監視しても、要求された URL を明らかにすることはできません。 また、使用可能なストレージ メトリックのいずれも、特定の要求に関連するエラー メッセージを報告できません。

Azure Monitor のリソース ログでは、この種の詳細情報がキャプチャされ、特定の要求の背後にある詳細を調べるのに役立ちます。 たとえば、特定のリソースに対して認証または匿名、成功、または失敗した要求の数を知りたい場合は、これらのログを使用できます。

リソース ログを収集するには、診断設定を作成する必要があります。 リソース ログには、ストレージ アカウントに対する成功した要求と失敗した要求が一覧表示されます。 要求は、特定のストレージ サービス (Azure Blob Storage、Table Storage、または Queue Storage) に対する読み取り、書き込み、または削除操作として記録されます。 診断設定を使用すると、ログを Log Analytics、ストレージ アカウントにルーティングしたり、イベント ハブまたはパートナー ソリューションにストリーム配信したりできます。

リソース ログを使用して、さまざまな種類と要求の頻度を確認したり、失敗した要求のトラブルシューティングを行ったりできます。 ログは、トランザクションが発生した場合にのみ生成され、特定のサービス エンドポイントに対してのみ生成されます。 そのため、Blob Storage エンドポイントと Queue Storage エンドポイントでストレージを使用していて、Blob Storage エンドポイントにのみ要求またはトランザクションがある場合、システムは Blob Storage のログのみを作成します。

ログ記録を有効にすると、次の種類の要求がログに記録されます。

  • 認証された要求。
  • 匿名要求。
  • 成功した要求
  • 失敗した要求。 タイムアウト、調整、ネットワーク エラー、承認エラーなど。
  • サーバー エラー。
  • Shared Access Signature を使用する要求 (失敗と成功の両方)。
  • クライアントとサーバーのタイムアウト エラー。
  • データの分析要求
  • エラー コード 304 ("未変更") で失敗した GET 要求。

Azure Monitor でのリソース ログのストレージ

ストレージ アカウントのリソース ログは自動的に生成されますが、それらのログは、送信先に送信しない限り表示できません。 診断設定を使用して、それらを送信する場所を指定できます。

診断設定を作成するときは、ログのルーティングに関心のあるストレージの種類を選択します。 たとえば、Blob Storage や File Storage などです。 次に、ログに表示する操作の種類を選択します。 たとえば、読み取り、書き込み、または削除の操作です。 最後に、ログを送信する場所を選択します。 ログは、次のいずれかの場所に送信できます。

  • ログ解析
  • ストレージ アカウント
  • イベント ハブ
  • パートナー ソリューション

Azure Monitor ログ クエリを使用して、Log Analytics ワークスペースに送信されたログにアクセスできます。

ログをストレージ アカウントにルーティングすると、それらのログはコンテナーに格納された BLOB として表示されます。 データは、1 つの BLOB 内で行区切り JSON ペイロードとして収集および格納されます。 BLOB の名前は、次の名前付け規則に従います。

https://<destination-storage-account>.blob.core.windows.net/insights-logs-<storage-operation>/resourceId=/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<source-storage-account>/blobServices/default/y=<year>/m=<month>/d=<day>/h=<hour>/m=<minute>/PT1H.json

イベント ハブに送信されたログはファイルとして保存されませんが、イベント ハブがログ情報を受信したことを確認できます。 Azure portal でイベント ハブを開き、受信メッセージの数を調べるだけです。

プラットフォームメトリックとログを特定の Azure Monitor パートナーに送信することもできます。 最初に、パートナー統合をサブスクリプションにインストールする必要があります。 構成オプションはパートナーによって異なります。

ログ データの保持ポリシーを設定することはできません。 Log Analytics にログを送信する場合は、ワークスペース レベルでデータ保有期間を管理したり、データの種類ごとに異なる保持設定を指定したりできます。 ログをストレージ アカウントにアーカイブする場合は、ライフサイクル管理ポリシーを定義することで、ログ コンテナーの保持ポリシーを管理できます。