首页 > 解决方案 > Splunk - 查找值 + 静态搜索字符串 = 输出计数

问题描述

我想执行一个搜索,我需要使用静态搜索字符串+来自带有用户名的 csv 文件的输入:

  1. 搜索查询- index=someindex host=host*p* "STATIC_SEARCH_STRING"

  2. 来自 users.csv 的值,其中列表如下 -请注意 User/UserList 不是我的 Splunk 中的字段**UserList** User1 User2 User3 . . UserN

我尝试过使用其中的多个—— | inputlookup users.csv | join [search index=someindex host=host*p* "STATIC_SEARCH_STRING"] | lookup users.csv UserList OUTPUT UserList as User| stats count by User

上面的只是输出计数为“1”的用户列表——我假设它是从表本身获取的。

当我尝试为单个用户搜索事件时,例如 - index=someindex host=host*p* "User1" "STATIC_SEARCH_STRING"。我为该用户获得了 100 个事件。

有人可以帮我吗?抱歉,如果这是一个菜鸟问题,我一直在尝试学习 splunk 以减少我的工作量并被困在这里。

提前致谢!

标签: splunksplunk-query

解决方案


index=someindex host=host*p* "STATIC_SEARCH_STRING" [ | inputlookup users.csv | fields UserList | rename UserList as query]

这里发生的是有一个子搜索,它对 users.csv 文件进行输入查找。然后我们使用fields来确保数据中只有一个字段 ( UserList)。然后我们将该字段重命名为query. 这是子搜索中的一个特殊领域;当子搜索返回字段query时,它被扩展为表达式(field_value_1) OR (field_value_2) OR ...

然后将此表达式附加到原始搜索字符串,因此 Splunk 执行的最终搜索是index=someindex host=host*p* "STATIC_SEARCH_STRING" ("alice") OR ("bob") OR ("charlie")

https://docs.splunk.com/Documentation/Splunk/8.0.3/Search/Changetheformatofsubsearchresults中概述了这种方法

如果您需要更改子搜索的表达式格式,例如,在每个返回的表达式周围添加,您还可以查看 Splunk 格式命令https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Format 。*


推荐阅读