存储Angular应用的Azure Blob如何获取请求使用明细报告?
如何获取Azure Blob存储的详细请求日志
好问题!Azure Blob存储的请求日志确实不像App Insights那样直接开箱即用,但通过配置诊断日志完全可以获取你需要的所有详细信息(客户端IP、时间戳、请求内容、事务类型等)。下面是具体的实现步骤和查询方法:
一、启用Blob存储的诊断日志
这是获取日志的核心步骤,需要在存储账户中手动配置:
- 登录Azure门户,找到你的目标存储账户
- 导航到监视 > 诊断设置菜单
- 点击添加诊断设置,设置以下内容:
- 给诊断设置起一个名称(比如
BlobRequestLogs) - 在“日志”部分,勾选你需要记录的操作类型:
StorageRead:读取类请求StorageWrite:创建/修改类请求(对应你要的“创建”事务)StorageDelete:删除类请求(对应你要的“删除”事务)
- 选择日志的存储目标(三选一或多选):
- 存储账户:将日志保存到另一个存储账户的Blob容器中(适合长期归档)
- Log Analytics工作区:将日志发送到Log Analytics(适合实时查询和分析)
- 事件中心:适合流式处理日志到其他系统
- 点击保存,等待5-15分钟,日志就会开始生成
- 给诊断设置起一个名称(比如
二、查询和分析日志
根据你选择的存储目标,查询方式有所不同:
1. 如果日志保存到存储账户
日志会以小时为单位生成JSON/CSV格式的Blob文件,路径格式为:https://<存储账户名>.blob.core.windows.net/<容器名>/insights-logs-storage<操作类型>/resourceId=/subscriptions/<订阅ID>/resourceGroups/<资源组名>/providers/Microsoft.Storage/storageAccounts/<存储账户名>/y=<年>/m=<月>/d=<日>/h=<小时>/m=00/PT1H.json
- 可以用Azure Storage Explorer直接浏览下载这些文件,然后用Excel、Python脚本等工具解析,提取
ClientIpAddress(客户端IP)、Time(时间戳)、Uri(请求内容)、OperationName(事务类型,比如CreateBlob、DeleteBlob)等字段
2. 如果日志发送到Log Analytics(推荐)
这是最灵活的方式,可以用Kusto查询语言快速筛选和分析日志。举个例子,查询过去24小时的Blob请求日志,展示核心字段:
StorageBlobLogs | where TimeGenerated > ago(24h) | project 时间戳 = TimeGenerated, 客户端IP = ClientIpAddress, 事务类型 = OperationName, 请求内容 = RequestUri, 状态码 = StatusCode | sort by 时间戳 desc
你可以根据需求修改查询条件,比如只看删除操作:| where OperationName contains "Delete"
三、额外提示
- 诊断日志默认不启用,需要手动配置,且会产生一定的存储/Log Analytics费用(费用很低,可根据需求调整保留周期)
- 新版诊断日志(我们上面配置的)是Azure推荐的方案,旧版的“存储分析日志”已被标记为弃用,不建议使用
- 如果需要和Angular应用的日志关联,可以在请求中添加自定义标头,然后在诊断日志的
RequestHeaders字段中提取
内容的提问来源于stack exchange,提问作者Manish Joisar
相关产品推荐
相关产品推荐

