作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的日志中有以下几行:
...useremail=abc@fdsf.com id=1234 ....
...useremail=pqr@fdsf.com id=4565 ....
...useremail=xyz@fdsf.com id=5773 ....
我可以在 Splunk 中实现吗?
谢谢!
最佳答案
是的,在 Splunk 中有多种方法可以做到这一点,每种方法的易用性和扩展能力各不相同。我将逐步执行子搜索方法:
1) 捕获从 -1d@d 到 @d 期间的所有用户 ID
您想首先验证仅返回 ID 列表的搜索,然后将其转换为子搜索:
sourcetype=<MY_SOURCETYPE> earliest=-1d@d latest=-@d | stats values(id) AS id
2) 对于每个用户,从索引开始搜索到-1d@d & 通过比较实际id字段查看用户id是否已经存在
使用来自 (1) 的子搜索来匹配那些 id(请注意,子搜索必须以 search
开头)构建具有不同时间范围的主搜索:
sourcetype=<MY_SOURCETYPE> [search sourcetype=<MY_SOURCETYPE> earliest=-1d@d latest=-@d | stats values(id) AS id] earliest=0 latest=-1d@d
这将返回从索引开始到但不包括包含 (1) 中的 ID 的 1d@d 的所有事件的原始数据集。
3) 如果不存在,则将其添加到计数器中
用 NOT
对整个子搜索修改该搜索,并将外部搜索通过管道传输到 stats
以查看它匹配的 ID:
sourcetype=<MY_SOURCETYPE> NOT [search sourcetype=<MY_SOURCETYPE> earliest=-1d@d latest=-@d | stats values(id) AS id] earliest=0 latest=-1d@d | stats values(id)
4) 显示这个最终计数。
修改最后一个 stats
命令以返回一个不同的计数:
sourcetype=<MY_SOURCETYPE> NOT [search sourcetype=<MY_SOURCETYPE> earliest=-1d@d latest=-@d | stats values(id) AS id] earliest=0 latest=-1d@d | stats dc(id)
性能注意事项:
上述方法在商品硬件上对 100 万行以下的数据集相当有效。问题是子搜索是阻塞的,因此外部搜索需要等待。如果您要处理更大的数据集,则需要采用替代方法来实现高效搜索。
仅供引用,Splunk 有一个专门的站点,您可以在其中更快地获得此类问题的答案:http://splunk-base.splunk.com/answers/
关于splunk - 查询以循环遍历 splunk 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7536361/
我是一名优秀的程序员,十分优秀!