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

问题描述 投票:0回答:1

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

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

当我在Java SDK中使用此查询时,Splunk不会发送任何事件。但是当我从Splunk网络应用程序查询时,它显示了响应。我的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隔离具有类型编号状态的事件?

提前致谢。

splunk splunk-query splunk-sdk
1个回答
0
投票

在这种情况下,在某些情况下httpstatuscode填充空值,您可以使用fillnull splunk预定义函数来填充任何默认数字的空值。你可以使用下面的查询在哪里,我用0填充空值,下面的查询将提供两种类型的事件。如果要过滤,请根据要求添加WHERE管道。

search index=* env=* (GET OR POST OR PUT OR DELETE) | fillnull httpStatusCode=0

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.