2

这是日志的片段:

127.0.0.1 - - [01/Dec/2020:00:00:11 -0500] "GET / url:"api/orderLaptop for customer id 123"
127.0.0.1 - - [01/Nov/2020:00:00: 24 -0500] "GET / url:"api/orderLaptop 用于客户 ID 124"
127.0.0.1 - - [05/Nov/2020:00:00:11 -0500] "GET / url:"api/orderLaptop 用于客户 ID 333"
127.0.0.1 - - [01/Nov/2020:00:00:24 -0500] "GET / url:"api/orderCamera for customer id 124"
127.0.0.1 - - [05/Nov/2020:00: 00:11 -0500] "GET / url:"api/orderCamera for customer id 333"
127.0.0.1 - - [10/Aug/2020:00:00:24 -0500] "GET / url:"api/orderLaptop for客户 id 444"
127.0.0.1 - - [13/Aug/2020:00:00:24 -0500] "GET / url:"客户 id 434 的 api/orderCamera"

是否可以在 Splunk 中生成一份报告,显示客户每月购买了多少笔记本电脑和相机等产品。

我的预期输出应如下所示:

物品 购买月份 购买的客户总数
笔记本电脑 八月 1
相机 八月 1
笔记本电脑 十一月 2
相机 十一月 2
笔记本电脑 十二月 1
相机 十二月 0

非常感谢。

4

1 回答 1

2

假设您已经有正确的配置来从日志事件中提取事件时间,您可以_time使用strftime().

rex然后,我将使用正则表达式捕获组提取其他字段。

然后使用stats按 Item、month_purchased 和 customer 分组。

最后,删除customer带有 的字段fields

| eval month_purchased=strftime(_time, "%B")
| rex field=_raw "api/order(?<Item>\w+) for customer id (?<customer>\d+)"
| stats count as "Total customers purchased" by item month_purchased as "Month purchased" customer
| fields -customer
于 2022-01-15T13:52:15.520 回答