Search 如何从Splunk中的新评估字段名中搜索事件的值?
我需要搜索包含从新字段名生成的特定值的事件。这就是我试图实现的目标:Search 如何从Splunk中的新评估字段名中搜索事件的值?,search,eval,encode,splunk,Search,Eval,Encode,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
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
基本上,我使用replace和eval函数将url的一部分编码为字段名uri2,然后我需要在编码值的结果中进行专门搜索。但使用搜索似乎会搜索“uri2”,而不是整个编码字符串
注意,我不得不使用replace对url的一部分进行编码,因为splunk中似乎没有编码函数
如有任何帮助,我们将不胜感激。如您所知,
search
命令将搜索整个事件。要查找字段中的文本,请使用以下命令之一
| where match(uri2, "<regex>")
| regex uri2="<regex>"
请注意,
rex
必须包含一个命名的捕获组。组名将成为rex
将匹配文本放入的字段。事实上,我在写问题时犯了错误,我正在查找包含解码值的事件。Splunk有一个urlcode
函数。我认为Splunk只有urldecode,但没有urlcode one。我的意思是说Splunk有一个urldecode
函数。使用它来解码URL,然后进行字符串匹配/提取。那么rex/match命令将返回包含该字符串的事件?
| rex field=uri2 "<regex>"