1

我正在使用 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 隔离具有类型编号状态的事件?

提前致谢。

4

1 回答 1

0

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

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

希望这会有所帮助。

于 2019-02-15T20:11:22.517 回答