Splunk 如何组合两个查询并得到一个答案

Jam*_*mes 5 splunk splunk-query splunk-calculation splunk-formula splunk-sdk

我对 Splunk 非常陌生,基本上已经陷入了困境!对语言也很陌生,所以下面的任何帮助和提示都会很棒。

我想要得到的结果是加入查询并获取用户名、ID 和登录次数。

查询来自 diff 源、源类型和主机。

查询 1 是用户名和 ID,查询 2 是用户名和登录次数。

查询1:userName=” ”entityNumber=” ” | eval 用户名=upper(用户名) | 重复数据删除用户名、实体编号 | 将用户名重命名为 User | 表用户,实体编号

查询2:“登录成功。” | rex field=_raw "用户[\":] (?[^\"IP] )"| 评估用户=上层(用户)| 表用户 | 按用户统计计数

在此先感谢您的帮助。J

Aka*_*kah 8

就像 skoelpin 所说,我建议您使用join 命令

myQuery1 | join commonField [search myQuery2]
Run Code Online (Sandbox Code Playgroud)

在你的情况下,这会导致类似的结果:

userName="" entityNumber="" | eval userName=upper(userName) | dedup userName, entityNumber | rename userName as User | table User, entityNumber 
| join User 
[search "Successfully logged in." | rex field=_raw "User[\":](?[^\"IP])"| eval User=upper(User) | Table User | stats count by User]
Run Code Online (Sandbox Code Playgroud)

请注意,您的查询可能会很慢,并且您应该优化子查询(通过指定索引,如 skoelpin 建议的那样)。


小智 1

试试这个,它加入用户..您还应该在搜索中指定索引和源类型

用户名=“”实体编号=“” | eval 用户名=upper(用户名) | 重复数据删除用户名、实体编号 | 将用户名重命名为 User | 表用户,实体编号 | 加入用户[ | 搜索“登录成功”。| rex field=_raw "User\":"| eval User=upper(User) | 表用户 | 按用户统计计数]