启用和管理 Azure 存储分析日志(经典)
本文内容
Azure 存储分析 提供 Blob、队列和表的日志。 可以使用 Azure 门户 来配置要为帐户记录的日志。 本文介绍了如何启用和管理日志。 要了解如何启用指标,请参阅转换到 Azure Monitor 中的指标 。 在 Azure 门户中检查和存储监视数据会产生相关的费用。 有关详细信息,请参阅存储分析 。
注意
建议你使用 Azure Monitor 中的 Azure 存储日志,而不是存储分析日志。 请参阅以下任一文章:
启用日志
可以指示 Azure 存储保存针对 Blob、表和队列服务发出的读取、写入和删除请求的诊断日志。 设置的数据保留策略也适用于这些日志。
注意
Azure 文件存储目前支持存储分析指标,但尚不支持存储分析日志记录。
在 Azure 门户 中选择“存储帐户”,然后单击存储帐户的名称打开存储帐户边栏选项卡。
在菜单边栏选项卡的“监视(经典)”部分中选择“诊断设置(经典)”。
确保“状态”设置为“打开”,选择要为其启用日志记录的服务。
若要保留日志,请确保选中“删除数据”复选框。 然后,通过移动复选框下方的滑块控件或直接修改显示在滑块控件旁边的文本框中的值,来设置要将日志数据保留的天数。 新存储帐户的默认保留期为 7 天。 如果不想设置保留策略,请取消选中“删除数据”复选框。 如果没有保留策略,则由用户自行决定是否删除日志数据。
警告
日志作为数据存储在你的帐户中。 日志数据会随着时间的推移在你的帐户中累积,这可能会增加存储成本。 如果只需要一小段时间的日志数据,则可以通过修改数据保留策略来降低成本。 陈旧的日志数据(超出保留策略的数据)将被系统删除。 建议根据要将帐户的日志数据保留多长时间来设置保留策略。 有关详细信息,请参阅按存储指标计费 。
单击“ 保存 ”。
诊断日志保存在存储帐户下名为 $logs 的 Blob 容器中。 可以使用 Microsoft Azure 存储资源管理器 等存储资源管理器来查看日志数据,也可以使用存储客户端库或 PowerShell 以编程方式这样做。
有关如何访问 $logs 容器的信息,请参阅存储分析日志记录 。
注意
对于经典存储帐户,$logs 容器仅显示在 Azure 存储资源管理器中。 $logs 容器在存储浏览器或 Azure 门户中提供的容器视图中不可见。
打开 Windows PowerShell 命令窗口。
运行 Connect-AzAccount
命令以登录 Azure 订阅,并按照屏幕上的说明操作。
Connect-AzAccount -Environment AzureChinaCloud
如果你的标识关联到多个订阅,请设置你的活动订阅。
$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 更改当前的日志设置。 控制存储日志记录的 cmdlet 使用 LoggingOperations 参数,该参数是一个字符串,包含要记录的请求类型的逗号分隔列表。 三种可能的请求类型是“读取”、“写入”和“删除” 。 要关闭日志记录,请对 LoggingOperations 参数使用值“无” 。
以下命令在保留期设为 5 天的情况下,在默认存储帐户中为队列服务中的读取、写入和删除请求打开日志记录:
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 -Environment AzureChinaCloud
如果你的标识关联到多个订阅,请设置你的活动订阅。
$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 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 日上午 9 点、10 点和 11 点开始。
azcopy copy 'https://mystorageaccount.blob.core.chinacloudapi.cn/$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 。
下载日志数据后,可以查看文件中的日志条目。 这些日志文件使用带分隔符的文本格式,许多日志读取工具都可以分析此格式(有关详细信息,请参阅对 Azure 存储进行监视、诊断和故障排除 指南)。 不同的工具提供不同的功能用于筛选、排序和搜索日志文件的内容及设置其格式。 有关存储日志记录日志文件格式和内容的详细信息,请参阅存储分析日志格式 和存储分析记录的操作和状态消息 。
后续步骤