需要通过将一个结果提供给另一个来组合 Splunk 查询

Need to combine Splunk queries by feeding the results of one to the other

我们必须每天搜索数百个警报以测试新的欺诈系统。问题是我们必须审查每个非常耗时的警报。

第一个查询获取警报列表和每个警报的详细信息。

第二个查询取用过的ID,搜索3个可以是0到多个的特定事件。 如果没有记录,则用户ID加"NULL",设备ID加"N",金额加$0.00

两个查询的结果都需要放入一个table中进行提取。

index=mbank_p_database sourcetype=mbank_event EventTypeID=1095 
| dedup OLBUserID
| table _time, SessionID, EventTypeID, OLBUserID, score, risk_rating, reason_code 
| sort _time
index=mbank_p_database sourcetype=mbank_event EventTypeID=1000 OR EventTypeID=1011 OR EventTypeID=1012 OLBUserID=<Results from 1st query>
| table UDID, Amount

如果第二次查询User ID没有结果,则"UDID"="N","Amount"=$0.00

``

Table layout of results of combined query:
--_time = Date\Timestamp (1st Query)
--SessionID = "SessionID" (1st Query)
--OLBUserID = "UserID" (1st Query)
--Deposit? = ("Y" or "N") (2nd Query)
--score = "Score" (1st Query)
--risk_rating = "Rating" (1st Query)
--reason_code = "Reason Code"  (1st Query)

"" 立即让人联想到子搜索,但在这种情况下不起作用,因为子搜索 returns 字段太多。

尝试使用 stats 合并两个搜索。像这样:

index=mbank_p_database sourcetype=mbank_event (EventTypeID=1095 OR EventTypeID=1000 OR EventTypeID=1011 OR EventTypeID=1012) 
| stats values(*) as * by OLBUserID
| table _time, SessionID, EventTypeID, OLBUserID, score, risk_rating, reason_code 

我最终不得不改变搜索的方式。首先,您必须搜索仅包含 "EventTypeID=1095" 的所有项目。然后获取这些结果,并将它们添加到子搜索中。我添加了空白字段,以便用户可以将其直接导出到电子表格中进行研究。

最终声压级:

index=mbank_p_database sourcetype=mbank_event EventTypeID=1095
| dedup OLBUserID 
| join type=left SessionID 
    [ search index=mbank_p_database sourcetype=mbank_event EventTypeID=1000 OR EventTypeID=1011 OR EventTypeID=1012]
| eval "Deposit?"=case(Amount<=0.0000, "N", Amount>0.0000, "Y") 
| table _time, SessionID, UDID, OLBUserID, "Deposit?", Amount, "Bank#", "Acct Type", "Acct#", "Fraud?", "Comments", score, risk_rating, reason_code 
| sort -_time