【问题标题】:Splunk - Lookup values + static search string = output with countSplunk - 查找值 + 静态搜索字符串 = 输出计数
【发布时间】:2020-04-17 16:49:42
【问题描述】:

我想在需要使用静态搜索字符串 + 带有用户名的 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 以减少我的工作量并被困在这里。

提前致谢!

【问题讨论】:

  • 你想用这个查询解决什么问题?也许还有其他方法。
  • @RichG 所以我想确保没有任何用户在访问应用程序时遇到任何问题。所以我的查询将搜索静态搜索字符串 + 用户名。 [大约有 10k 用户] 一旦我有了这个,如果任何用户在特定给定时间内生成的事件少于 10 个,我就可以为其设置警报。
  • 如果您的索引中没有“用户”字段,是什么将索引事件与查找文件条目联系起来?

标签: splunk splunk-query


【解决方案1】:
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,例如,在每个返回的表达式周围添加 *

【讨论】:

  • 这非常有效。非常感谢!另外,感谢其他所有人抽出宝贵时间帮助我解决我的多个问题!
【解决方案2】:

我认为你是从里到外进行搜索

认为您可能想要的是以下内容:

index=ndx sourcetype=srctp host=host*p* User=*
| search 
    [| inputlookup users.csv ]
| stats count by User

如果我正确理解您的问题,您希望在查找中使用 作为数据过滤器(即,仅在该列表中 User 的位置)

如果是这样的话,上面的就可以了

如果由于查找表的名称不同而需要使字段名匹配,请将子搜索更改为以下内容:

    [| inputlookup users.csv
     | rename lookup_field_name as User ]

【讨论】:

  • 谢谢。您发布的上述查询给出了 0 个结果。我再次交叉检查以确认是否是这种情况,但正如我所说,每个用户都有为他们生成的 100 个事件。
  • @messi.torres28 - 确实需要一些示例事件数据来帮助您,而不是仅仅猜测 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多