如何通过KQL访问字符串中的数据



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

最新更新