You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何读取Azure Blob存储应用日志并在Log Analytics中分析展示

核心配置校验(先解决拉取到非应用日志的问题)
  • 确认你在Log Analytics中添加的Blob数据源类型为自定义日志(Custom Logs),而非Azure Storage的资源诊断日志。后者只会同步存储账号本身的操作、状态数据,不会解析你容器内存储的应用生成日志。
  • 自定义日志配置时,路径选择你存放应用日志的自建业务容器,不要选择存储账号自动生成的$logs系统容器,该容器仅存储存储服务自身的运行日志。
  • 配置向导中上传1份应用真实输出的日志样例,指定日志的记录分隔符(绝大多数场景为换行符)、时间戳字段的位置与格式,提交配置后等待15-30分钟,日志同步链路才会正式生效。
在线读取Blob内应用日志

配置生效后,Blob容器内新增的应用日志会自动持续同步到Log Analytics的自定义表中,表名默认为你配置自定义日志时填写的名称加_CL后缀,无需手动下载日志文件,直接进入Log Analytics工作区的「日志」模块即可在线查询:

  • 基础查询示例(查询最近24小时的错误类日志):
// 将下方表名替换为你自己的自定义日志表名
YourAppLog_CL
| where TimeGenerated > ago(24h)
// 未做结构化字段提取时直接匹配原始日志内容RawData,已提取字段可直接使用字段名过滤
| where RawData contains "ERROR"
| project TimeGenerated, RawData, SourceBlobPath // SourceBlobPath字段会自动标注日志来源的Blob文件路径
  • 结构化字段提取:如果你的日志为JSON格式,直接用KQL内置函数解析即可,无需调整应用侧日志输出规则:
YourAppLog_CL
| extend logPayload = parse_json(RawData)
| extend 
    LogLevel = tostring(logPayload.level),
    LogMsg = tostring(logPayload.message),
    TraceId = tostring(logPayload.traceId)
| project TimeGenerated, LogLevel, LogMsg, TraceId

如果你的日志为固定分隔符格式,可使用parse运算符做字段拆分,把解析逻辑保存为工作区函数后,后续查询无需重复编写解析代码。

表格、图形可视化配置

查询到有效日志数据后,直接在查询编辑器内即可完成可视化配置,无需对接第三方工具:

  • 表格展示:查询结果默认以表格形式呈现,可直接拖拽调整字段顺序、设置字段过滤规则,点击结果栏上方的「固定到仪表板」,即可将表格固定到Azure门户的共享/个人仪表板,支持设置自动刷新间隔,打开仪表板即可查看实时日志数据。
  • 图形类可视化:完成聚合查询后,在结果栏上方的「可视化」下拉菜单选择对应图表类型即可,以下是两个高频使用的场景示例:
    1. 按小时统计近7天各等级日志数量(适配堆叠柱状图/折线图,用于观察错误量波动趋势)
    YourAppLog_CL
    | where TimeGenerated > ago(7d)
    | extend logPayload = parse_json(RawData)
    | extend LogLevel = tostring(logPayload.level)
    | summarize LogCount = count() by bin(TimeGenerated, 1h), LogLevel
    // 可视化选择「堆叠柱状图」,X轴绑定TimeGenerated,Y轴绑定LogCount,拆分维度选择LogLevel
    
    1. 统计近24小时Top10高频报错(适配条形图/饼图,用于定位核心异常)
    YourAppLog_CL
    | where TimeGenerated > ago(24h)
    | extend logPayload = parse_json(RawData)
    | extend LogLevel = tostring(logPayload.level), ErrorMsg = tostring(logPayload.message)
    | where LogLevel == "Error"
    | summarize ErrorCount = count() by ErrorMsg
    | top 10 by ErrorCount desc
    // 可视化选择「条形图」,Y轴绑定ErrorMsg,X轴绑定ErrorCount
    
  • 所有配置完成的图表均可固定到门户仪表板,设置最短5分钟的自动刷新间隔,即可实现Blob存储日志的在线读取与持续可视化分析,全程无需手动下载单个日志文件。

常见排错点

  • 自定义日志配置完成后查不到数据时,先确认你存储日志的Blob类型为追加Blob,块Blob的日志同步存在最高1小时的延迟;另外日志文件名不要包含中文、特殊转义字符,否则Log Analytics的采集模块可能无法识别文件。
  • 如果查询结果中出现大量存储操作相关的日志,回到数据源配置页检查是否误选了$logs容器,删除错误配置后重新指定业务容器即可。

内容的提问来源于stack exchange,提问作者Weslei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 03:18:16