啟用和管理 Azure 儲存體分析記錄 (傳統)
本文內容
Azure 儲存體分析 提供 blob、佇列和資料表的記錄。 您可以使用 Azure 入口網站 來為您的客戶紀錄記錄檔。 本文說明如何啟用和管理記錄。 若要瞭解如何啟用計量,請參閱 轉換至 Azure 監視器 中的計量。 在 Azure 入口網站中查看和儲存監視資料會衍生相關成本。 如需詳細資訊,請參閱儲存體分析 。
注意
我們建議您在 Azure 監視器中使用 Azure 儲存體記錄,而不是儲存體分析記錄。 請參閱以下任一篇文章:
啟用記錄
您可以指示 Azure 儲存體,讓它將 Blob、資料表和佇列服務之讀取、寫入及刪除要求的診斷記錄儲存起來。 您已設定的資料保留原則同樣適用於這些記錄。
注意
Azure 檔案服務目前支援儲存體分析計量,但還不支援儲存體分析記錄。
在 Azure 入口網站 中,選取 [儲存體帳戶] ,然後選取儲存體帳戶名稱以開啟 [儲存體帳戶] 刀鋒視窗。
在功能表刀鋒視窗的 [監視 (傳統)] 區段中選取 [診斷設定 (傳統)] 。
確定 [狀態] 已設為 [開啟] ,然後選取要為其啟用記錄的 [服務] 。
若要保留記錄,請確定已選取 [刪除資料] 核取方塊。 然後,將滑桿控制項移到核取方塊下方,或直接修改滑桿控制項旁邊文字方塊中顯示的值,以設定您想要保留記錄資料的天數。 新儲存體帳戶的預設值是 7 天。 如果您不想要設定保留原則,請將 [刪除資料] 核取方塊保持未核取狀態。 如果沒有保留原則,您可以決定是否刪除記錄資料。
警告
記錄會以資料的形式儲存在您的帳戶中。 記錄資料可以在您的帳戶中累積一段時間,這可能導致儲存體成本增加。 如果您只需要一小段時間的記錄資料,可藉由修改資料保留原則來降低成本。 系統會刪除過時的記錄資料 (早於保留原則的資料)。 建議您根據要將帳戶的記錄資料保留多久來設定保留原則。 如需詳細資訊,請參閱儲存體計量的計量 。
按一下 [檔案] 。
診斷記錄會儲存在儲存體帳戶中名為 $logs 的 Blob 容器內。 若要檢視記錄資料,您可以使用 Microsoft 儲存體總管 之類的 Azure 儲存體總管,或使用儲存體用戶端程式庫或 PowerShell 以程式設計方式進行檢視。
如需存取 $logs 容器的詳細資訊,請參閱儲存體分析記錄 。
注意
針對傳統儲存體帳戶,$logs 容器只會出現在 Azure 儲存體總管中。 您無法從儲存體瀏覽器或 Azure 入口網站中提供的容器檢視中看到 $logs 容器。
開啟 Windows PowerShell 命令視窗。
使用 Connect-AzAccount
命令登入 Azure 訂用帳戶並遵循畫面上的指示。
Connect-AzAccount
如果您的身分識別與多個訂用帳戶相關聯,請設定使用中的訂用帳戶。
$context = Get-AzSubscription -SubscriptionId <subscription-id>
Set-AzContext $context
使用訂閱識別碼取代 <subscription-id>
預留位置值。
取得定義想要使用儲存體帳戶的儲存體帳戶內容。
$storageAccount = Get-AzStorageAccount -ResourceGroupName "<resource-group-name>" -AccountName "<storage-account-name>"
$ctx = $storageAccount.Context
使用 Set-AzStorageServiceLoggingProperty 變更目前的記錄設定。 控制「儲存體記錄」的 Cmdlet 會使用 LoggingOperations 參數,該參數是一個包含所要記錄要求類型清單 (以逗號分隔) 的字串。 三個可能的要求類型包含讀取 、寫入 和刪除 。 若要關閉記錄功能,請將值 none 使用於 LoggingOperations 參數。
下列命令針對預設儲存體帳戶中佇列服務的讀取、寫入和刪除要求開啟記錄功能 (保留期間設為五天):
Set-AzStorageServiceLoggingProperty -ServiceType Queue -LoggingOperations read,write,delete -RetentionDays 5 -Context $ctx
警告
記錄會以資料的形式儲存在您的帳戶中。 記錄資料可以在您的帳戶中累積一段時間,這可能導致儲存體成本增加。 如果您只需要一小段時間的記錄資料,可藉由修改資料保留原則來降低成本。 系統會刪除過時的記錄資料 (早於保留原則的資料)。 建議您根據要將帳戶的記錄資料保留多久來設定保留原則。 如需詳細資訊,請參閱儲存體計量的計量 。
下列命令針對預設儲存體帳戶中的資料表服務關閉記錄功能:
Set-AzStorageServiceLoggingProperty -ServiceType Table -LoggingOperations none -Context $ctx
如需如何設定 Azure PowerShell Cmdlet 以使用您的 Azure 訂用帳戶,以及如何選取要使用的預設儲存體帳戶的相關資訊,請參閱: 如何安裝和設定 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 天之後自動從您的帳戶中刪除記錄。 本節說明如何查看您目前的記錄資料保留期間,然後更新該期間 (如果您想這麼做)。
在 Azure 入口網站 中,選取 [儲存體帳戶] ,然後選取儲存體帳戶名稱以開啟 [儲存體帳戶] 刀鋒視窗。
在功能表刀鋒視窗的 [監視 (傳統)] 區段中選取 [診斷設定 (傳統)] 。
確定已選取 [刪除資料] 核取方塊。 然後,將滑桿控制項移到核取方塊下方,或直接修改滑桿控制項旁邊文字方塊中顯示的值,以設定您想要保留記錄資料的天數。
新儲存體帳戶的預設值是 7 天。 如果您不想要設定保留原則,請將 [刪除資料] 核取方塊保持未核取狀態。 如果沒有保留原則,您可以決定是否刪除監視資料。
按一下 [檔案] 。
診斷記錄會儲存在儲存體帳戶中名為 $logs 的 Blob 容器內。 若要檢視記錄資料,您可以使用 Microsoft 儲存體總管 之類的 Azure 儲存體總管,或使用儲存體用戶端程式庫或 PowerShell 以程式設計方式進行檢視。
如需存取 $logs 容器的詳細資訊,請參閱儲存體分析記錄 。
開啟 Windows PowerShell 命令視窗。
使用 Connect-AzAccount
命令登入 Azure 訂用帳戶並遵循畫面上的指示。
Connect-AzAccount
如果您的身分識別與多個訂用帳戶相關聯,請設定使用中的訂用帳戶。
$context = Get-AzSubscription -SubscriptionId <subscription-id>
Set-AzContext $context
使用訂閱識別碼取代 <subscription-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 PowerShell Cmdlet 以使用您的 Azure 訂用帳戶,以及如何選取要使用的預設儲存體帳戶的相關資訊,請參閱: 如何安裝和設定 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 月,且每個資料夾都包含一天的記錄。 如果今天的日期是2021 年 1 月 29 日,而您的保留原則設定為只有一天,則此資料夾只會包含一天的記錄。
檢視記錄資料
若要檢視和分析記錄資料,您應將包含您有興趣之記錄資料的 Blob 下載到本機電腦。 很多儲存體瀏覽工具可讓您從儲存體帳戶下載 Blob;您也可以使用 Azure 儲存體團隊提供的命令列 Azure 複製工具 AzCopy 來下載記錄資料。
注意
$logs
容器未與事件方格整合,因此當您寫入記錄檔時,不會收到通知。
若要確保下載有興趣的記錄資料以及避免多次下載相同的記錄資料:
若要開始使用 AzCopy,請參閱開始使用 AzCopy
下列範例顯示如何下載佇列服務的記錄資料,時間從 2014 年 5 月 20 日上午 09、上午 10 點,以及上午 11 開始。
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 儲存體問題 指南)。 不同的工具有不同的功能可格式化、篩選、排序及搜尋記錄檔的內容。 如需儲存體記錄的記錄檔格式和內容的詳細資訊,請參閱儲存體分析記錄格式 和儲存體分析記錄作業和狀態訊息 。
下一步