使用 "rex" 的 Splunk 查询失败,并在"搜索解析器"中出现错误:在 REST API 上缺少"^"之前的搜索命令



新功能。

此查询通过UI:运行得非常好

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

我正试图将其应用于REST API,每个rex都会失败并返回:"SearchParser"中的错误:在"^"之前缺少搜索命令

它总是发回括号[]中的任何特殊字符。有没有一种方法可以在我的regex中使用括号在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

有什么建议吗?

您必须转义rex中的方括号(尽管通常不是这样)。

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

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

最新更新