Azure Storage Analytics のログ
Storage Analytics は、ストレージ サービスに対する要求の成功と失敗についての詳細な情報をログに記録します。 この情報を使って個々の要求を監視したり、ストレージ サービスに関する問題を診断したりできます。 要求は、ベスト エフォートでログに記録されます。 これは、ほとんどの要求ではログ レコードが生成されますが、Storage Analytics ログの完全性と適時性は保証されないことを意味します。
Note
Microsoft では、Storage Analytics ログの代わりに、Azure Monitor の Azure Storage ログを使用することをお勧めしています。 詳細については、以下のいずれかの記事をお読みください。
既定では、お使いのストレージ アカウントで Storage Analytics のログは有効になっていません。 これは、Azure portal で、または PowerShell や Azure CLI を使用して有効にすることができます。 ステップ バイ ステップ ガイダンスについては、「Azure Storage Analytics ログを有効にして管理する (クラシック)」を参照してください。
また、プログラムから REST API またはクライアント ライブラリを使用して Storage Analytics ログを有効にすることもできます。 各サービスで Storage Analytics を有効にするには、Get Blob Service Properties、Get Queue Service Properties、および Get Table Service Properties の各操作を使用します。 .NET を使用して Storage Analytics ログを有効にする例については、ログの有効化に関するページを参照してください
ログ エントリが作成されるのは、サービス エンドポイントに対して行われた要求がある場合に限られます。 たとえば、ストレージ アカウントの BLOB エンドポイントにはアクティビティが存在するが、Table エンドポイントや Queue エンドポイントには存在しない場合、Blob service に関連したログだけが作成されます。
Note
現在、Storage Analytics のログは、BLOB、Queue、Table の各サービスでのみ使用できます。 Storage Analytics のログは、Premium パフォーマンス BlockBlobStorage アカウントでも使用できます。 ただし、Premium パフォーマンスを持つ汎用 v2 アカウントでは使用できません。
ログで記録される要求
認証済み要求のログ記録
次のタイプの認証済み要求が記録されます。
成功した要求
失敗した要求 (タイムアウト、スロットル、ネットワーク、承認などに関する各種エラー)
Shared Access Signature (SAS) または OAuth を使用した要求 (失敗した要求と成功した要求を含む)
データの分析要求
Storage Analytics そのものによる要求 (ログの作成/削除など) は記録されません。 ログに記録されるデータの一覧については、「Storage Analytics によって記録される操作およびステータス メッセージ」および「Storage Analytics のログの形式」をご覧ください。
匿名要求のログ記録
次のタイプの匿名要求が記録されます。
成功した要求
サーバー エラー
クライアントとサーバーの両方のタイムアウト エラー
エラー コード 304 (変更されていません) で失敗した GET 要求
その他の失敗した匿名要求は一切記録されません。 ログに記録されるデータの一覧については、「Storage Analytics によって記録される操作およびステータス メッセージ」および「Storage Analytics のログの形式」をご覧ください。
Note
Storage Analytics では、データ プレーンへの内部呼び出しをすべてログに記録します。 Azure Storage リソース プロバイダーからの呼び出しもログに記録されます。 これらの要求を識別するには、要求 URL でクエリ文字列 <sk=system-1>
を探します。
ログの保存方法
すべてのログは、Storage Analytics をストレージ アカウントに対して有効にしたときに自動的に作成される $logs
という名前のコンテナー内のブロック BLOB に格納されます。
$logs
コンテナーは、ストレージ アカウントの BLOB 名前空間にあります (例: http://<accountname>.blob.core.windows.net/$logs
)。 Storage Analytics を有効にした後は、このコンテナーを削除することはできません。ただし、コンテナーの内容を削除することはできます。 ストレージ閲覧ツールを使用して直接コンテナーに移動した場合は、ログ データを含むすべての BLOB が表示されます。
Note
コンテナーの一覧作成操作 ( List Containers 操作など) を実行しても、$logs
コンテナーは表示されません。 直接アクセスする必要があります。 たとえば、List Blobs 操作を使用して、$logs
コンテナー内の BLOB にアクセスできます。
要求がログに記録されると、Storage Analytics は、中間結果をブロックとしてアップロードします。 これらのブロックを定期的にコミットし、BLOB として利用できるようにします。 $logs コンテナー内の BLOB にログ データが表示されるまでに最長 1 時間かかる場合があります。これは、ストレージ サービスがログ ライターをフラッシュする頻度が原因です。 同じ時間内に作成されたログについて、重複するレコードが存在する場合があります。 レコードが重複しているかどうかは、RequestId と Operation の数をチェックすることによって確認できます。
複数のファイルに及ぶ大量のログ データが毎時間発生する場合、BLOB メタデータを使用して BLOB メタデータ フィールドを検査すると、ログに含まれているデータを確認できます。 これが便利であるのは、データがログ ファイルに書き込まれる間に遅延が発生することもあるためです。BLOB メタデータを見ると、BLOB 名を見たときよりも正確に BLOB の内容がわかります。
通常、ストレージ閲覧ツールでは、BLOB のメタデータを表示できます。この情報は、PowerShell やプログラムを使用して読み取ることもできます。 以下の PowerShell スニペットは、ログ BLOB の一覧をフィルタリングする例を示しています。名前でフィルタリングして時間を指定する部分と、メタデータでフィルタリングして write 操作を含むログのみを識別する部分が含まれています。
Get-AzStorageBlob -Container '$logs' |
Where-Object {
$_.Name -match 'blob/2014/05/21/05' -and
$_.ICloudBlob.Metadata.LogType -match 'write'
} |
ForEach-Object {
"{0} {1} {2} {3}" -f $_.Name,
$_.ICloudBlob.Metadata.StartTime,
$_.ICloudBlob.Metadata.EndTime,
$_.ICloudBlob.Metadata.LogType
}
プログラムで BLOB を一覧表示する方法については、「Enumerating Blob Resources (Blob リソースの列挙)」と「Setting and Retrieving Properties and Metadata for Blob Resources (BLOB リソースのプロパティとメタデータの設定および取得)」を参照してください。
ログの名前付け規則
各ログは以下の形式で書き込まれます。
<service-name>/YYYY/MM/DD/hhmm/<counter>.log
以下の表は、ログ名内の各属性を説明しています。
属性 | 説明 |
---|---|
<service-name> |
ストレージ サービスの名前。 たとえば、blob 、table 、queue などがあります。 |
YYYY |
ログの 4 桁表記の年。 例: 2011 |
MM |
ログの 2 桁表記の月。 例: 07 |
DD |
ログの 2 桁表記の日。 例: 31 |
hh |
ログの開始時刻 (時) を示す 2 桁の数字 (24 時間制 UTC 形式)。 例: 18 |
mm |
ログの開始時刻 (分) を示す 2 桁の数字。
注: 現在のバージョンの Storage Analytics ではこの値はサポートされず、常に 00 になります。 |
<counter> |
1 時間おきにストレージ サービスに対して生成されるログ BLOB の数を示す 0 から始まる 6 桁のカウンター。 このカウンターの初期値は 000000 です。 例: 000001 |
上記の例をすべて組み合わせたサンプルのログ名は、以下のようになります。
blob/2011/07/31/1800/000001.log
上記のログにアクセスするための URI の例を以下に示します。
https://<accountname>.blob.core.windows.net/$logs/blob/2011/07/31/1800/000001.log
ストレージ要求がログに記録されるとき、生成されるログの名前は、要求された操作が完了した時刻が基準となります。 たとえば、GetBlob 要求が 2011 年 7 月 31 日の午後 6 時 30 分に完了した場合、書き込まれるログのプレフィックスは、blob/2011/07/31/1800/
になります。
ログのメタデータ
すべてのログ BLOB はメタデータと共に格納されます。このメタデータを使って、BLOB に含まれるログ データを特定できます。 それぞれのメタデータ属性について以下の表で説明します。
属性 | 説明 |
---|---|
LogType |
読み取り、書き込み、削除の各操作に関連した情報がログに含まれているかどうかを表します。 この値には、操作の種類が 1 つだけ含まれている場合もあれば、3 つすべてがコンマ区切りで記録されている場合もあります。 例 1: write 例 2: read,write 例 3: read,write,delete |
StartTime |
ログに含まれる最も古いエントリの時刻です (YYYY-MM-DDThh:mm:ssZ 形式)。 例: 2011-07-31T18:21:46Z |
EndTime |
ログに含まれる最も新しいエントリの時刻です (YYYY-MM-DDThh:mm:ssZ 形式)。 例: 2011-07-31T18:22:09Z |
LogVersion |
ログのフォーマットのバージョン。 |
上記の例を使用したサンプル メタデータを以下に示します。
LogType=write
StartTime=2011-07-31T18:21:46Z
EndTime=2011-07-31T18:22:09Z
LogVersion=1.0
ログ エントリ
次のセクションでは、サポートされている各 Azure Storage サービスのログ エントリの例を示します。
Blob Storage のログ エントリの例
2.0;2022-01-03T20:34:54.4617505Z;PutBlob;SASSuccess;201;7;7;sas;;logsamples;blob;https://logsamples.blob.core.windows.net/container1/1.txt?se=2022-02-02T20:34:54Z&sig=XXXXX&sp=rwl&sr=c&sv=2020-04-08&timeout=901;"/logsamples/container1/1.txt";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;71.197.193.44:53371;2019-12-12;654;13;337;0;13;"xxxxxxxxxxxxxxxxxxxxx==";"xxxxxxxxxxxxxxxxxxxxx==";""0x8D9CEF88004E296"";Monday, 03-Jan-22 20:34:54 GMT;;"Microsoft Azure Storage Explorer, 1.20.1, win32, azcopy-node, 2.0.0, win32, AzCopy/10.11.0 Azure-Storage/0.13 (go1.15; Windows_NT)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx";;;;;;;;
Blob Storage のログ エントリの例 (Data Lake Storage Gen2 が有効)
2.0;2022-01-04T22:50:56.0000775Z;RenamePathFile;Success;201;49;49;authenticated;logsamples;logsamples;blob;"https://logsamples.dfs.core.windows.net/my-container/myfileorig.png?mode=legacy";"/logsamples/my-container/myfilerenamed.png";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;73.157.16.8;2020-04-08;591;0;224;0;0;;;;Friday, 11-Jun-21 17:58:15 GMT;;"Microsoft Azure Storage Explorer, 1.19.1, win32 azsdk-js-storagedatalake/12.3.1 (NODE-VERSION v12.16.3; Windows_NT 10.0.22000)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx";;;;;;;;
Queue Storage のログ エントリの例
2.0;2022-01-03T20:35:04.6097590Z;PeekMessages;Success;200;5;5;authenticated;logsamples;logsamples;queue;https://logsamples.queue.core.windows.net/queue1/messages?numofmessages=32&peekonly=true&timeout=30;"/logsamples/queue1";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;71.197.193.44:53385;2020-04-08;536;0;232;62;0;;;;;;"Microsoft Azure Storage Explorer, 1.20.1, win32 azsdk-js-storagequeue/12.3.1 (NODE-VERSION v12.16.3; Windows_NT 10.0.22000)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx";;;;;;;;
Table Storage のログ エントリの例
1.0;2022-01-03T20:35:13.0719766Z;CreateTable;Success;204;30;30;authenticated;logsamples;logsamples;table;https://logsamples.table.core.windows.net/Tables;"/logsamples/Table1";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;71.197.193.44:53389;2018-03-28;601;22;339;0;22;;;;;;"Microsoft Azure Storage Explorer, 1.20.1, win32, Azure-Storage/2.10.3 (NODE-VERSION v12.16.3; Windows_NT 10.0.22000)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"