如何从 Splunk 中的新 eval 字段名中搜索值的事件?
How to search events for a value from new eval fieldname in Splunk?
我需要搜索包含从新字段名称生成的特定值的事件。这就是我要实现的目标:
index=app sourcetype=source
| eval uri_t = "uri:type:subtype:123-5678:DATA_REFERENCE:DATA1:999:123-5678:DATA2:DATA_REFERENCE2:123456"
| eval uri2=replace(uri_t, "\:", "%3A")
| search uri2
基本上,我使用替换和求值函数将 url 的一部分编码到字段名称 uri2 中,然后我需要在编码值的结果中专门搜索。但似乎使用搜索,将搜索“uri2”而不是整个编码字符串。
注意,我不得不使用 replace 对部分 url 进行编码,因为 splunk 中似乎没有编码功能。
如有任何帮助,我们将不胜感激。
如您所知,search
命令搜索整个事件。要在字段中查找文本,请使用以下命令之一。
| where match(uri2, "<regex>")
| regex uri2="<regex>"
两者都会过滤掉不匹配给定正则表达式的事件。
如果要在不过滤事件的情况下在字段中查找子字符串,请使用 rex
命令。
| rex field=uri2 "<regex>"
请注意 rex
必须包含命名的捕获组。群组名称将成为 rex
将放入匹配文本的字段。
我需要搜索包含从新字段名称生成的特定值的事件。这就是我要实现的目标:
index=app sourcetype=source
| eval uri_t = "uri:type:subtype:123-5678:DATA_REFERENCE:DATA1:999:123-5678:DATA2:DATA_REFERENCE2:123456"
| eval uri2=replace(uri_t, "\:", "%3A")
| search uri2
基本上,我使用替换和求值函数将 url 的一部分编码到字段名称 uri2 中,然后我需要在编码值的结果中专门搜索。但似乎使用搜索,将搜索“uri2”而不是整个编码字符串。
注意,我不得不使用 replace 对部分 url 进行编码,因为 splunk 中似乎没有编码功能。
如有任何帮助,我们将不胜感激。
如您所知,search
命令搜索整个事件。要在字段中查找文本,请使用以下命令之一。
| where match(uri2, "<regex>")
| regex uri2="<regex>"
两者都会过滤掉不匹配给定正则表达式的事件。
如果要在不过滤事件的情况下在字段中查找子字符串,请使用 rex
命令。
| rex field=uri2 "<regex>"
请注意 rex
必须包含命名的捕获组。群组名称将成为 rex
将放入匹配文本的字段。