我是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
,只留下Lastname
,Firstname
,即“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)
任何帮助尝试计算此查询都将非常感激。
答案 0 :(得分:0)
我没有接近我的Splunk实例,但也许这会对你有帮助:
... | rex field=FullyQualifiedUserName ".+\/(?<first>.+),\s?(?<second>.+)"
如果您想了解有关正则表达式测试的更多信息:
.+\/(.+),\s?(.+)
您应该可以在以下情况之后执行此操作:
... | top first second
我认为你的所有日志都具有相同的格式。
来源:http://docs.splunk.com/Documentation/Splunk/6.1/SearchReference/Rex
告诉我你是否有错误......