splunk - Splunk - 查找值 + 静态搜索字符串 = 输出计数
问题描述
我想执行一个搜索,我需要使用静态搜索字符串+来自带有用户名的 csv 文件的输入:
搜索查询-
index=someindex host=host*p* "STATIC_SEARCH_STRING"
来自 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 以减少我的工作量并被困在这里。
提前致谢!
解决方案
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 。*
推荐阅读
- python - python 正则表达式在下划线内查找任何字母或单词
- r - 监控在我的内部网络中共享的闪亮应用程序
- reactjs - 如何在反应应用程序中要求/导入 chartist-plugin-tooltip
- python - Python:字符串比较
- amazon-web-services - 为什么我被拒绝访问来自 aws s3 存储桶的资产?
- python - 使用动态命名导出多个 csv 文件
- jquery - 使用 jQuery 从 Select 中动态删除选项
- docker - 除了 docker 之外,还有没有使用底层磁盘存储而不预先设置限制的传统虚拟化?
- ios - UISwitch 的明确变量名称是什么,因为“switch”是保留关键字?
- python - 一个 ElasticSearch 查询中的多个查询