我想对csv文件中的所有值运行splunk查询,并将该值替换为csv文件中的字段。我已经将文件导入到splunk中作为输入查找表,并能够使用inputlookup查询查看字段,但是我想在所有子查询中运行该查询,以获取每小时,每天,每周和每月的最大计数基础
输入文件是ids.csv,它大约有800行,只有一列,如下所示:
1234,
2345
2346
4567
...
使用即时通讯查询
| inputlookup ids.csv | fields ids as id | [search index="abc" id "search string here" |bin _time span="1hour" | stats count as maxHour by _time | sort - count | head 1] |appendcols[search
index="abc" id "search string here" |bin _time span="1day" | stats count as maxDay by _time | sort - count |head 1 ]|appendcols[search
index="abc" id "search string here" |bin _time span="1week" | stats count as maxWeek by _time | sort - count | head 1 ]|appendcols[search
index="abc" id "search string here" |bin _time span="1month" | stats count as maxMonth by _time | sort - count | head 1]
我没有得到预期的结果,我期望以表格格式显示,其中通过在搜索子查询中传递id字段来获取具有特定id的每个时间范围的计数。
我该如何解决?
谢谢
答案 0 :(得分:0)
在我面前没有活动的实例来玩时,我觉得更有效的方法可能是:
^(?=^\w{3,20}$)[a-z0-9]+_?[a-z0-9]+$
| | | | | End with any alphanumeric
| | | |
| | | Optional underscore in middle
| | |
| | Start with any alphanumeric
| |
| Any accepted chars
| between 3 and 20 chars.
|
Start of string
首先,我们在查找中获取每个ID的所有数据,然后使用统计信息获得每天每小时的最大计数,并使用bin和stats得出每天的计数。
接下来,我们使用(未记录)multireport命令将结果集从每日统计信息中转换出来,并添加每周和每月的统计信息。最后,我们使用输入查找中的每个ID来获取每个计数的最大值,以小时,天,周和月的最大计数结束。
现在,由于multireport没有记录,并且有时它的先前使用已被证明有些问题……我实际上建议像这样使用eventstats:
index="abc" [inputlookup ids.csv | fields ids as id]
| bin _time span=1h | stats count by id _time
| bin _time span=1d | stats max(count) as countHour sum(count) as countDay by id _time
| multireport
[ noop ]
[ bin _time span=1week | stats sum(countDay) as countWeek by id _time ]
[ bin _time span=1mon | stats sum(countDay) as countMonth by id _time ]
| stats max(count*) as max* by id
类似于之前,我们获得了每日统计信息,但是随后我们可以使用as
syntax of the bin command来计算每天的星期和月份,并在列上添加每天的每周和每月计数。然后,它与以前的max函数相同。