Splunk搜索中的RegEx

时间:2015-12-10 19:43:24

标签: regex splunk

我是Splunk的新手,正如您所见,但我继承了尝试找出现有仪表板并对其进行修改。

现有搜索:

"Policy_Name=Authentication EventCode=1   *$name$*  
| eval TimeOfRequest= _time | table TimeOfRequest, ResultMessage, 
|rex field=_raw (FullyQualifiedUserName=[^/]+$), Calling_Station_Identifier 
| convert timeformat="%b %d, %Y %I:%M:%S %p" ctime(TimeOfRequest)"

输出:

TimeOfRequest Dec 10, 2015 11:04:16 AM
ResultMessage User BobSmith was granted access.
FullyQualifiedUserName domain.local/OU1/OU2/OU3/OU4/Smith, Bob
Calling_Station_Identifier 192.168.1.1

我被要求稍微修改一下输出。我需要通过删除完整路径来清除FullyQualifiedUsername,只留下LastnameFirstname,即“Smith,Bob”。我考虑对该字段运行某种正则表达式,但我不会产生任何结果,只是错误。

以下查询示例:

"Policy_Name=Authentication EventCode=1   *$name$* 
| eval TimeOfRequest= _time 
| table TimeOfRequest, ResultMessage, regex 
       (FullyQualifiedUserName = [^/]+$), Calling_Station_Identifier
| convert timeformat="%b %d, %Y %I:%M:%S %p" ctime(TimeOfRequest)"

Policy_Name=Authentication EventCode=1   *$name$*  
| eval TimeOfRequest= _time | table TimeOfRequest, ResultMessage, 
| rex field=FullyQualifiedUserName "[^/]+$", Calling_Station_Identifier
| convert timeformat="%b %d, %Y %I:%M:%S %p" ctime(TimeOfRequest)

任何帮助尝试计算此查询都将非常感激。

1 个答案:

答案 0 :(得分:0)

我没有接近我的Splunk实例,但也许这会对你有帮助:

... | rex field=FullyQualifiedUserName ".+\/(?<first>.+),\s?(?<second>.+)"

如果您想了解有关正则表达式测试的更多信息:

.+\/(.+),\s?(.+)

on https://regex101.com/

您应该可以在以下情况之后执行此操作:

... | top first second

我认为你的所有日志都具有相同的格式。

来源:http://docs.splunk.com/Documentation/Splunk/6.1/SearchReference/Rex

告诉我你是否有错误......