KQL初学者在这里-我的一台服务器上有一些CEF日志,我需要进入数据中,从中获得一些有意义的报告。
以这个日志为例——不是json,只是一个字符串
CEF:0|vendor1|vendorproduct|1.0|Event1|Event2|1|source_ip=0.0.0.0 rt=2020-04-28T04:17:05.475Z data1=example1 group=example2 endpoint=55555555 user=444444
我想访问每个字段并将其存储为var,以便进一步查询使用。实现这一点的最佳方法是什么,这样我才能获得以下结果?Regex?字符串函数?
| extend vendorname = // = vendor1
| extend source_ip = // = 0.0.0.0
| extend endpoint = // = 55555555
// etc
好吧,我想好了这个-请参阅下面的KQL,以实现我想要的:
Syslog
| where SyslogMessage has "vendor-name"
| extend logs = split(SyslogMessage, "|")
| extend vendor = logs[1]
| extend app = logs[2]
| extend version = logs[3]
| extend event = logs[4]
| extend msg = logs[5]
| parse SyslogMessage with * "source_ip=" source_ip "rt=" rt " id=" id " data1=" data1 " group=" group " endpoint=" endpoint "user=" user
| project vendor, app, version, event, msg, rt, data1, source_ip, id, group, endpoint, user