Splunk搜索查询中where子句不起作用

时间:2019-01-31 10:33:00

标签: splunk splunk-query splunk-sdk

我正在使用Splunk Java SDK从Splunk服务器搜索模式。我正在使用

search index=* env=* (GET OR POST OR PUT OR DELETE) | where isNum(httpStatusCode)

当我将此查询与Java SDK一起使用时,Splunk不发送任何事件。但是,当我从Splunk Web应用程序查询时,它正在显示响应。我的Splunk日志包含两种类型的事件。一个带有httpStatusCode字符串,另一个带有httpStatusCode号。这两种事件的类型如下:

类型1

[31/Jan/2019:10:27:49.970 +0000] 10.255.0.93 "GET URL HTTP/1.1" 200 46 10 host "34*, 10.*, 54.*"
HTTP status code =200

类型2

[31/Jan/2019:10:27:49.961 +0000] http-nio-8080-exec-58 INFO RequestID=36de3bde-277a-4f60-82c9-2802debe0593 RequestPath=http:* RequestMethod=GET TimeTaken=3 ms
httpStatusCode =    RequestApplication=someString

如何通过Splunk rest API隔离状态为数字类型的事件?

谢谢。

1 个答案:

答案 0 :(得分:0)

在这种情况下,在某些情况下write-behind用空值填充,可以使用httpstatuscode splunk预定义函数用任何默认数字填充那些空值。您可以在下面的查询中使用以下位置,其中,我用0填充了空值,下面的查询将提供两种类型的事件。如果要过滤,请根据需要添加fillnull管道。

WHERE

希望这会有所帮助。