使用“rex”的Splunk查询失败并在“SearchParser”中出现错误:在REST API上的“^”之前缺少搜索命令

时间:2013-11-19 22:29:44

标签: regex api rest splunk

splunk新手。

此查询通过用户界面完美运行:

index=serverlogs* WEB_URL=/someurl/* | rex ".*\?(?<GETQUERY>[^ ]+)" | search GETQUERY=*.jpg | top 20 REFERER

我正在尝试将此应用于REST API,并且每个rex都会失败并发回: 'SearchParser'出错:在'^'

之前缺少搜索命令

它总是发回括号[]中的任何特殊字符。 有没有办法在我的正则表达式中使用括号在API上使用“rex”?或者能够使用正则表达式动态提取字段?

这是我的疑问:

curl -k https://myhost:8089/servicesNS/-/search/search/jobs/export -u user:passwd -d search="search index%3Dserverlogs* WEB_URL%3D/someurl/* | rex \".*\%3F(%3F<GETQUERY>[^ ]+)\" | search GETQUERY%3D*.jpg | top 20 REFERER" -d earliest_time="-10m" -d latest_time="now" -d output_mode="csv" > output.csv

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

你必须在rex中转义方括号(虽然不是正常)。

rex ".*\?(?<GETQUERY>\[^ \]+)"

答案 1 :(得分:2)

在编辑之前从外部源复制查询后我遇到了同样的问题。我的正则表达式周围的引号是错误的字符。一旦我将它们都切换到",一切正常。