Azure Storage Analytics は、BLOB、キュー、およびテーブルのログを提供します。
Azure ポータルを使用して、アカウントのログが記録されるように構成できます。 この記事では、ログを有効にして管理する方法を示します。 メトリックを有効にする方法については、 Azure Monitorを参照してください。 Azure ポータルでの監視データの調査と格納にはコストがかかります。 詳細については、「Storage Analyticsを参照してください。
注
Storage Analyticsログではなく、Azure MonitorでAzure Storageログを使用することをお勧めします。 次のうちのいずれかの記事を参照してください:
ログの有効化
BLOB、テーブル、キュー サービスの読み取り、書き込み、および削除要求の診断ログを保存するようにAzure Storageに指示できます。 設定したデータの保持ポリシーはこうしたログにも適用されます。
注
Azure Filesは現在、Storage Analyticsメトリックをサポートしていますが、Storage Analyticsログ記録はサポートしていません。
Azure ポータルで、Storage アカウントを選択し、ストレージ アカウントの名前を選択してストレージ アカウント ブレードを開きます。
メニュー ブレードの [監視 (クラシック)] セクションで [診断設定 (クラシック)] を選択します。
Azure portal の [監視] の下にある [Diagnostics] メニュー項目
[状態] を [オン] に設定して、ログを有効にするサービスを選択します。
ログを保持するには、必ず [データの削除] チェック ボックスをオンにします。 次に、チェック ボックスの下にあるスライダー コントロールを動かすか、スライダー コントロールの横にあるテキスト ボックスに表示される値を直接変更して、ログ データを保持する日数を設定します。 新しいストレージ アカウントの既定値は 7 日間です。 アイテム保持ポリシーを設定しない場合、[データの削除] チェック ボックスをオフのままにします。 保持ポリシーがない場合、ログ データを削除する責任はユーザーが負います。
警告
ログは、アカウントにデータとして格納されます。 ログ データは時間の経過と共にアカウントに蓄積されるため、ストレージのコストが増加するおそれがあります。 ログ データが必要なのが短期間のみである場合は、データ保持ポリシーを変更することでコストを削減できます。 古いログ データ (保持ポリシーよりも古いデータ) はシステムによって削除されます。 アカウントのログ データを保持する必要がある期間に基づいて、保持ポリシーを設定することをお勧めします。 詳細については、「ストレージ メトリックへの課金」を参照してください。
[保存] をクリックします。
診断ログは、ストレージ アカウントの $logs という名前の BLOB コンテナーに保存されます。 ログ データは、Microsoft Azure Storage Explorer などのストレージ エクスプローラーを使用するか、ストレージ クライアント ライブラリまたは PowerShell を使用してプログラムで表示できます。
$Logs コンテナーへのアクセスについては、「ストレージ分析ログ」を参照してください。
Windows PowerShell コマンド ウィンドウを開きます。
Connect-AzAccount コマンドを使用してAzure サブスクリプションにサインインし、画面の指示に従います。
Connect-AzAccount
自分の ID が複数のサブスクリプションに関連付けられている場合は、アクティブなサブスクリプションを設定します。
$context = Get-AzSubscription -SubscriptionId <subscription-id>
Set-AzContext $context
<subscription-id> プレースホルダーの値をサブスクリプションの ID に置き換えます。
使用するストレージ アカウントを定義するストレージ アカウント コンテキストを取得します。
$storageAccount = Get-AzStorageAccount -ResourceGroupName "<resource-group-name>" -AccountName "<storage-account-name>"
$ctx = $storageAccount.Context
Set-AzStorageServiceLoggingProperty を使用して現在のログ設定を変更します。 ストレージ ログを制御するコマンドレットでは、LoggingOperations パラメーターが使用されます。このパラメーターは文字列で、記録する要求の種類がコンマ区切り形式で含まれています。 指定できる要求の種類には、read、write、および delete の 3 つがあります。 ログをオフにするには、LoggingOperations パラメーターに none の値を指定します。
以下のコマンドでは、既定のストレージ アカウント内の Queue サービスで read、write、および delete の各要求に対するログがオンにされます。リテンション期間は 5 日間に設定されています:
Set-AzStorageServiceLoggingProperty -ServiceType Queue -LoggingOperations read,write,delete -RetentionDays 5 -Context $ctx
警告
ログは、アカウントにデータとして格納されます。 ログ データは時間の経過と共にアカウントに蓄積されるため、ストレージのコストが増加するおそれがあります。 ログ データが必要なのが短期間のみである場合は、データ保持ポリシーを変更することでコストを削減できます。 古いログ データ (保持ポリシーよりも古いデータ) はシステムによって削除されます。 アカウントのログ データを保持する必要がある期間に基づいて、保持ポリシーを設定することをお勧めします。 詳細については、「ストレージ メトリックへの課金」を参照してください。
以下のコマンドでは、既定のストレージ アカウント内の Table サービスに対するログがオフにされます:
Set-AzStorageServiceLoggingProperty -ServiceType Table -LoggingOperations none -Context $ctx
Azure サブスクリプションで動作するようにAzure PowerShell コマンドレットを構成する方法と、使用する既定のストレージ アカウントを選択する方法については、「Azure PowerShellを参照してください。
QueueServiceClient queueServiceClient = new QueueServiceClient(connectionString);
QueueServiceProperties serviceProperties = queueServiceClient.GetProperties().Value;
serviceProperties.Logging.Delete = true;
QueueRetentionPolicy retentionPolicy = new QueueRetentionPolicy();
retentionPolicy.Enabled = true;
retentionPolicy.Days = 2;
serviceProperties.Logging.RetentionPolicy = retentionPolicy;
serviceProperties.HourMetrics = null;
serviceProperties.MinuteMetrics = null;
serviceProperties.Cors = null;
queueServiceClient.SetProperties(serviceProperties);
ログのデータ保持期間を変更する
ログ データは時間の経過と共にアカウントに蓄積されるため、ストレージのコストが増加するおそれがあります。 ログ データが必要なのが短期間のみである場合は、ログ データ保持期間を変更することでコストを削減できます。 たとえば、ログが 3 日間だけ必要な場合は、ログ データ保持期間を 3 の値に設定します。 これにより、ログは 3 日後にアカウントから自動的に削除されます。 このセクションでは、現在のログ データ保持期間を確認し、必要に応じてその期間を更新する方法について説明します。
注
Azure Storage Analytics (クラシック) のログバージョンは、Azureによって自動的に設定され、構成できません。 Azure ポータルでは、既定値は Logging Version = 2.0 として表示される場合があります。
Azure ポータルで、Storage アカウントを選択し、ストレージ アカウントの名前を選択してストレージ アカウント ブレードを開きます。
メニュー ブレードの [監視 (クラシック)] セクションで [診断設定 (クラシック)] を選択します。
[データの削除] チェック ボックスがオンになっていることを確認します。 次に、チェック ボックスの下にあるスライダー コントロールを動かすか、スライダー コントロールの横にあるテキスト ボックスに表示される値を直接変更して、ログ データを保持する日数を設定します。
新しいストレージ アカウントの既定の日数は 7 日間です。 アイテム保持ポリシーを設定しない場合、[データの削除] チェック ボックスをオフのままにします。 保有ポリシーがない場合、監視データを削除する責任はユーザーが負います。
[保存] をクリックします。
診断ログは、ストレージ アカウントの $logs という名前の BLOB コンテナーに保存されます。 ログ データは、Microsoft Azure Storage Explorer などのストレージ エクスプローラーを使用するか、ストレージ クライアント ライブラリまたは PowerShell を使用してプログラムで表示できます。
$Logs コンテナーへのアクセスについては、「ストレージ分析ログ」を参照してください。
Windows PowerShell コマンド ウィンドウを開きます。
Connect-AzAccount コマンドを使用してAzure サブスクリプションにサインインし、画面の指示に従います。
Connect-AzAccount
自分の ID が複数のサブスクリプションに関連付けられている場合は、アクティブなサブスクリプションを設定します。
$context = Get-AzSubscription -SubscriptionId <subscription-id>
Set-AzContext $context
<subscription-id> プレースホルダーの値をサブスクリプションの ID に置き換えます。
ストレージ アカウントを定義するストレージ アカウント コンテキストを取得します。
$storageAccount = Get-AzStorageAccount -ResourceGroupName "<resource-group-name>" -AccountName "<storage-account-name>"
$ctx = $storageAccount.Context
Get-AzStorageServiceLoggingProperty を使用して現在のログ保持ポリシーを表示します。 次の例では、BLOB とキューのストレージ サービスの保持期間をコンソールに出力します。
Get-AzStorageServiceLoggingProperty -ServiceType Blob, Queue -Context $ctx
コンソール出力では、保持期間は RetentionDays という列見出しの下に表示されます。
Set-AzStorageServiceLoggingProperty を使用して保持期間を変更します。 次の例では、保持期間を 4 日に変更します。
Set-AzStorageServiceLoggingProperty -ServiceType Blob, Queue -RetentionDays 4 -Context $ctx
Azure サブスクリプションで動作するようにAzure PowerShell コマンドレットを構成する方法と、使用する既定のストレージ アカウントを選択する方法については、「Azure PowerShellを参照してください。
次の例では、BLOB とキューのストレージ サービスの保持期間をコンソールに出力します。
BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
QueueServiceClient queueServiceClient = new QueueServiceClient(connectionString);
BlobServiceProperties blobServiceProperties = blobServiceClient.GetProperties().Value;
QueueServiceProperties queueServiceProperties = queueServiceClient.GetProperties().Value;
Console.WriteLine("Retention period for logs from the blob service is: " +
blobServiceProperties.Logging.RetentionPolicy.Days.ToString());
Console.WriteLine("Retention period for logs from the queue service is: " +
queueServiceProperties.Logging.RetentionPolicy.Days.ToString());
次の例では、保持期間を 4 日に変更します。
BlobRetentionPolicy blobRetentionPolicy = new BlobRetentionPolicy();
blobRetentionPolicy.Enabled = true;
blobRetentionPolicy.Days = 4;
QueueRetentionPolicy queueRetentionPolicy = new QueueRetentionPolicy();
queueRetentionPolicy.Enabled = true;
queueRetentionPolicy.Days = 4;
blobServiceProperties.Logging.RetentionPolicy = blobRetentionPolicy;
blobServiceProperties.Cors = null;
queueServiceProperties.Logging.RetentionPolicy = queueRetentionPolicy;
queueServiceProperties.Cors = null;
blobServiceClient.SetProperties(blobServiceProperties);
queueServiceClient.SetProperties(queueServiceProperties);
Console.WriteLine("Retention policy for blobs and queues is updated");
ログ データが削除されていることを確認する
ストレージ アカウントの $logs コンテナーの内容を表示することで、ログが削除されていることを確認できます。 次の図は、$logs コンテナー内のフォルダーの内容を示しています。 このフォルダーは 2021 年 1 月に対応し、各フォルダーには 1 日分のログが含まれています。 今日が 2021 年 1 月 29 日であり、保持ポリシーが 1 日だけに設定されている場合、このフォルダーには 1 日だけのログが含まれています。
ログ データを表示する
ログ データを表示して分析するには、対象のログ データを含む BLOB をローカル マシンにダウンロードする必要があります。 多くのストレージ閲覧ツールを使用すると、ストレージ アカウントから BLOB をダウンロードできます。また、Azure Storage チームが提供するコマンド ライン Azureコピー ツール AzCopy を使用してログ データをダウンロードすることもできます。
注
$logs コンテナーは Event Grid と統合されていないため、ログ ファイルが書き込まれたときにユーザーは通知を受信しません。
対象のログ データをダウンロードし、同じログ データを複数回ダウンロードしないためには、以下のようにします:
AzCopyの使用を開始するには、「get started with AzCopy
次の例は、2014 年 5 月 20 日の午前 09 時、午前 10 時、および午前 11 時から Queue サービスのログ データをダウンロードする方法を示しています。
azcopy copy 'https://mystorageaccount.blob.core.windows.net/$logs/queue' 'C:\Logs\Storage' --include-path '2014/05/20/09;2014/05/20/10;2014/05/20/11' --recursive
特定のファイルをダウンロードする方法の詳細については、「AzCopy v10 を使用して Azure Blob ストレージから blob をダウンロードする」を参照してください。
ログ データのダウンロードが完了すると、ファイル内のログ エントリを表示できます。 これらのログ ファイルは、多くのログ読み取りツールが解析できる区切りテキスト形式を使用します (詳細については、ガイド 監視、診断、および Microsoft Azure Storageを参照してください)。 ログ ファイルの内容を書式設定、フィルタリング、並べ替え、AD 検索するために、各種のツールがさまざまな機能を提供しています。 ストレージ ログ ログのログ ファイルの形式と内容の詳細については、「Storage Analytics ログ形式およびStorage Analyticsログに記録された操作とステータス メッセージを参照してください。
次のステップ