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

时间:2018-08-16 10:51:26

标签: splunk splunk-query splunk-calculation splunk-formula splunk-sdk

我对Splunk还是很陌生,基本上已经掉到了深渊!!语言也很新,因此下面的任何帮助和提示都会很棒。

我想得到的结果就是加入查询并获得用户名,ID和登录数量。

查询来自差异源,源类型和主机。

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

查询1: userName =“ ” entityNumber =“ ” | eval userName = upper(userName)| dedup userName,entityNumber |将userName重命名为User |表用户,entityNumber

查询2:  “成功登录。” | rex field = _raw“ User [\”:] (?[^ \“ IP] )” | eval User = upper(User)|表用户|用户统计

在此先感谢您的帮助。 J

2 个答案:

答案 0 :(得分:0)

尝试此操作,它连接到User。。您还应该在搜索中指定索引和源类型

userName =“” entityNumber =“” | eval userName = upper(userName)| dedup userName,entityNumber |将userName重命名为User |表用户,entityNumber |加入用户[|搜索 “成功登录。” | rex field = _raw“ User \”:“ |评估User = upper(User)|表User |按用户统计的数量]

答案 1 :(得分:0)

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

myQuery1 | join commonField [search myQuery2]

在您的情况下,这将导致类似:

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]

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