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

完了

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 のログのみが作成されます。

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

  • 要求を認証した
  • 匿名要求
  • 成功した要求
  • タイムアウト、帯域幅調整、ネットワーク エラー、認可エラーなどの、失敗した要求
  • サーバー エラー
  • 共有アクセス署名を使用した要求 (失敗と成功の両方)
  • クライアントとサーバーのタイムアウト エラー
  • 分析データの要求
  • エラー コード 304 ("変更されていません") を伴う GET 要求

Azure Monitor でのリソース ログの保存

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

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

  • Log Analytics

  • ストレージ アカウント

  • イベント ハブ

  • パートナー ソリューション

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

ログをストレージ アカウントにルーティングする場合、これらのログはコンテナーに保存された BLOB として表示されます。 データは、行区切りの JSON ペイロードとして収集され、1 つの BLOB 内に格納されます。 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 に送信する場合は、ワークスペース レベルでデータ保有期間を管理したり、データの種類ごとに異なる保持設定を指定したりすることもできます。 ログをストレージ アカウントにアーカイブする場合は、ライフサイクル管理ポリシーを定義することで、ログ コンテナーのアイテム保持ポリシーを管理できます。