监控 Azure 存储帐户中每个容器 size/transaction/bandwidth 的使用情况

Monitor per-container size/transaction/bandwidth usage in Azure storage account

我有一个应用程序,其中每个用户的杂项文件(主要是图像)都存储在 Azure 存储帐户中的单独 blob 容器中。

文件 storage/access 不是应用程序的主要部分(它更像是一个附件),但我想监控每个容器是否存在潜在的过度 usage/abuse(存储大小、交易和带宽使用情况)。

有没有办法使用本机 Azure tools/API 实现此目的?我找到的大部分文档都在帐户级别。

目前没有根据您的场景进行容器级监控的原生工具!可以通过 Azure Storage Explorer, For Transactions, Performance you can refer to Azure Application Insights( 计算容器、存储帐户和 Blob 的大小,它会自动检测性能异常,并包含强大的分析工具来帮助您诊断问题并了解用户实际对您的应用程序做了什么。它旨在帮助您不断提高性能和可用性。与带宽相关的我们不存储这些信息

本文使用 Azure Blob 存储清单功能和 Azure Synapse 来计算每个容器的 Blob 计数和 Blob 总大小。这些值在优化每个容器的 blob 使用时很有用。 Calculate blob count and total size per container using Azure Storage inventory

$storageAccountName = "xxxx" $StorageAccountKey = "xxxx" #获取上下文
$ctx = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $StorageAccountKey

$最大回报 = 100
$Token = $Null


{
#get 容器
$storageContainer = 获取-AzureStorageContainer -Context $ctx -MaxCount $MaxReturn -ContinuationToken $Token
$lengthSA = 0

if($storageContainer.Length -le 0) { Break;}    
# get a list of all of the blobs in the container    
foreach($c in $storageContainer)   
    {   
    $cname = $c.Name   
    $length = 0  
    $bMaxReturn = 100    
    $bToken = $Null    
       
    do    
    {    
        # get a list of all of the blobs in the container     
        $listOfBlobs = Get-AzStorageBlob -Container "$cname" -Context $ctx -MaxCount $bMaxReturn  -ContinuationToken $bToken     
        if($listOfBlobs.Length -le 0) { Break;}    
      foreach($blob in $listOfBlobs) {    
        write-host "Blob name:"  
        write-host $blob.Name"("$cname" ) container"  
        write-host "Blob size:"  
        write-host $blob.length"("$cname" ) container"  
        $length = $length + $blob.length  
        }  
        $bToken = $blob[$blob.Count -1].ContinuationToken;  
    }while ($bToken -ne $Null)     
    write-host "The container " $cname " size is $length bytes."  
    $lengthSA = $lengthSA + $length  
    }  
write-host "The Storage Account "  $storageAccountName " size is $lengthSA bytes."  
$Token = $c[$c.Count -1].ContinuationToken;    

}while ($Token -ne $Null)

如果想对存储日志有​​原生的查询体验,推荐使用Azure资源日志进行存储。它是新的日志记录服务,并与 Log Analytics 原生集成,您可以在其中查询 Portal 中的日志。

参考: Monitoring Azure Blob storage | Microsoft Docs Azure Blob storage monitoring data reference | Microsoft Docs

如果您正在寻找此特定功能,如果您愿意,可以留下您的反馈 here您在这些论坛中分享的所有反馈 将由负责构建 Azure 的 Microsoft 工程团队进行监控和审查。