通过Splunk中的多个字段对事件进行分组

问题描述

嗨,我在splunk中有一些此类形式的事件-

位置:一些值(多个事件中可以有相同的值)

客户:一些值(在多个事件中可以有相同的值)

交易编号:一些值(每个事件唯一)

交易时间:一些值(每个事件唯一)

现在我想要这种形式的表格-

Table

基本上,每个位置可以有多个客户,每个客户可以有不同的交易。交易号和交易时间是唯一的,并且具有一对一映射。

我在splunk中使用此查询-

|位置客户端的统计信息列表(TransactionNumber)列表(TransactionTime)

正在发生的事情是我正在获得位置和客户的唯一组合,但是我想要针对特定​​位置列出唯一的客户。

这就是我要得到的东西-

enter image description here

如何修改查询以实现相同的目的?

解决方法

这是使用_internal索引的完整示例

scales=list(alternating=3)

对于您的用例,我认为这应该可行

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

如果这可以解决您的问题,请花一点时间接受答案。这可以通过单击答案旁边的复选标记将其从灰色切换为填充来完成!

欢呼

,

我会这样做:

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()行保留时间和数字的唯一的一对一映射(如您所描述的),然后将它们拆分回去。

可能想在进行| mvexpand TNTT行之前先进行rex-如果以后要以其他方式对表格进行排序

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...