正则表达式的Azure日志分析语法错误

时间:2020-03-20 14:43:58

标签: azure dns kql azure-sentinel

我正在为以下日志文​​件的日志类型编写DNS解析器:

18/03/2020 07:08:23 1164数据包000000C164RF56B0 UDP Rcv 10.128.151.34 076e Q [0001 D NOERROR] A(10)indelpus03(6)kworld(4)kay(3)com(0)

我正在尝试获取[]内部的内容-因此0001 D NOERROR。我的正则表达式如下:

(?<= [)(。*?)(?=])

但是,当我在KQL上测试它失败时,它说语法错误。如果有人有解决方案,请告诉我。域名等正则表达式也会发生同样的情况

1 个答案:

答案 0 :(得分:0)

这里有两种方法:
1)使用解析运算符:https://docs.microsoft.com/en-us/azure/kusto/query/parseoperator

print m = '18/03/2020 07:08:23 1164 PACKET 000000C164RF56B0 UDP Rcv 10.128.151.34 076e Q [0001 D NOERROR] A (10)indelpus03(6)kworld(4)kay(3)com(0)'
| parse m with * '[' Message ']' *

2)使用extract()函数:https://docs.microsoft.com/en-us/azure/kusto/query/extractfunction

print m = '18/03/2020 07:08:23 1164 PACKET 000000C164RF56B0 UDP Rcv 10.128.151.34 076e Q [0001 D NOERROR] A (10)indelpus03(6)kworld(4)kay(3)com(0)'
| extend Message = extract(@'\[(.+?)\]', 1, m)