按 Splunk 中的多个字段对事件进行分组
Group events by multiple fields in Splunk
您好,我在 splunk 中有一些这种形式的事件-
位置: 一些值(多个事件中可以有相同的值)
客户端: 一些值(相同的值可以出现在多个事件中)
TransactionNumber: 一些值(每个事件唯一)
交易时间:一些值(每个事件唯一)
现在我想要一个 table 这种形式 -
基本上每个位置可以有多个客户,每个客户可以有不同的交易。交易编号和交易时间是唯一的,并且是一一对应的。
我在 splunk 中使用这个查询-
|统计列表(TransactionNumber)列表(TransactionTime)按位置客户端
发生的事情是我得到了位置和客户的独特组合,但我想要的是针对特定位置列出的独特客户。
这就是我得到的-
如何修改查询以达到同样的效果?
这是一个使用 _internal 索引的完整示例
index=_internal
| stats list(log_level) list(component) by sourcetype source
| streamstats count as sno by sourcetype
| eval sourcetype=if(sno=1,sourcetype,"")
| fields - sno
对于你的 use-case 我认为这应该有效
| stats list(TransactionNumber) list(TransactionTime) by Location Client
| streamstats count as sno by Location
| eval Location=if(sno=1,Location,"")
| fields - sno
如果这解决了您的问题,请花点时间接受答案。这可以通过单击答案旁边的复选标记将其从灰色切换为填充来完成!
干杯
我会这样做:
index=ndx sourcetype=srctp Location=* Client=* TransactionNumber=* TransactionTime=*
| eval TNTT=TransactionNumber+" sep "+TransactionTime
| stats values(TNTT) as TNTT by Location Client
| rex field=TNTT "(?<TransactionNumber>\S+) sep (?<TransactionTime>.+)"
| table Location Client TransactionNumber TransactionTime
这是通过 stats values()
行 carry-over 时间和数字的唯一 one-to-one 映射(如您所描述的),然后将它们分开。
您 可能 想要 | mvexpand TNTT
在执行 rex
行之前 - 以防您稍后想以其他方式对 table 进行排序
您好,我在 splunk 中有一些这种形式的事件-
位置: 一些值(多个事件中可以有相同的值)
客户端: 一些值(相同的值可以出现在多个事件中)
TransactionNumber: 一些值(每个事件唯一)
交易时间:一些值(每个事件唯一)
现在我想要一个 table 这种形式 -
基本上每个位置可以有多个客户,每个客户可以有不同的交易。交易编号和交易时间是唯一的,并且是一一对应的。
我在 splunk 中使用这个查询-
|统计列表(TransactionNumber)列表(TransactionTime)按位置客户端
发生的事情是我得到了位置和客户的独特组合,但我想要的是针对特定位置列出的独特客户。
这就是我得到的-
如何修改查询以达到同样的效果?
这是一个使用 _internal 索引的完整示例
index=_internal
| stats list(log_level) list(component) by sourcetype source
| streamstats count as sno by sourcetype
| eval sourcetype=if(sno=1,sourcetype,"")
| fields - sno
对于你的 use-case 我认为这应该有效
| stats list(TransactionNumber) list(TransactionTime) by Location Client
| streamstats count as sno by Location
| eval Location=if(sno=1,Location,"")
| fields - sno
如果这解决了您的问题,请花点时间接受答案。这可以通过单击答案旁边的复选标记将其从灰色切换为填充来完成!
干杯
我会这样做:
index=ndx sourcetype=srctp Location=* Client=* TransactionNumber=* TransactionTime=*
| eval TNTT=TransactionNumber+" sep "+TransactionTime
| stats values(TNTT) as TNTT by Location Client
| rex field=TNTT "(?<TransactionNumber>\S+) sep (?<TransactionTime>.+)"
| table Location Client TransactionNumber TransactionTime
这是通过 stats values()
行 carry-over 时间和数字的唯一 one-to-one 映射(如您所描述的),然后将它们分开。
您 可能 想要 | mvexpand TNTT
在执行 rex
行之前 - 以防您稍后想以其他方式对 table 进行排序