Azure Log Analytics工作区:从现有字段创建自定义字段的替代方法
替代已移除的“Extract Fields From”功能,解析RawData为单独属性
一、查询时临时解析(按需使用)
如果只需要在查询日志时临时拆分字段,可使用Kusto查询语言的解析函数替代原有功能:
- 基础格式解析(
parse命令)
适用于有固定分隔符或格式的RawData,示例:
CustomLogs | parse RawData with "Timestamp=" Timestamp " Level=" Level " Message=" Message | project Timestamp, Level, Message
该语句会从RawData中提取出Timestamp、Level、Message三个字段,并返回对应结果。
- 正则表达式解析(
parse regex命令)
针对格式更灵活的日志内容,用正则匹配提取字段,示例:
CustomLogs | parse regex RawData with @'(?<Timestamp>\d{4}-\d{2}-\d{2})\|(?<Level>\w+)\|(?<Message>.+)' | project Timestamp, Level, Message
通过正则分组命名,直接提取目标字段。
二、持久化解析(入库时自动拆分)
如果希望日志数据入库时就自动解析为单独属性,替代原自定义字段功能,可使用数据收集规则(DCR)的转换功能:
- 进入Azure Monitor中对应自定义日志的数据收集规则页面,编辑转换规则;
- 在转换编辑器中编写Kusto脚本,解析RawData并生成新字段,示例:
source | parse RawData with "Timestamp=" Timestamp " Level=" Level " Message=" Message | extend Timestamp = todatetime(Timestamp) // 转换为日期类型 | project-away RawData // 可选:移除原始RawData字段
- 保存规则后,后续收集的日志会自动按转换规则拆分字段,无需每次查询重复解析。
原有的自定义字段功能已被数据收集规则转换替代,推荐使用这种方式实现持久化的字段解析,提升查询效率。
内容的提问来源于stack exchange,提问作者Navid Niknezhad
相关产品推荐
相关产品推荐

